Onboarding FEM Devs
Description
This page will orient new developers on how to setup their development environments in order to hack on the FEM workbench.
Setting up a Dev Environment
TBD
Prerequisites
- Netgen
Recommended
- Paraview
Compiling via Source
TBD
Compiling via Docker
TBD
Source Code Management
Keeping FreeCAD up-to-date is documented in Source code management page. Along with useful git tips.
FEM Code Infrastructure
The FEM code lives in src/Mod/Fem
-
App/console-mode application, defines basic structures and base classes for document objects, that are used by modules to build their own. -
Gui/GUI-mode application, defines the 3D view, tools/functions used by workbench to interact with UI and 3D view, defines base classes for view providers. -
femcommands/ -
fem.dox -
femexamples/ -
femguiobjects/ -
femguiutils/ -
feminout/ -
femmesh/ -
femobjects/ -
femresult/ -
femsolver/ -
femtaskpanels/ -
femtest/ -
femtools/ -
femviewprovider/ -
InitGui.py -
Init.py -
ObjectsFem.py -
TestFemApp.py -
TestFemGui.py
Coding Conventions
Please see coding_conventions.md file on the FreeCAD repository.
Adding New FEM Solvers
A new FEM solver requires the following:
- Mesh exporter
- Results importer
- Solver object (needs changes in solver settings, unit tests, ObjectsFem modules as well)
- Task and writer module (here is where the main solver input writing happens)
- GUI tool to create a solver
- GUI preference tab to set the solver binary path
- A solver input writing unit test. Best to take the ccx cantilever. This is available for all mesh element types
- Having one or two beers
See also:
- Extend FEM Module
- The implementation efforts of the oofem solver
- The implementation efforts of the [https://github.com/FreeCAD/FreeCAD/compare/a03eb6b9625ba...dfc01ec949525 myStran] solver
Writing Unit Tests
TBD
Informative
Related
- FEM bugs in the FreeCAD bugtracker
- Open FEM FIXME comments in the FreeCAD source code
- Open FEM TODO comments in the FreeCAD source code
- Original thread discussion for this wiki page
- FEM Workbench
⏵ documentation index > FEM > Developer Documentation > Onboarding FEM Devs
This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/Onboarding_FEM_Devs.md