FEM Solver/it

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

Wikipedia elenca molti pacchetti software ad elementi finiti che potenzialmente potrebbero funzionare con FreeCAD in futuro. Un confronto è disponibile su https://feacompare.com/.

Risolutori disponibili in varie distribuzioni Linux
Il repository FreeCAD-dependencies tiene traccia delle dipendenze di FreeCAD su molte distribuzioni Linux. La pagina FEM.md esamina i risolutori FEA open source che potrebbero essere utilizzati con FEM. La pagina mostra la versione di un particolare solutore nel repository di una particolare distribuzione Linux. Questa informazione è utile per sapere se un risolutore è aggiornato o non lo è e deve essere aggiornato.

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.

Le informazioni sono anche discusse nel forum: supported and not supported Solver.

Solver con un'interfaccia in FreeCAD
Questi solutori sono ben integrati in FreeCAD, il che significa che è possibile impostare ed eseguire un progetto di simulazione dall'interfaccia grafica e dai pulsanti nell'ambiente FEM.

CalculiX
Questo è il primo solutore che è stato integrato per funzionare con FEM. CalculiX è progettato principalmente per analisi statiche, termomeccaniche e modali. Ulteriori informazioni su questo risolutore sono disponibili in FEM CalculiX.

Elmer
Il solutore multifisico Elmer è stato integrato in FreeCAD come progetto di Google Summer of Code 2017: main website, community portal, code repository, Elmer Integration (GSoC) - Activity Log (discussione nel forum).

Z88
Il solutore Z88 è progettato per simulazioni statiche lineari con particolare attenzione all'insegnamento del metodo degli elementi finiti. È stato il secondo risolutore ad essere integrato in FreeCAD. Successivamente, l'integrazione è stata migliorata come progetto Google Summer of Code 2017.

Vedere le informazioni:
 * Main website, download page, source code repository (e binari precompilati).
 * Note di rilascio: Z88os V15 released 17.07.2017, Z88os V13 released 20.05.2009 (version in Debian Jessie 8, Stretch 9, Buster 10).
 * Come usare Z88 in FEM? (forum thread).

Ci sono due versioni, Z88OS è l'edizione open source, mentre Z88Aurora è freeware e include un'interfaccia grafica e dei metodi di soluzione aggiuntivi.

Solver implementati come ambienti esterni
Questi solutori non sono integrati nell'ambiente FEM, il che significa che hanno bisogno di un'interfaccia separata per impostare un progetto di simulazione. Ciò si ottiene attraverso le macro o gli ambienti esterni.

OpenFoam
OpenFoam è un potente framework per la simulazione fluidodinamica computazionale (CFD), distribuito come una serie di librerie C++.

OpenFoam è disponibile in FreeCAD attraverso due ambienti esterni:
 * Cfd, originario di Qingfeng Xia.
 * CfdOF, una biforcazione di Cfd che è finalizzata alla facilità d'uso.

Mentre Cfd è concepito come funzionalità completa per utenti avanzati, CfdOF è pensato per gli utenti che stanno iniziando con CFD e OpenFoam.

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

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

Entrambi gli ambienti possono essere installati tramite Addon manager, ed entrambi hanno un posto per la discussione nel subforum CfdOF / CFD.

DualSPHysics
DualSPHysics è un set di librerie C++, CUDA, e Java che usa il modello idrodinamica a particelle levigate (SPH) denominato SPHysics per studiare i fenomeni di flusso a superficie libera come le onde che si infrangono.

DesignSPHysics è un ambiente esterno integrato in FreeCAD che fornisce un'interfaccia utente grafica per DualSPHysics: main website, code repository, Interesting project: DesignSPHysics fluid simulator (discussione nel forum).

DesignSPHysics può essere installato tramite Addon manager.

FastHenry e FasterCap
FastHenry e FasterCap sono risolutori di campi di capacità e induttanza-resistenza sviluppati da FastFieldSolvers: main website, download page (binary and source code), forum.

EM è un ambiente di lavoro esterno che è stato creato per servire da front-end per questi risolutori elettromagnetici. FastHenry è completamente supportato per l'analisi di impedenza magneto-quasistatica 3D, mentre FasterCap è accessibile attraverso alcune macro Python.

Vedere: ElectroMagnetic Workbench (discussione principale), Electromagnetic Workbench - again.., FreeCAD for ElectroMagnetics, repository del codice per l'ambiente.

EM può essere installato tramite Addon manager.

fcFEM
fcFEM è un risolutore di elementi finiti per studi strutturali e meccanici, implementato in Python e che può essere eseguito direttamente da FreeCAD senza chiamare solutori binari esterni. Pertanto, può essere considerato il risolutore interno di FreeCAD.

fcFEM è stato progettato per superare alcune limitazioni di altri solutori, come CalculiX, al fine di eseguire vari studi di ingegneria strutturale.

Alcuni dei problemi che dovrebbero essere risolti da questo risolutore includono
 * Analisi di mesh miste (solidi-shell) per la gestione di colonne composite o componenti architettonici prefabbricati: FEM object types.
 * Elementi travi e lastre migliorati, poiché gli elementi trave di CalculiX sembrano dare risultati errati: CalculiX 3-node Beam Element, FEM object types, Example for 1D analysis.
 * Controllo della lunghezza dell'arco per superare i punti limite per l'analisi del collasso elasto-plastico: FEM - Tubular Connection with Shell Elements.
 * Elementi di interfaccia a spessore zero per varie applicazioni, come il calcestruzzo post-tensionato con attrito: pre-stressed pre/post-tensioned concrete bridge.

