Skip to content

Latest commit

 

History

History
142 lines (73 loc) · 3.36 KB

Onboarding_FEM_Devs.md

File metadata and controls

142 lines (73 loc) · 3.36 KB

Onboarding FEM Devs

{{TOCright}}

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:

Writing Unit Tests

TBD

Informative

Related

Category:FEM Category:FEM Category:Developer Documentation


documentation index > FEM > Onboarding FEM Devs