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
-
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.
-
Inspired by a recent question at work, I looked at the stresses developing in
a steel pin when it is loaded under bending and partially placed in a fixed sleeve.
-
This is the fifth in a series of articles that covers analyzing and improving
performance bottlenecks in Python scripts.
The program calculix-orient is a helper program that automates the asignment
of local coordinate systems for anisotropic finite elements.
It is designed to work together with CalculiX.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Based on a question from Bill Seymour, this is what I came up with.