OOFem

Hello,

I wonder if the OOFem finite element code has been evaluated for a possible support in FreeCAD: http://www.oofem.org/

For what I can see in the manual, it seems that this solver may be well suited for civil/structural engineering : http://www.oofem.org/en/manual

https://www.freecadweb.org/wiki/FEM_Solver#OOFEM
I guess someone with some coding skills (python should be enough) and interest to see OOFEM support implemented needs to do it. We’ll give you all possible support if you want to do it.



Ping @Joel_graff
You may be interested in this thread

the solver frame work of FreeCAD FEM is well suited for easily adding new solvers. It could be all done with Python. I happly support anyone who would like to implement a new solver.

Thank you guys !
I’ll need to inspect more closely this solver and become proficient in plain OOFem before embarking in such a project.

This looks really interesting !! It has interface elements (see https://forum.freecadweb.org/viewtopic.php?f=18&t=30286&start=20#p260275) as well as arc-length control (see https://forum.freecadweb.org/viewtopic.php?f=24&t=26921&hilit=Arc#p215325). In addition many non-linear material models. Well worth further consideration !!

but it seams used by very vrry few people. Just try google calculix and pictures. There are lots of models from various internet resources. Try the same with oofem, nearly no screen of a model at all, only scientific diagramms …

Yeah it’s a bit academic, but I will give it a try nonetheless. At first sight it is more suitable for 3D structural collapse analysis than Calculix.

Well, I gave it a try and first impression ABSOLUTELY PHENOMENAL !

Installation and building from git repository was super simple. The 278 test cases ran first time, without a glitch. The file format is clean and easy to understand. The manual is crystal clear. Export to VTK worked first time around.

Here an example of a plane stress concrete beam under 3 point load, with a notch to initiate cracking. Concrete cracking is simulated with a so-called smeared crack model. Convergence was impressive.

Conrete_Beam_3_Point_Loading_Smeared_Crack_Model.png
This is definitely worth integrating with FreeCAD and I am willing to spend some serious time on that.

And some more … Sigma_xx shows tensile zone moving upward, reducing the internal moment lever and therefore causing global softening of the response.

test.gif

wow!
Ok, if you go for the implementation, I will help to tackle down all problens you encounter. It can all done in Python. I would highly recomend to base it on the new solver frame work. All needed modules to create an input file and run the solver can be found in directory femsolver. Vtk results can be read directly. I will post some links to the code later on …

check the oldest commits of these ones https://github.com/FreeCAD/FreeCAD/commits/master/src/Mod/Fem/femsolver/z88

Thanks. I will give it a go.

most important commit … 609e97a This added Solver Z88 in one commit. Keep in mind a few things have changed since this. For example one hint in the regard of cmake. You only need to add new Python modules once here: https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Fem/CMakeLists.txt

good luck :mrgreen:

best to exchange code would be if you push all your new code to github. With this it is easy to pull and to test your code. In the regard of git and github this may be useful Source_code_management

Ah yes Cmake … thanks.

Yup. I already started a new repository for this, i.e. github.com/HarryvL/FC_OOFEM. I will create a branch “assess” for the first baby steps.

How did you make the fork? Manually? I’m not sure if you’ll be able to use FreeCAD/github arrangements for pull request testing if that’s the case.
My FreeCAD fork header looks like this:

PrzemoF/FreeCAD forked from FreeCAD/FreeCAD

You can use fork button in github to make a fork.

I pulled freecad/freecad to my local system and then pushed that to my repository. Do I need fork on Github and then pull from there instead?

It would be the smart way!