FEM Solver/de

Vorwort
Diese Seite sammelt Informationen über die von der FEM Arbeitsbereich verwendeten Finite Elemente Löser. Die Schnittstelle zwischen einem Löser und FreeCAD sowohl in der Vor- als auch in der Nachbearbeitung erfolgt über Textdateien. Das bedeutet, dass theoretisch jeder Löser, der über Textdateien konfiguriert und gesteuert werden kann, mit FreeCAD zusammenarbeiten kann; für diese Kommunikation muss ein geeigneter Parser und Schreiber von Ein- und Ausgabedateien programmiert werden.

Wikipedia listet viele Finite Elemente Softwarepakete auf. Einen Vergleich findest du auf feacompare.com.

Verfügbare Löser in verschiedenen Linux Distributionen
Das FreeCAD-Abhängigkeiten Repositorium verfolgt die Abhängigkeiten von FreeCAD über viele Linux Distributionen hinweg. Die FEM.md Seite betrachtet verfügbare quelloffene FEA Löser, die mit der FEM Workbench/de verwendet werden können. Die Seite zeigt die Version eines bestimmten Lösers im Repositorium einer bestimmten Linux Distribution. Diese Information ist nützlich, um zu wissen, ob ein Löser aktuell oder veraltet ist und aktualisiert werden muss.

Die Informationen werden auch im Forum diskutiert: unterstützter und nicht unterstützter Löser.

Löser mit einer Schnittstelle in FreeCAD
Diese Löser sind gut in FreeCAD integriert, was bedeutet, dass es möglich ist, ein Simulationsprojekt von der grafischen Oberfläche und den Schaltflächen im FEM Arbeitsbereich aus zu erstellen und auszuführen.

CalculiX
Dies ist der erste Löser, der für die Arbeit mit dem FEM Arbeitsbereich integriert wurde. CalculiX ist vor allem für statische, thermo-mechanische und modale Analysen konzipiert. Weitere Informationen über diesen Löser findest Du unter FEM CalculiX/de.

Elmer
Der Elmer Multiphysik Löser wurde als Google Summer of Code 2017 Projekt in FreeCAD integriert: Hauptwebsite, Gemeinschaftsportal, Code Repositorium, Elmer Integration (GSoC) - Aktivitätsprotokoll ( Forumsbeitrag).

Z88
Der Z88 Löser ist für lineare statische Simulationen mit dem Schwerpunkt auf der Vermittlung der Finite Elemente Methode konzipiert. Er war der zweite Solver, der integriert in FreeCAD. Danach wurde die Integration als Google Summer of Code 2017 Projekt verbessert.

Siehe die Informationen:
 * Hauptwebsite, Downloadseite, Quelltext Repositorium (und vorkompilierte Binärdateien).
 * Versionshinweise: Z88os V15 veröffentlicht am 17.07.2017, Z88os V13 veröffentlicht am 20.05.2009 (Version in Debian Jessie 8, Stretch 9, Buster 10).
 * Wie man Z88 in FEM? benutzt (Forumsbeitrag).

Es gibt zwei Versionen, Z88OS ist die quelloffene Version, während Z88Aurora Freeware ist und eine grafische Oberfläche und zusätzliche Lösungsmethoden enthält.

Löser als externe Arbeitsbereiche implementiert
Diese Löser sind nicht in die FEM Workbench/de integriert, d.h. sie benötigen eine separate Schnittstelle, um ein Simulationsprojekt zu erstellen. Dies wird durch macros/de oder externe Werkbänke erreicht.

OpenFoam
OpenFoam ist ein leistungsfähiges Framework für Numerische Strömungsmechanik (engl.: computational fluid dynamics, CFD) Simulation, verteilt als eine Reihe von C++ Bibliotheken.

OpenFoam ist in FreeCAD über zwei externe Arbeitsbereiche verfügbar:
 * Cfd, ursprünglich von Qingfeng Xia.
 * CfdOF, eine Abspaltung von Cfd, die sich auf die Benutzerfreundlichkeit konzentriert.

Während Cfd für fortgeschrittene Anwender gedacht ist, konzentriert sich CfdOF auf Anwender, die gerade erst in die Welt von CFD und OpenFoam einsteigen.

