Changelog
Notable changes to PETGEM are recorded here. Versions follow the
include/version.h header, which is the single source of truth for the
release string.
2.0.0
Major refactor of PETGEM to C and PETSc.
Refactored the solver in C and integrated with PETSc for scalability on massively parallel architectures, memory efficiency, and mesh handling.
High-order Nédélec (edge) vector finite elements, orders 1 to 6, on unstructured tetrahedral meshes.
Forward modeling (
fm.csem) and inverse modeling (im.csem, L-BFGS with adjoint-state gradients), plus a unifiedpetgemdispatcher (petgem modeling/petgem inverse).Unified HDF5 input bundle assembled by
utils/preprocess.pyfor both modes (see Data formats).Mesh input accepts both Gmsh
.mshand VTK.vtk/.vtu(tetrahedral); the format is auto-detected and VTK region codes are mapped to 0-based material ids in ascending order (see Mesh generation).BDDC-preconditioned iterative solve for forward modeling; direct (MUMPS) solve for inversion and for high polynomial order (see Solver options and performance).
Optional Extrae instrumentation (
make USE_EXTRAE=1) for performance profiling.
Earlier history
PETGEM was originally developed in Python; for the history of those releases and the underlying methods, see the publications in Publications.