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

Index of general project documentation.

Guidelines and Philosophy

  • documentation_guidelines.md - How to organize and name documentation files
  • coding_philosophy.md - BELFEM coding philosophy (nomenclature, memory management, container selection, performance patterns)
  • literature_references.md - Reference guide to literature used in BELFEM development
  • ai_collaboration_protocol.md - Two-AI review protocol, exchange format and confidence calibration
  • ai_workflow_best_practices.md - Experience report on the multi-AI method: which practices were adopted, what changed after each, what they cost, and a five-item minimum adoption set — written to be readable outside this project
  • lessons_learned.md (repository only, not rendered on the site) - The tripwire layer: operating rules distilled from the incident catalog, indexed by the activity you are starting and by the symptom you are staring at. Layer 1 is what a session loads; Layer 2 carries one evidence card per rule. The file states its own rule and incident counts, and the reconciliation between clustered incidents and catalog rows, in its header
  • lessons_learned_evidence.md (repository only, not rendered on the site) - The cataloged incidents behind those rules, one row each, every INC-NNN citation resolving to the dated devlog/ entry it was mined from — a reference appendix, not a document to read through

User Reference

  • getting_started.md - Build BELFEM and run your first simulation: configure/build, the example workflow (gmsh mesh generation, then belfem), restart and material-database gotchas, deck validation with belfem-conf
  • input_file_reference.md - Living reference of the input.conf contract: syntax, every parsed section/key with types, units, defaults and parse-site citations, aliases, dead keys, and pitfalls. Extend it in the same session as any input-feature change.
  • mpi_support.md - Open MPI is the only supported MPI: why MPICH and Intel MPI are refused at configure time, what the -DALLOW_UNTESTED_MPI=ON override costs, and why the Open MPI link flags in the MUMPS and MKL configs must not be "made portable"
  • parallel_execution.md — choosing MPI ranks, OpenMP threads and allocator settings for a production run: assembly scales with ranks (measured 3.6–3.8×), the factorization does not, and memory is set by a rank-independent factor

Module-Specific Documentation

Infrastructure

  • Core - Fundamental utilities (logging, timing, types, constants, string tools)
  • Containers - BELFEM container classes usage guide
  • Linear Algebra - Backend-agnostic linear algebra API and LAPACK wrappers
  • Sparse - Sparse matrix storage and solver interfaces (UMFPACK, MUMPS, STRUMPACK, PARDISO, PETSc)
  • I/O - File input/output (HDF5, ASCII, CSV, configuration files, XML)
  • Communication - MPI communication abstraction layer
  • Mesh - Mesh data structures, I/O (Gmsh, HDF5, Exodus, VTK), and parallel partitioning
  • Visualizer - Optional VTK rendering of meshes and curves (USE_VTK, off by default)

Mathematics

  • Graph - Graph algorithms and partitioning (BFS, DFS, RCM, METIS, SCOTCH)
  • Tensor - Fourth-order tensor helper
  • Quaternion - Quaternion value type for 3D rotations
  • Spline - Spline interpolation
  • Optimizer - NLOPT-backed bound-constrained minimization (USE_NLOPT, default ON; not used by the FEM path)
  • Homology - Cohomology algorithms, cut generation and theory

Finite Elements

  • FEM - Cross-cutting FEM notes, including the time-stepping strategy
  • FEM Kernel - DOF management, hanging nodes, assembly, time stepping and the nonlinear controller
  • Interpolation - Shape functions, integration points, and Nédélec elements
  • IWG - Integral Weak Form physics module (Poisson, heat conduction, elasticity, time-stepping)
  • Maxwell - Electromagnetic physics (h-φ formulation, thin shells, HTS, cohomology cuts)
  • Thermal - Transient heat conduction and the magneto-thermal coupling belfem selects for a deck with a thermal solver section
  • Postprocessing - Mesh-level postprocessing: volumes, surfaces, normals, gradients, mesh checks

Physics and Circuits

  • Materials - Material properties framework (pure metals, HTS, alloys, user-defined materials)
  • Database - Precomputed lookup tables on tensor grids (projection, interpolation, HDF5 persistence)
  • Gas Models - Equation-of-state and transport models
  • Gas Tables - Tabulated thermophysical property data
  • Circuit - Lumped-element circuit simulator coupled to the FEM problem
  • Executables - Solver application (belfem) and the supporting tools (material, gas, db2exo, msh2exo), with their command-line interface

See Also:

  • The generated API reference (make doc) covers classes, files and namespaces.
  • README.md in the repository root - project overview and license.