Für Cfd: Aktualisierung von FreeCAD + OpenFOAM Fluiddynamik Berechnung (Forumsbeitrag), Fortschritte des allgemeinen Numerischen Strömungsmechanik (CFD) Arbeitsbereichs: CfdWorkbench (alter Diskussionsstrang).

Füor CfdOF: Computational Fluid Dynamics (CFD) Arbeitsbereich OpenFOAM verwendend (Forumsbeitrag), Trainingsmaterial.

Beide Arbeitsbereiche können über den AddonManager/de installiert werden, und beide haben einen Platz für Diskussionen im CfdOF / CFD Unterforum.

DualSPHysics
DualSPHysics ist ein Satz von C++, CUDA und Java Bibliotheken, die die geglättete Teilchen Hydrodynamik verwenden. (SPH) Modell namens SPHysics zur Untersuchung von Phänomenen der freien Oberflächenströmung wie z.B. brechenden Wellen.

DesignSPHysics ist ein in FreeCAD integrierter externer Arbeitsbereich, der eine grafische Benutzeroberfläche für DualSPHysics bietet: Haupt-Website, Code Repositorium, Interessantes Projekt: DesignSPHysics Fluidsimulator (Forumsbeitrag).

DesignSPHysics kann über den AddonManager/de installiert werden.

FastHenry und FasterCap
FastHenry und FasterCap sind von FastFieldSolvers entwickelte Induktivitäts-Widerstands und Kapazitäts Feldlöser: Hauptwebsite, Downloadseite (Binär- und Quellcode), Forum.

Die EM Arbeitsbereich ist ein externer Arbeitsbereich, die als Front-End für diese elektromagnetischen Löser geschaffen wurde. FastHenry, für die 3D magneto-quasistatische Impedanzanalyse, wird vollständig unterstützt, während FasterCap über einige Python Makros zugänglich ist.

See: ElectroMagnetic Workbench (main thread), Electromagnetic Workbench - again.., FreeCAD for ElectroMagnetics, 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
 * Mixed mesh analyses (solid-shell) for dealing with composite columns or prefabricated architectural components: FEM object types.
 * Improved beam and shell elements, as CalculiX's beam elements seem to give wrong results: CalculiX 3-node Beam Element, FEM object types, Example for 1D analysis.
 * Arc-length control for overcoming limit points for elastic-plastic collapse analysis: FEM - Tubular Connection with Shell Elements.
 * Zero-thickness interface elements for various applications, like post-tensioned concrete with friction: pre-stressed pre/post-tensioned concrete bridge.

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.

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

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), and arc-length control for elastic-plastic collapse analysis (FEM - Tubular Connection with Shell Elements).

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

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 a implementation overview have a look at the very clean commit history https://github.com/berndhahnebach/FreeCAD_bhb/commits/femoofem

MBDyn

 * OpenSource general purpose Multibody Dynamics analysis software
 * https://www.mbdyn.org/
 * https://forum.freecadweb.org/viewtopic.php?f=18&t=39165

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
 * Extend FEM Module
 * Add FEM Equation Tutorial
 * Add FEM Constraint Tutorial

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.

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

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.

Impact FEM

 * http://www.impact-fem.org/ (broken link)

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.

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.

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.

OpenSees
OpenSees is a software framework for developing applications to simulate structural and geotechnical systems mainly in the field of earthquake engineering. Forum topics https://forum.freecadweb.org/viewtopic.php?f=18&t=20745 and https://forum.freecadweb.org/viewtopic.php?f=18&t=31922

PolyFEM
PolyFEM is PolyFEM is a simple C++ and Python finite element library. We provide a wide set of common PDEs including: Laplace, Helmholtz, Linear Elasticity, Saint-Venant Elasticity, Neo-Hookean Elasticity and Stokes. Form topic https://forum.freecadweb.org/viewtopic.php?f=18&t=42857

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

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: Integration of tochnog solver in FreeCAD FEM (forum thread).

XC
XC is a FEA program designed to solve structural problems in civil engineering like real beam shell analysis. Internally it uses the OpenSees libraries: main repository, XC, opensource structural engineering FEM code (forum thread).