

Ask HN: What Open Source FEA Software Do You Use? - lordvon

I like Calculix, but I do not like having to go into the GUI to change some parameters. I want to be able to change an input file and run it all with a script.
======
groovy2shoes
I've used OOF2 for a few research projects. Despite its warts, I found it very
hackable. The application itself is written in Python with performance-
intensive bits written in C++ and wrapped with SWIG. Adding new code in Python
is a piece of cake, and fitting in some C++ when you need to is fairly easy. I
haven't used any other FEA software, though, so I can't give you a comparison.

~~~
lordvon
Thanks! I will check it out. Why did you use OOF2?

~~~
groovy2shoes
I was hired into a research lab that was already using it for simulating
physical effects on heart valve tissue.

------
zwiteof
I haven't used Calculix, but I was under the impression it uses an Abaqus
format input deck? Looking at the documentation, this appears to be the case.

~~~
lordvon
Yeah, the only problem with automation was boundary condition specification. I
guess I could use shell scripts to infer the list of boundary points for every
boundary condition, given I knew in what order the points in the mesh were
created.

~~~
zwiteof
That's probably your best bet. I know with Abaqus, you could potentially do
that with the python scripting, but a lot of the stuff I've done creates a
model with a python script, writes a dummy input file with nodes, element
connectivity and set definitions, then I read that into MATLAB and write out a
reorganized/more readable input deck from there. If I refine the mesh, I just
rerun the MATLAB script and it spits out the new input file. If your model is
complicated, another way you could do it is create multiple
node/surface/element sets for each boundary condition and then just update the
BC keyword section with the proper set and constraint. The benefit there is
that you can manually tweak and remesh the model in the GUI and then set it
off running with the shell script, but without needing to explicitly track
node numbers since they're store d in the sets. That might be a bit
overcomplicated though if your model is simple enough or the node numbering is
consistent enough to keep track of.

------
octopus
FreeFEM++ was a good choice last time I checked.

~~~
lordvon
Thanks! I will check it out.

