========= 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 unified ``petgem`` dispatcher (``petgem modeling`` / ``petgem inverse``). - Unified HDF5 input bundle assembled by ``utils/preprocess.py`` for both modes (see :doc:`formats`). - Mesh input accepts both Gmsh ``.msh`` and VTK ``.vtk``/``.vtu`` (tetrahedral); the format is auto-detected and VTK region codes are mapped to 0-based material ids in ascending order (see :doc:`meshing`). - BDDC-preconditioned iterative solve for forward modeling; direct (MUMPS) solve for inversion and for high polynomial order (see :doc:`solver`). - 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 :doc:`publications`.