Berkeley Lab Finite Element Framework — a C++17 finite element framework built for high-performance computing, with a focus on electromagnetics of high-temperature superconductors.
BELFEM solves coupled magneto-thermal problems on distributed meshes. Its Maxwell module implements the h-φ formulation with thin-shell elements and automatically generated cohomology cuts; the surrounding infrastructure provides MPI-parallel mesh handling, backend-agnostic linear algebra, and interfaces to the major sparse direct solvers.
| If you want to | Read |
|---|---|
| Build BELFEM and run your first simulation | Getting Started |
| Write or understand an input.conf deck | Input File Reference |
| Understand the design rules before writing code | Coding Philosophy |
| Find the module that does what you need | Module Documentation |
| Trace a formulation back to its source | Literature References |
| Add or reorganize documentation | Documentation Guidelines |
The class, file and namespace indices in the navigation bar cover the API itself. The pages below are the hand-written documentation: module guides, algorithm descriptions and theory notes.
BELFEM is HPC code, and several of its conventions differ from mainstream modern C++:
The Coding Philosophy page explains the reasoning behind each of these.