This page collects information on the finite element solvers used by the FEM Workbench. The interface between a solver and FreeCAD in pre-processing as well as post-processing is done through text files. This means that in theory any solver which can be configured and controlled by means of text files is able to work together with FreeCAD; a proper parser and writer of input and output files needs to be programmed for this communication to work.

The FreeCAD-dependencies repository tracks the dependencies of FreeCAD across many Linux distribution. The FEM.md page looks at available open source FEA solvers that could be used with the FEM Workbench. The page shows the version of a particular solver in the repository of a particular Linux distribution. This information is useful to know if a solver is current, or out of date and must be upgraded.

Solvers with an interface in FreeCAD

These solvers are well integrated into FreeCAD, which means that it's possible to set up and run a simulation project from the graphical interface and buttons in the FEM Workbench.

CalculiX

This is the first solver that was integrated to work with the FEM Workbench. CalculiX is designed principally for static, thermo-mechanical, and modal analyses. More information about this solver is in FEM CalculiX.

Z88

The Z88 solver is designed for linear static simulations with an emphasis in teaching about the finite element method. It was the second solver to be integrated into FreeCAD. Afterwards, the integration was improved as a Google Summer of Code 2017 project.

FastHenry and FasterCap

FastHenry and FasterCap are inductance-resistance and capacitance field solvers developed by FastFieldSolvers: main website, download page (binary and source code), forum.

The EM Workbench is an external workbench that was created to serve as the front-end for these electromagnetic solvers. FastHenry, for 3D magneto-quasistatic impedance analysis, is fully supported, while FasterCap is accessible through some Python macros.

fcFEM

fcFEM is a finite element solver for structural and mechanical studies, implemented in Python, and which can be run directly from FreeCAD without calling external binary solvers. Therefore, it can be considered FreeCAD's own internal solver.

fcFEM was designed to overcome certain limitations from other solvers, such as CalculiX, in order to perform various structural engineering studies.

Some of the problems that are intended to be overcome by this solver include

The author considers FreeCAD a good prototyping platform to quickly set up, test, and visualize different structural problems, so having an integrated yet flexible solver is very helpful. See the main thread, fcFEM - FEA from start to finish.

fcFEM is packaged as a python library and a macro, and can be downloaded from the github repository. It will eventually be available from the AddonManager, or will be distributed as part of FreeCAD itself.

Implementation in progress

FEniCS

FEniCS is a computing framework for solving partial differential equations (PDEs), with high-level programming interfaces in Python and C++. It can be used to establish scientific problems in finite element formulations that then can be solved numerically.

FenicsSolver is a simulation platform to deal with multi-body, multi-physics (coupled), multi-scale problems. It hopes to integrate the FEniCS solver into both the FEM Workbench and the Cfd external workbench, so the resulting system functions like a free alternative to Comsol or Moose. FenicsSolver is being developed by the same author of Cfd.

OOFEM

OOFEM is an object oriented FEM program by the Czech Technical University, for solving mechanical, transport and fluid mechanics problems.

MBDyn

Solvers not integrated

The following solvers have not been integrated into FreeCAD but they have garnered some interest by the user community. If a developer wishes to create a communication bridge for a particular solver, he or she should refer to the FEM subforum for advice and assistance.

The following articles may be outdated, but the information they contain may still be useful to understand how to integrate solvers into FreeCAD

Agros2D and Hermes

Agros2D is a multiplatform graphical program designed for solving different physical problems. Internally it uses the Hermes C++ libraries for the solution of simple and complex time-dependent nonlinear partial differential equation (PDE) systems using a general version of the finite element method (hp-FEM). Main code repository, and tutorials.

Code-Aster and Code-Saturne

Code-Aster is an open source multiphysics solver; together with the Salomé-Meca pre-processor they form a simulation platform developed by EDF-GDF, France's biggest energy company. It was an early package considered for inclusion in FreeCAD: FreeCAD and Code-Aster/Salome-Meca (forum thread).

Code-Saturne is a free, open-source software developed and released by EDF to solve computational fluid dynamics (CFD).

FElt

FElt is a finite element package to solve linear static and dynamic structural analysis problems. The original code is outdated, so it was forked to a new repository to revive the project and make it compile in a modern system.

Impact FEM

libMesh

libMesh is a c++ finite element library for the numerical solution of partial differential equations, with a major goal to provide support for adaptive mesh refinement (AMR) computations in parallel: code repository.

Modelica

Modelica is a language to model and optimize complex, and interconnected physical systems, for example, mechanical, electrical, thermal, hydraulic, and others. The language itself and its standard libraries are open source. Some simulation environments based on Modelica, like Catia's Dymola, are proprietary, but there are also free implementations like OpenModelica and JModelica.

With FreeCAD, Modelica was suggested to help perform animations, but more broadly it could be used in mechanical and building engineering to solve equations and optimize a particular design: Modelica (forum thread).

The PyFMI package contains Python bindings to work with FMU models, which are standardized models in binary format produced by compliant Modelica environments, including Dymola, OpenModelica, and JModelica. It was suggested that this library could help FreeCAD connect to a Modelica system (forum post).

Mumps

Mumps is a generic solver for massive systems of equations, which generally deals with factorizing and operating on sparse matrices. It was mentioned in the forum: test request, multiple solvers.

It does not perform finite element analysis directly, but it may be used internally by other packages like Code-Aster.

Mystran

Mystran is a structural analysis program which uses Nastran input file format. It is released under MIT license. Which means it seams OpenSource. See Mystran and on github Mystran-github and on FreeCAD forum Mystran-FreeCAD-forum.

Nastran

Nastran is a structural analysis program developed by NASA in the 1970s. Modern versions of it are commercial products and closed source; however, older versions of it, Nastran-93 and Nastran-95 were released as open source in 2015. Forum post: Nastran.

There is no technical support for the open source code, and it is probably difficult to compile in a modern system.

Sparselizard

[http://www.sparselizard.org/ Sparselizard is a fast, general, multiphysics, p-adaptive, open source C++ finite element library running on Linux, Mac and Windows. It is used to design next generation microdevices (ultrasound transducers, micromirrors, microvalves, comb drives,...) and it is carefully validated against analytical solutions, third party software and measurements of the fabricated devices. AFAIS it is developed by the team of gmsh mesh generator.

SU2

SU2 is a collection of software tools developed in C++ and Python for the solution of partial differential equations (PDE) and PDE-constrained optimization problems on unstructured meshes. It is particularly used in the fields of aerodynamics and computational fluid dynamics (CFD).

Technog

Technog Professional is a closed source program to perform geotechnical simulations such as landslides, driving piles, slope stability, and civil engineering calculations (masonry and earthquake response), website (broken link).