L'autore considera FreeCAD una buona piattaforma di prototipazione per configurare, testare e visualizzare rapidamente diversi problemi strutturali, quindi avere un solutore integrato ma flessibile è molto utile. Vedere la discussione principale, fcFEM - FEA from start to finish.

fcFEM è impacchettato come una libreria python e una macro e può essere scaricato dal github repository. Alla fine sarà disponibile dal Addon manager, o sarà distribuito come parte di FreeCAD stesso.

FEniCS
FEniCS è un framework di calcolo per la risoluzione di equazioni differenziali alle derivate parziali (PDE), con interfacce di programmazione di alto livello in Python e C++. Può essere usato per stabilire problemi scientifici nelle formulazioni di elementi finiti che possono essere risolti numericamente.

Vedere: main website, Fenics as Solver (forum thread).

FenicsSolver è una piattaforma di simulazione per affrontare problemi multi-corpo, multi-fisica (accoppiati) e multi-scala. Si spera di integrare il solutore FEniCS sia in FEM che nell'ambiente esterno Cfd, quindi il sistema risultante funziona come un'alternativa gratuita a Comsol o Moose. FenicsSolver è sviluppato dallo stesso autore di Cfd.

OOFEM
OOFEM è un programma FEM orientato agli oggetti realizzato dall'Università Tecnica Ceca, per risolvere problemi meccanici, di trasporto e di meccanica dei fluidi.

È stato detto che presenta alcuni vantaggi rispetto a CalculiX, come gli elementi dell'interfaccia (pre-stressed pre/post-tensioned concrete bridge), e controllo della lunghezza dell'arco per l'analisi del collasso elasto-plastico (FEM - Tubular Connection with Shell Elements).

L'integrazione preliminare in FEM è stata eseguita. Vedere: OOFem (main thread), test request, multiple solvers.

Fino a quando l'integrazione del solutore non viene completata e il nuovo codice non viene unito al repository principale di FreeCAD, i file necessari per l'utilizzo del solutore in FEM possono essere scaricati da forked FreeCAD branch.

MBDyn

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

Solutori non integrati
I seguenti solutori non sono stati integrati in FreeCAD ma hanno suscitato un certo interesse da parte della comunità degli utenti. Se uno sviluppatore desidera creare un ponte di comunicazione per un determinato risolutore, deve fare riferimento al subforum FEM per consigli e assistenza.

I seguenti articoli potrebbero essere obsoleti, ma le informazioni che contengono potrebbero comunque essere utili per capire come integrare i solutori in FreeCAD
 * Extend FEM Module/it
 * Tutorial Aggiungere equazioni FEM
 * Tutorial Aggiungere vincoli FEM

Agros2D e Hermes
Agros2D è un programma grafico multipiattaforma progettato per risolvere diversi problemi fisici. Internamente utilizza le librerie C++ Hermes per la soluzione di sistemi di equazioni alle derivate parziali non lineari (PDE) semplici e complessi dipendenti dal tempo che utilizzano una versione generale del metodo degli elementi finiti (hp-FEM). Codice principale repository, e tutorials.

Code-Aster e Code-Saturne
Code-Aster è un solutore multiphysics open source; insieme al pre-processore Salomé-Meca formano una piattaforma di simulazione sviluppata da EDF-GDF, la più grande compagnia energetica francese. Era un primo pacchetto considerato per l'inclusione in FreeCAD: FreeCAD and Code-Aster/Salome-Meca (discussione nel forum).

Code-Saturne è un software open source gratuito sviluppato e rilasciato da EDF per risolvere la fluidodinamica computazionale (CFD).

FElt
FElt è un pacchetto di elementi finiti per risolvere problemi di analisi strutturale lineare statica e dinamica. Il codice originale è obsoleto, quindi è stato biforcato in un nuovo repository per far rivivere il progetto e renderlo compilabile in un sistema moderno.

Nei forum è stato suggerito di eseguire l'analisi dei rinforzi del cemento armato (assemblaggi di travi e colonne) utilizzando elementi trave 1D: Automation in Design, Felt in FEM Workbench.

Frame3DD
Frame3DD è un pacchetto software per l'analisi strutturale statica e dinamica di strutture 2D e 3D, repository principale. Un lettore preliminare per i file di input è stato annunciato nei forum: Test read data from Frame3DD file.

Impact FEM

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

libMesh
libMesh è una libreria di elementi finiti C++ per la soluzione numerica di equazioni alle derivate parziali, con l'obiettivo principale di fornire supporto per calcoli di affinamento reticolare adattivo (AMR) in parallelo: code repository.

È stato suggerito di integrare questa libreria in FreeCAD come parte di un progetto Google Summer of Code.

Modelica
Modelica è un linguaggio per modellare e ottimizzare sistemi fisici complessi e interconnessi, ad esempio meccanici, elettrici, termici, idraulici e altri. Il linguaggio stesso e le sue librerie standard sono open source. Alcuni ambienti di simulazione basati su Modelica, come Catia's Dymola, sono proprietari, ma ci sono anche implementazioni free come 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.

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