BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
BELFEM

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.


Where to start

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.


Conventions worth knowing up front

BELFEM is HPC code, and several of its conventions differ from mainstream modern C++:

  • Matrices are column-major. A(i,j) with the inner loop over i is the fast traversal. Always use the accessor rather than computing offsets from data().
  • Naming is prefix-based. a for arguments, t for temporaries, m for members, g for globals — relaxed in numerical kernels so the code can mirror published equations.
  • Containers are purpose-built. Cell<T> for arrays, Vector/Matrix for linear algebra only, DynamicBitset for large boolean flag sets.
  • Nothing is thread-safe by design. Parallelism is MPI, not threading.

The Coding Philosophy page explains the reasoning behind each of these.


Run a simulation

Extend a module

Project process

Code development

  • doc_lessons_learned
  • doc_lessons_learned_evidence