Roland's homepage

My random knot in the Web

Welcome

This is my home in the virtual world, where I write about things that I want to share. The freely available software that I've written as well as some of the photographs I've taken over the years can also be found here. Please use the navigation links on the right if you are looking for something.

Recent articles

  1. Writing C in 2024

    To learn how it works and because I don’t use Java, I decided to port professor Michael Pound’s implementation of the Enigma machine and the fitness and analysis code.

    The initial port was done to Python. Unfortunately, this is one instance where Python was rather slow because of the large amount of settings that need to be tried.

    So I decided to port it to C instead.

  2. Building CalculiX with the PaStiX solver without CUDA

    The CalculiX solver package on FreeBSD is compiled with the SPOOLES (SParse Object Oriented Linear Equations Solver) library by default. This is also the case in many Linux distributions because SPOOLES is free, while faster solvers like PARADISO are proprietary.

    SPOOLES is relatively fast compared to the built-in iterative solver, its most fundamental limitation is that the data must fit in RAM.

    However a patched version of the PaStiX solver has been integrated with CalculiX. It is often faster than SPOOLES and can use a GPU using the CUDA library.

  3. Inplace editing

    This article describes how to edit files in-place programmatically. This has been part of my toolbox for a long time, so I thought I’d document it here.

  4. Element names in Calculix

    CalculiX consists out of two programs;

    • cgx: pre- and postprocessor
    • ccx: solver

    A minor annoyance is that the naming of element types is not consistent between them.

    Below is a table that provides a mapping between the two.

  5. FEA based on STEP geometry using gmsh and CalculiX

    In this article an FEA workflow based on CAD geometry in the form of STEP files and gmsh for mesh generation and CalculiX as the solver will be discussed. This workflow is primarily suited for isotropic materials.

    If one is working with FreeCAD, the FEM workbench enables a similar workflow, if gmsh and CalculiX are installed. But the author prefers this method because it makes the details of the process more transparent and accessible.

    All the software used here is freely available. On UNIX-like systems (e.g. FreeBSD, Linux) it can generally be installed by the native package manager. Installing the prerequisites under ms-windows is outside the scope of this article.

  6. Profiling with pyinstrument

    After having used the built-in tracing profiler cProfile for a while now, I came across the statistical (sampling) profiler pyinstrument.

    A statistical profiler does not influence the runtime of the program as much as a tracing profiler as cProfile does. Additionally, pyinstrument shows the result in a different way from cProfile.

    So in this article, I will be profiling my repotool program. This program helps me maintain a mirror of FreeBSD packages that I use.

  7. Folded leaf spring ball joint flexure

    The Dutch-language engineering book “Constructieprincipes” by M.P. Koster contains flexure made out of four folded leaf springs that kind of acts like a ball joint.

    The point where the load is applied should rotate around a virtual center formed by the point where the fold lines meet. The goal of this article is to simulate that and see if it works.


Page 1 / 26 Page 2 →