FEM Solver/es: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}

<span id="Preface"></span>
<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
== Предисловие ==
== Предисловие ==
На этой странице собрана вся информация о решающей системе FEM, используемой FreeCAD [[FEM Module | FEM Module]]. Интерфейс между решателем и FreeCAD в предварительной и последующей обработке выполняется с помощью текстовых файлов. Теоретически это означает, что любой решатель, использующий текстовые файлы, способен работать вместе с FreeCAD FEM.
На этой странице собрана вся информация о решающей системе FEM, используемой FreeCAD [[FEM Workbench|FEM Workbench]]. Интерфейс между решателем и FreeCAD в предварительной и последующей обработке выполняется с помощью текстовых файлов. Теоретически это означает, что любой решатель, использующий текстовые файлы, способен работать вместе с FreeCAD FEM.
</div>
</div>


This page collects information on the finite element solvers used by the [[FEM Workbench|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.
This page collects information on the finite element solvers used by the [[FEM_Workbench|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. A forum topic to discuss and announce anything regarding the various solvers can be found here: [https://forum.freecadweb.org/viewtopic.php?f=18&t=26326 General FEM solvers discussion topic].


Wikipedia [https://en.wikipedia.org/wiki/List_of_finite_element_software_packages lists many finite element software packages]. A comparison can be found on [https://feacompare.com/ feacompare.com].
Wikipedia [https://en.wikipedia.org/wiki/List_of_finite_element_software_packages lists many finite element software packages]. A comparison can be found on [https://feacompare.com/ feacompare.com].


<span id="Available_solvers_in_various_Linux_distributions"></span>
<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
== Versión del solucionador en varias distribuciones de Linux ==
== Versión del solucionador en varias distribuciones de Linux ==
Line 16: Line 20:
</div>
</div>


The [https://github.com/luzpaz/FreeCAD-dependencies FreeCAD-dependencies] repository tracks the dependencies of FreeCAD across many Linux distribution. The [https://github.com/luzpaz/FreeCAD-dependencies/blob/master/FC-Workbenches/FEM.md 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.
The [https://github.com/luzpaz/FreeCAD-dependencies FreeCAD-dependencies] repository tracks the dependencies of FreeCAD across many Linux distributions. The [https://github.com/luzpaz/FreeCAD-dependencies/blob/master/FC-Workbenches/FEM.md FEM.md] page looks at available open-source FEA solvers that could be used with the [[FEM_Workbench|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.


The information is also discussed in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=26326&start=10#p270325 supported and not supported Solver].
The information is also discussed in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=26326&start=10#p270325 supported and not supported Solver].
Line 25: Line 29:


=== CalculiX ===
=== 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]].
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|FEM CalculiX]].


=== Elmer ===
=== Elmer ===


The Elmer multiphysics solver was integrated into FreeCAD as a [[Google Summer of Code 2017]] project: [https://www.csc.fi/web/elmer main website], [http://www.elmerfem.org./ community portal], [https://github.com/ElmerCSC/elmerfem code repository], [https://forum.freecadweb.org/viewtopic.php?f=18&t=22576 Elmer Integration (GSoC) - Activity Log] (forum thread).
The Elmer multiphysics solver was integrated into FreeCAD as a [[Google_Summer_of_Code_2017|Google Summer of Code 2017 project]]: [https://www.csc.fi/web/elmer main website], [http://www.elmerfem.org./ community portal], [https://github.com/ElmerCSC/elmerfem code repository], [https://forum.freecadweb.org/viewtopic.php?f=18&t=22576 Elmer Integration (GSoC) - Activity Log (forum topic)].

=== Mystran ===

Mystran is a structural analysis program that uses the Nastran input file format. It is released under MIT license which means that it's open-source. See [https://www.mystran.com/ main website], [https://github.com/dr-bill-c/MYSTRAN code repository] and [https://forum.freecadweb.org/viewtopic.php?t=46171 Mystran-FreeCAD-forum (forum topic)].


=== Z88 ===
=== 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 [https://forum.freecadweb.org/viewtopic.php?f=18&t=15568 integrated into FreeCAD]. Afterwards, the integration was improved as a [[Google Summer of Code 2017]] project.
The Z88 solver is designed for linear static simulations with an emphasis on teaching about the finite element method. It was the second solver to be [https://forum.freecadweb.org/viewtopic.php?f=18&t=15568 integrated into FreeCAD]. Afterwards, the integration was improved as a [[Google_Summer_of_Code_2017|Google Summer of Code 2017 project]].


See the information:
See the information:
* [https://en.z88.de/z88os/ Main website], [https://en.z88.de/download-z88os/ download page], [https://github.com/LSCAD/Z88OS source code repository] (and precompiled binaries).
* [https://en.z88.de/z88os/ Main website], [https://en.z88.de/download-z88os/ download page], [https://github.com/LSCAD/Z88OS source code repository] (and precompiled binaries).
* Release notes: [https://forum.z88.de/viewtopic.php?f=18&t=885 Z88os V15 released 17.07.2017], [https://forum.z88.de/viewtopic.php?t=90 Z88os V13 released 20.05.2009] (version in Debian Jessie 8, Stretch 9, Buster 10).
* Release notes: [https://forum.z88.de/viewtopic.php?f=18&t=885 Z88os V15 released 17.07.2017], [https://forum.z88.de/viewtopic.php?t=90 Z88os V13 released 20.05.2009] (version in Debian Jessie 8, Stretch 9, Buster 10).
* [https://forum.freecadweb.org/viewtopic.php?t=23318 How to use Z88 in FEM?] (forum thread).
* [https://forum.freecadweb.org/viewtopic.php?t=23318 How to use Z88 in FEM? (forum topic)].


There are two versions, Z88OS is the open source edition, while Z88Aurora is freeware, and includes a graphical interface and additional solution methods.
There are two versions, Z88OS is the open-source edition, while Z88Aurora is freeware, and includes a graphical interface and additional solution methods.


== Solvers implemented as external workbenches ==
== Solvers implemented as external workbenches ==


These solvers aren't integrated into the [[FEM Workbench]], which means they need a separate interface to set up a simulation project. This is achieved through [[macros]] or [[external workbenches|external workbenches]].
These solvers aren't integrated into the [[FEM_Workbench|FEM Workbench]], which means they need a separate interface to set up a simulation project. This is achieved through [[Macros|macros]] or [[External_workbenches|external workbenches]].

=== OpenFoam ===

[https://openfoam.org/ OpenFoam] is a powerful framework for [https://en.wikipedia.org/wiki/Computational_fluid_dynamics computational fluid dynamics] (CFD) simulation, distributed as a series of C++ libraries.

OpenFoam is available in FreeCAD through two external workbenches:
* [https://github.com/qingfengxia/Cfd Cfd], originally by Qingfeng Xia.
* [https://github.com/jaheyns/CfdOF CfdOF], a fork of Cfd focusing on ease of use.

While Cfd is intended to be feature-complete for advanced users, CfdOF focuses on users that are just starting in the world of CFD and OpenFoam.

For Cfd: [https://forum.freecadweb.org/viewtopic.php?f=18&t=13699 update on FreeCAD + OpenFOAM fluid dynamic computation] (forum thread), [https://forum.freecadweb.org/viewtopic.php?f=37&t=22993 Progress of the general Computational Fluid Dynamics (CFD) workbench: CfdWorkbench] (old thread).

For CfdOF: [https://forum.freecadweb.org/viewtopic.php?f=18&t=21576 Computational Fluid Dynamics (CFD) workbench using OpenFOAM] (forum thread), [http://opensim.co.za/training.html training material].

Both workbenches can be installed through the [[AddonManager]], and both have a place for discussion in the [https://forum.freecadweb.org/viewforum.php?f=37 CfdOF / CFD subforum].


=== DualSPHysics ===
=== DualSPHysics ===
Line 66: Line 59:
[https://dual.sphysics.org/ DualSPHysics] is a set of C++, CUDA, and Java libraries that use the [https://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics smoothed particle hydrodynamics] (SPH) model named [https://wiki.manchester.ac.uk/sphysics/index.php/Main_Page SPHysics] to study free-surface flow phenomena such as crashing waves.
[https://dual.sphysics.org/ DualSPHysics] is a set of C++, CUDA, and Java libraries that use the [https://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics smoothed particle hydrodynamics] (SPH) model named [https://wiki.manchester.ac.uk/sphysics/index.php/Main_Page SPHysics] to study free-surface flow phenomena such as crashing waves.


DesignSPHysics is an external workbench built into FreeCAD that provides a graphical user interface for DualSPHysics: [https://design.sphysics.org/ main website], [https://github.com/dualsphysics/DesignSPHysics code repository], [https://forum.freecadweb.org/viewtopic.php?f=18&t=20595 Interesting project: DesignSPHysics fluid simulator] (forum thread).
DesignSPHysics is an external workbench built into FreeCAD that provides a graphical user interface for DualSPHysics: [https://design.sphysics.org/ main website], [https://github.com/dualsphysics/DesignSPHysics code repository], [https://forum.freecadweb.org/viewtopic.php?f=18&t=20595 Interesting project: DesignSPHysics fluid simulator (forum topic)].


DesignSPHysics can be installed through the [[AddonManager]].
DesignSPHysics can be installed through the [[Std_AddonMgr|AddonManager]].


=== FastHenry and FasterCap ===
=== FastHenry and FasterCap ===
Line 74: Line 67:
FastHenry and FasterCap are inductance-resistance and capacitance field solvers developed by FastFieldSolvers: [https://www.fastfieldsolvers.com/default.asp main website], [https://www.fastfieldsolvers.com/download.htm download page] (binary and source code), [https://www.fastfieldsolvers.com/forum/ forum].
FastHenry and FasterCap are inductance-resistance and capacitance field solvers developed by FastFieldSolvers: [https://www.fastfieldsolvers.com/default.asp main website], [https://www.fastfieldsolvers.com/download.htm download page] (binary and source code), [https://www.fastfieldsolvers.com/forum/ forum].


The [[EM Workbench|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.
The [[EM Workbench|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.


See: [https://forum.freecadweb.org/viewtopic.php?f=9&t=33372 ElectroMagnetic Workbench] (main thread), [https://forum.freecadweb.org/viewtopic.php?f=18&t=31920 Electromagnetic Workbench - again..], [https://forum.freecadweb.org/viewtopic.php?f=18&t=5400 FreeCAD for ElectroMagnetics], [https://github.com/ediloren/EM-Workbench-for-FreeCAD code repository] for the workbench.
See: [https://forum.freecadweb.org/viewtopic.php?f=9&t=33372 ElectroMagnetic Workbench (main forum topic)] , [https://forum.freecadweb.org/viewtopic.php?f=18&t=31920 Electromagnetic Workbench - again.. (forum topic)], [https://forum.freecadweb.org/viewtopic.php?f=18&t=5400 FreeCAD for ElectroMagnetics (forum topic)], [https://github.com/ediloren/EM-Workbench-for-FreeCAD code repository for the workbench].


The EM Workbench can be installed through the [[AddonManager]].
The EM Workbench can be installed through the [[Std_AddonMgr|AddonManager]].


=== fcFEM ===
=== fcFEM ===
Line 87: Line 80:


Some of the problems that are intended to be overcome by this solver include
Some of the problems that are intended to be overcome by this solver include
* Mixed mesh analyses (solid-shell) for dealing with composite columns or prefabricated architectural components: [https://forum.freecadweb.org/viewtopic.php?f=18&t=21029&p=216682&hilit=sandwich#p216682 FEM object types].
* Mixed mesh analyses (solid-shell) for dealing with composite columns or prefabricated architectural components: [https://forum.freecadweb.org/viewtopic.php?f=18&t=21029&p=216682&hilit=sandwich#p216682 FEM object types (forum topic)].
* Improved beam and shell elements, as CalculiX's beam elements seem to give wrong results: [https://forum.freecadweb.org/viewtopic.php?f=18&t=27903&hilit=beam#p226038 CalculiX 3-node Beam Element], [https://forum.freecadweb.org/viewtopic.php?f=18&t=21029&start=100 FEM object types], [https://forum.freecadweb.org/viewtopic.php?f=18&t=16044 Example for 1D analysis].
* Improved beam and shell elements, as CalculiX's beam elements seem to give wrong results: [https://forum.freecadweb.org/viewtopic.php?f=18&t=27903&hilit=beam#p226038 CalculiX 3-node Beam Element (forum topic)], [https://forum.freecadweb.org/viewtopic.php?f=18&t=21029&start=100 FEM object types (forum topic)], [https://forum.freecadweb.org/viewtopic.php?f=18&t=16044 Example for 1D analysis (forum topic)].
* Arc-length control for overcoming limit points for elastic-plastic collapse analysis: [https://forum.freecadweb.org/viewtopic.php?f=24&t=26921&hilit=riks#p215325 FEM - Tubular Connection with Shell Elements].
* Arc-length control for overcoming limit points for elastic-plastic collapse analysis: [https://forum.freecadweb.org/viewtopic.php?f=24&t=26921&hilit=riks#p215325 FEM - Tubular Connection with Shell Elements (forum topic)].
* Zero-thickness interface elements for various applications, like post-tensioned concrete with friction: [https://forum.freecadweb.org/viewtopic.php?f=18&t=30286&hilit=classical&start=20#p259636 pre-stressed pre/post-tensioned concrete bridge].
* Zero-thickness interface elements for various applications, like post-tensioned concrete with friction: [https://forum.freecadweb.org/viewtopic.php?f=18&t=30286&hilit=classical&start=20#p259636 pre-stressed pre/post-tensioned concrete bridge (forum topic)].


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, [https://forum.freecadweb.org/viewtopic.php?f=18&t=33974 fcFEM - FEA from start to finish].
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 [https://forum.freecadweb.org/viewtopic.php?f=18&t=33974 fcFEM - FEA from start to finish (main forum topic)].


fcFEM is packaged as a python library and a macro, and can be downloaded from the [https://github.com/HarryvL/fcFEM github repository]. It will eventually be available from the [[AddonManager]], or will be distributed as part of FreeCAD itself.
fcFEM is packaged as a Python library and a macro and can be downloaded from the [https://github.com/HarryvL/fcFEM github repository]. It will eventually be available from the [[Std_AddonMgr|AddonManager]] or will be distributed as part of FreeCAD itself.

=== OpenFoam ===

[https://openfoam.org/ OpenFoam] is a powerful framework for [https://en.wikipedia.org/wiki/Computational_fluid_dynamics computational fluid dynamics] (CFD) simulation, distributed as a series of C++ libraries.

OpenFoam is available in FreeCAD through two external workbenches:
* [https://github.com/qingfengxia/Cfd Cfd], originally by Qingfeng Xia.
* [https://github.com/jaheyns/CfdOF CfdOF], a fork of Cfd focusing on ease of use.

While Cfd is intended to be feature-complete for advanced users, CfdOF focuses on users who are just starting in the world of CFD and OpenFoam.

For Cfd: [https://forum.freecadweb.org/viewtopic.php?f=18&t=13699 update on FreeCAD + OpenFOAM fluid dynamic computation (forum topic)], [https://forum.freecadweb.org/viewtopic.php?f=37&t=22993 Progress of the general Computational Fluid Dynamics (CFD) workbench: CfdWorkbench (old forum topic)].

For CfdOF: [https://forum.freecadweb.org/viewtopic.php?f=18&t=21576 Computational Fluid Dynamics (CFD) workbench using OpenFOAM (forum topic)], [http://opensim.co.za/training.html training material].

Both workbenches can be installed through the [[Std_AddonMgr|AddonManager]], and both have a place for discussion in the [https://forum.freecadweb.org/viewforum.php?f=37 CfdOF / CFD subforum].


== Implementation in progress ==
== Implementation in progress ==

=== FEniCS ===
=== 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.
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.


See: [https://fenicsproject.org/ main website], [https://forum.freecadweb.org/viewtopic.php?f=18&t=4677 Fenics as Solver] (forum thread).
See: [https://fenicsproject.org/ main website], [https://forum.freecadweb.org/viewtopic.php?f=18&t=4677 Fenics as Solver (forum topic)].


[https://github.com/qingfengxia/FenicsSolver 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 workbenches|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.
[https://github.com/qingfengxia/FenicsSolver 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|FEM Workbench]] and the Cfd [[External_workbenches|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 ===
[http://www.oofem.org/ OOFEM] is an object oriented FEM program by the Czech Technical University, for solving mechanical, transport and fluid mechanics problems.


[http://www.oofem.org/ OOFEM] is an object-oriented FEM program by the Czech Technical University, for solving mechanical, transport and fluid mechanics problems.
It was mentioned as having some advantages over CalculiX, like interface elements ([https://forum.freecadweb.org/viewtopic.php?f=18&t=30286&start=20#p260275 pre-stressed pre/post-tensioned concrete bridge]), and arc-length control for elastic-plastic collapse analysis ([https://forum.freecadweb.org/viewtopic.php?f=24&t=26921&hilit=Arc#p215325 FEM - Tubular Connection with Shell Elements]).


Preliminary integration into the FEM Workbench has been done. See: [https://forum.freecadweb.org/viewtopic.php?f=18&t=31288 OOFem] (main thread), [https://forum.freecadweb.org/viewtopic.php?t=15568&start=20#p126338 test request, multiple solvers].
It was mentioned as having some advantages over CalculiX, like interface elements ([https://forum.freecadweb.org/viewtopic.php?f=18&t=30286&start=20#p260275 pre-stressed pre/post-tensioned concrete bridge (forum topic)]), and arc-length control for elastic-plastic collapse analysis ([https://forum.freecadweb.org/viewtopic.php?f=24&t=26921&hilit=Arc#p215325 FEM - Tubular Connection with Shell Elements (forum topic)]).


Preliminary integration into the FEM Workbench has been done. See: [https://forum.freecadweb.org/viewtopic.php?f=18&t=31288 OOFem (main forum topic)], [https://forum.freecadweb.org/viewtopic.php?t=15568&start=20#p126338 test request, multiple solvers (forum topic)].
Until the solver integration is completed and the new code is merged into the main FreeCAD repository, the required files for using the solver in the FEM Workbench can be downloaded from a [https://github.com/berndhahnebach/FreeCAD_bhb/tree/femoofem/src/Mod/Fem/ forked FreeCAD branch].

Until the solver integration is completed and the new code is merged into the main FreeCAD repository, the required files for using the solver in the FEM Workbench can be downloaded from a [https://github.com/berndhahnebach/FreeCAD_bhb/tree/femoofem/src/Mod/Fem/ forked FreeCAD branch]. For an implementation overview have a look at the very clean commit history https://github.com/berndhahnebach/FreeCAD_bhb/commits/femoofem


=== MBDyn ===
=== MBDyn ===

* OpenSource general purpose Multibody Dynamics analysis software
* OpenSource general purpose Multibody Dynamics analysis software
* https://www.mbdyn.org/
* [https://www.mbdyn.org/ MBDyn]
* https://forum.freecadweb.org/viewtopic.php?f=18&t=39165
* [https://forum.freecadweb.org/viewtopic.php?f=18&t=39165 FreeCAD as pre-post processor for MBDyn (forum topic)]


== Solvers not integrated ==
== 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 [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum] for advice and assistance.
The following solvers have not been integrated into FreeCAD but they have garnered some interest from the user community. If a developer wishes to create a communication bridge for a particular solver, he or she should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 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
The following articles may be outdated, but the information they contain may still be useful to understand how to integrate solvers into FreeCAD
* [[Extend FEM Module]]
* [[Extend_FEM_Module|Extend FEM Module]]
* [[Add FEM Equation Tutorial]]
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]
* [[Add FEM Constraint Tutorial]]
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]

=== ADAPy ===

See [https://github.com/Krande/adapy/ ADAPy] and [https://forum.freecadweb.org/viewtopic.php?f=18&t=64929 ADA - Assembly for Design & Analysis (forum topic)].


=== Agros2D and Hermes ===
=== Agros2D and Hermes ===

[http://www.agros2d.org/ Agros2D] is a multiplatform graphical program designed for solving different physical problems. Internally it uses the [http://www.hpfem.org/hermes/ 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 [https://en.wikipedia.org/wiki/Hp-FEM (hp-FEM)]. Main code [https://github.com/hpfem/hermes repository], and [https://github.com/hpfem/hermes-tutorial tutorials].
[http://www.agros2d.org/ Agros2D] is a multiplatform graphical program designed for solving different physical problems. Internally it uses the [http://www.hpfem.org/hermes/ 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 [https://en.wikipedia.org/wiki/Hp-FEM (hp-FEM)]. Main code [https://github.com/hpfem/hermes repository], and [https://github.com/hpfem/hermes-tutorial tutorials].


=== Code-Aster and Code-Saturne ===
=== Code-Aster and Code-Saturne ===

[https://www.code-aster.org/ 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: [https://forum.freecadweb.org/viewtopic.php?t=2839 FreeCAD and Code-Aster/Salome-Meca] (forum thread).
[https://www.code-aster.org/ 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: [https://forum.freecadweb.org/viewtopic.php?t=2839 FreeCAD and Code-Aster/Salome-Meca (forum topic)].


[https://www.code-saturne.org/cms/ Code-Saturne] is a free, open-source software developed and released by EDF to solve computational fluid dynamics (CFD).
[https://www.code-saturne.org/cms/ Code-Saturne] is a free, open-source software developed and released by EDF to solve computational fluid dynamics (CFD).


=== FElt ===
=== FElt ===

[http://felt.sourceforge.net/ FElt] is a finite element package to solve linear static and dynamic structural analysis problems. The [https://sourceforge.net/projects/felt/ original code] is outdated, so it was forked to a [https://github.com/Sudhanshu-Dubey14/felt new repository] to revive the project and make it compile in a modern system.
[http://felt.sourceforge.net/ FElt] is a finite element package to solve linear static and dynamic structural analysis problems. The [https://sourceforge.net/projects/felt/ original code] is outdated, so it was forked to a [https://github.com/Sudhanshu-Dubey14/felt new repository] to revive the project and make it compile in a modern system.


It was suggested in the forums to perform reinforced concrete frames analysis (beam and column assemblies) using 1D beam elements: [https://forum.freecadweb.org/viewtopic.php?f=18&t=17061&start=20#p268503 Automation in Design], [https://forum.freecadweb.org/viewtopic.php?f=18&t=33463 Felt in FEM Workbench].
It was suggested in the forums to perform reinforced concrete frames analysis (beam and column assemblies) using 1D beam elements: [https://forum.freecadweb.org/viewtopic.php?f=18&t=17061&start=20#p268503 Automation in Design (forum topic)], [https://forum.freecadweb.org/viewtopic.php?f=18&t=33463 Felt in FEM Workbench (forum topic)].


=== Frame3DD ===
=== Frame3DD ===


[http://frame3dd.sourceforge.net/ Frame3DD] is a software package for static and dynamic structural analysis of 2D and 3D frames and trusses, [https://github.com/pslack/frame3dd main repository]. A preliminary reader for input files was announced in the forums:
[http://frame3dd.sourceforge.net/ Frame3DD] is a software package for static and dynamic structural analysis of 2D and 3D frames and trusses, [https://github.com/pslack/frame3dd main repository]. A preliminary reader for input files was announced in the forums:
[https://forum.freecadweb.org/viewtopic.php?f=24&t=19428 Test read data from Frame3DD file.]
[https://forum.freecadweb.org/viewtopic.php?f=24&t=19428 Test read data from Frame3DD file]. General topic in the FEM forum:
[https://forum.freecadweb.org/viewtopic.php?f=18&t=43389 Frame3DD].


=== Impact FEM ===
=== Impact FEM ===

* http://www.impact-fem.org/ (broken link)
* https://sourceforge.net/projects/impact/


=== libMesh ===
=== libMesh ===
[https://libmesh.github.io/ 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: [https://github.com/libMesh/libmesh code repository].


[https://libmesh.github.io/ 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: [https://github.com/libMesh/libmesh code repository].
It was suggested to integrate this library into FreeCAD as part of a [[Google Summer of Code]] [https://forum.freecadweb.org/viewtopic.php?f=8&t=35493 project].

It was suggested to integrate this library into FreeCAD as part of a [[Google_Summer_of_Code|Google Summer of Code project]]: [https://forum.freecadweb.org/viewtopic.php?f=8&t=35493 GSOC 2019 Configuration Management Project (forum topic)].


=== Modelica ===
=== Modelica ===
[https://www.modelica.org/ 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 [https://openmodelica.org/ OpenModelica] and [https://jmodelica.org/ JModelica].


[https://www.modelica.org/ 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 [https://openmodelica.org/ OpenModelica] and [https://jmodelica.org/ 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: [https://forum.freecadweb.org/viewtopic.php?f=18&t=32556 Modelica] (forum thread).


The [https://pypi.org/project/PyFMI/ 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 [https://forum.freecadweb.org/viewtopic.php?f=18&t=32556#p272632 Modelica system] (forum post).
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: [https://forum.freecadweb.org/viewtopic.php?f=18&t=32556 Modelica (forum topic)].

The [https://pypi.org/project/PyFMI/ PyFMI] package contains Python bindings to work with FMU models, which are standardized models in the binary format produced by compliant Modelica environments, including Dymola, OpenModelica, and JModelica. It was suggested that this library could help FreeCAD connect to a [https://forum.freecadweb.org/viewtopic.php?f=18&t=32556#p272632 Modelica system] (forum topic).


=== Mumps ===
=== Mumps ===

[http://mumps-solver.org/ 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: [https://forum.freecadweb.org/viewtopic.php?t=15568&start=20#p126087 test request, multiple solvers].
[http://mumps-solver.org/ 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: [https://forum.freecadweb.org/viewtopic.php?t=15568&start=20#p126087 Test request, multiple solvers (forum topic)].


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


=== Nastran ===
=== 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, [https://github.com/nasa/NASTRAN-93 Nastran-93] and [https://github.com/nasa/NASTRAN-95 Nastran-95] were released as open source in 2015. Forum post: [https://forum.freecadweb.org/viewtopic.php?f=18&t=12753 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, [https://github.com/nasa/NASTRAN-93 Nastran-93] and [https://github.com/nasa/NASTRAN-95 Nastran-95] were released as open-source in 2015. Forum post: [https://forum.freecadweb.org/viewtopic.php?f=18&t=12753 Nastran (forum topic)].
There is no technical support for the open source code, and it is probably difficult to compile in a modern system.

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


=== OpenSees ===
=== OpenSees ===

[http://opensees.berkeley.edu/ OpenSees] is a software framework for developing applications to simulate structural and geotechnical systems mainly in the field of earthquake engineering.
[https://opensees.berkeley.edu/ OpenSees] is a software framework for developing applications to simulate structural and geotechnical systems mainly in the field of earthquake engineering. [https://forum.freecadweb.org/viewtopic.php?f=18&t=20745 OpenSees, the Open System for Earthquake Engineering Simulation (forum topic)] and [https://forum.freecadweb.org/viewtopic.php?f=18&t=31922 Relicensing of OpenSees (forum topic)].

=== PolyFEM ===

[https://polyfem.github.io/ PolyFEM] is a simple C++ and Python finite element library. We provide a wide set of common partial differential equations including Laplace, Helmholtz, Linear Elasticity, Saint-Venant Elasticity, Neo-Hookean Elasticity and Stokes. [https://forum.freecadweb.org/viewtopic.php?f=18&t=42857 PolyFEM (forum topic)].

=== 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. It looks like it is developed by the team of gmsh mesh generator.


=== SU2 ===
=== SU2 ===
Line 178: Line 212:
[https://su2code.github.io/ SU2] is a collection of software tools developed in C++ and Python for the solution of [https://en.wikipedia.org/wiki/Partial_differential_equation 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).
[https://su2code.github.io/ SU2] is a collection of software tools developed in C++ and Python for the solution of [https://en.wikipedia.org/wiki/Partial_differential_equation 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 ===
=== Tochnog ===
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), [http://www.feat.nl/ website] (broken link).


Tochnog 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), [https://www.tochnogprofessional.nl/ website].
Technog was successfully used in FreeCAD as a substitute of CalculiX, although the trial version is limited in the number of elements it can handle: [https://forum.freecadweb.org/viewtopic.php?f=18&t=26772 Integration of tochnog solver in FreeCAD FEM] (forum thread).

Tochnog was successfully used in FreeCAD as a substitute of CalculiX, although the trial version is limited in the number of elements it can handle: [https://forum.freecadweb.org/viewtopic.php?f=18&t=26772 Integration of tochnog solver in FreeCAD FEM (forum topic)].

=== XC ===


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 189: Line 226:
</div>
</div>



<div class="mw-translate-fuzzy">
{{FEM Tools navi{{#translation:}}}}
[[Category:FEM]]
{{Userdocnavi{{#translation:}}}}
</div>

Latest revision as of 12:58, 6 January 2024

Предисловие

На этой странице собрана вся информация о решающей системе FEM, используемой FreeCAD FEM Workbench. Интерфейс между решателем и FreeCAD в предварительной и последующей обработке выполняется с помощью текстовых файлов. Теоретически это означает, что любой решатель, использующий текстовые файлы, способен работать вместе с FreeCAD FEM.

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. A forum topic to discuss and announce anything regarding the various solvers can be found here: General FEM solvers discussion topic.

Wikipedia lists many finite element software packages. A comparison can be found on feacompare.com.

Versión del solucionador en varias distribuciones de Linux

https://forum.freecadweb.org/viewtopic.php?f=18&t=26326&start=10#p270325)

The FreeCAD-dependencies repository tracks the dependencies of FreeCAD across many Linux distributions. 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.

The information is also discussed in the forum: supported and not supported Solver.

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.

Elmer

The Elmer multiphysics solver was integrated into FreeCAD as a Google Summer of Code 2017 project: main website, community portal, code repository, Elmer Integration (GSoC) - Activity Log (forum topic).

Mystran

Mystran is a structural analysis program that uses the Nastran input file format. It is released under MIT license which means that it's open-source. See main website, code repository and Mystran-FreeCAD-forum (forum topic).

Z88

The Z88 solver is designed for linear static simulations with an emphasis on 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.

See the information:

There are two versions, Z88OS is the open-source edition, while Z88Aurora is freeware, and includes a graphical interface and additional solution methods.

Solvers implemented as external workbenches

These solvers aren't integrated into the FEM Workbench, which means they need a separate interface to set up a simulation project. This is achieved through macros or external workbenches.

DualSPHysics

DualSPHysics is a set of C++, CUDA, and Java libraries that use the smoothed particle hydrodynamics (SPH) model named SPHysics to study free-surface flow phenomena such as crashing waves.

DesignSPHysics is an external workbench built into FreeCAD that provides a graphical user interface for DualSPHysics: main website, code repository, Interesting project: DesignSPHysics fluid simulator (forum topic).

DesignSPHysics can be installed through the AddonManager.

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.

See: ElectroMagnetic Workbench (main forum topic) , Electromagnetic Workbench - again.. (forum topic), FreeCAD for ElectroMagnetics (forum topic), code repository for the workbench.

The EM Workbench can be installed through the AddonManager.

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 fcFEM - FEA from start to finish (main forum topic).

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.

OpenFoam

OpenFoam is a powerful framework for computational fluid dynamics (CFD) simulation, distributed as a series of C++ libraries.

OpenFoam is available in FreeCAD through two external workbenches:

  • Cfd, originally by Qingfeng Xia.
  • CfdOF, a fork of Cfd focusing on ease of use.

While Cfd is intended to be feature-complete for advanced users, CfdOF focuses on users who are just starting in the world of CFD and OpenFoam.

For Cfd: update on FreeCAD + OpenFOAM fluid dynamic computation (forum topic), Progress of the general Computational Fluid Dynamics (CFD) workbench: CfdWorkbench (old forum topic).

For CfdOF: Computational Fluid Dynamics (CFD) workbench using OpenFOAM (forum topic), training material.

Both workbenches can be installed through the AddonManager, and both have a place for discussion in the CfdOF / CFD subforum.

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.

See: main website, Fenics as Solver (forum topic).

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.

It was mentioned as having some advantages over CalculiX, like interface elements (pre-stressed pre/post-tensioned concrete bridge (forum topic)), and arc-length control for elastic-plastic collapse analysis (FEM - Tubular Connection with Shell Elements (forum topic)).

Preliminary integration into the FEM Workbench has been done. See: OOFem (main forum topic), test request, multiple solvers (forum topic).

Until the solver integration is completed and the new code is merged into the main FreeCAD repository, the required files for using the solver in the FEM Workbench can be downloaded from a forked FreeCAD branch. For an implementation overview have a look at the very clean commit history https://github.com/berndhahnebach/FreeCAD_bhb/commits/femoofem

MBDyn

Solvers not integrated

The following solvers have not been integrated into FreeCAD but they have garnered some interest from 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

ADAPy

See ADAPy and ADA - Assembly for Design & Analysis (forum topic).

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 topic).

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.

It was suggested in the forums to perform reinforced concrete frames analysis (beam and column assemblies) using 1D beam elements: Automation in Design (forum topic), Felt in FEM Workbench (forum topic).

Frame3DD

Frame3DD is a software package for static and dynamic structural analysis of 2D and 3D frames and trusses, main repository. A preliminary reader for input files was announced in the forums: Test read data from Frame3DD file. General topic in the FEM forum: Frame3DD.

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.

It was suggested to integrate this library into FreeCAD as part of a Google Summer of Code project: GSOC 2019 Configuration Management Project (forum topic).

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 topic).

The PyFMI package contains Python bindings to work with FMU models, which are standardized models in the 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 topic).

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 (forum topic).

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

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 (forum topic).

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

OpenSees

OpenSees is a software framework for developing applications to simulate structural and geotechnical systems mainly in the field of earthquake engineering. OpenSees, the Open System for Earthquake Engineering Simulation (forum topic) and Relicensing of OpenSees (forum topic).

PolyFEM

PolyFEM is a simple C++ and Python finite element library. We provide a wide set of common partial differential equations including Laplace, Helmholtz, Linear Elasticity, Saint-Venant Elasticity, Neo-Hookean Elasticity and Stokes. PolyFEM (forum topic).

Sparselizard

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. It looks like 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).

Tochnog

Tochnog 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.

Tochnog was successfully used in FreeCAD as a substitute of CalculiX, although the trial version is limited in the number of elements it can handle: Integration of tochnog solver in FreeCAD FEM (forum topic).

XC