Welcome to PETGEM’s documentation!
PETGEM (Parallel Exascale Toolkit for Geophysical Electromagnetic Modeling) is an open-source software for large-scale 3D electromagnetic (EM) modeling. It implements a high-order edge finite element method on unstructured tetrahedral meshes, enabling accurate simulations for active-source EM problems in both forward modeling and inverse modeling (inversion).
Originally developed in Python, PETGEM has been refactored in C and integrated with PETSc to improve scalability on massively parallel architectures, memory efficiency, and mesh handling. These advances make PETGEM well suited for current and future exascale systems.
PETGEM has been successfully applied to subsurface exploration in oil & gas, geothermal reservoir characterization, and environmental EM surveys.
Key features
More information
See our publication list at Publications
Getting started:
Forward modeling:
Inverse modeling:
Reference:
- Numerical formulation
- Data formats
- Mesh generation
- Solver options and performance
- Troubleshooting
- Python API
- API Reference
- Assembly module (assembly.h)
- Common module (common.h)
- Constants module (constants.h)
- Grid module (grid.h)
- Hvfem module (hvfem.h)
- Inputs module (inputs.h)
- Inversion module (inversion.h)
- Io module (io.h)
- Kernels module (kernels.h)
- Postprocessing module (postprocessing.h)
- Receiver_interp module (receiver_interp.h)
- Solver module (solver.h)
- Transmitter module (transmitter.h)
- Version module (version.h)
Development:
About: