About the software

gprMax is open-source software that solves Maxwell’s equations using the finite-difference time-domain (FDTD) method. It uses Yee’s algorithm, with central-difference expressions for the spatial and temporal derivatives that are second-order accurate, and supports both two- and three-dimensional models.
The software began in research on the forward problem of ground-penetrating radar (GPR) in the 1990s, and GPR is what gives gprMax its name. After nearly three decades of development, version 4 is a general-purpose research platform for time-domain computational electromagnetics. GPR remains a core application — assessing bridges and roads, locating buried utilities, mapping glaciers, finding anti-personnel landmines — alongside antenna and microwave modelling, electromagnetic scattering and radar cross section, bioelectromagnetics and dosimetry, and radiometry. See what researchers are doing with it, across more than 1,600 publications.
gprMax is principally written in Python 3 with performance-critical parts in Cython. It is driven from the command line rather than through a general-purpose GUI, which keeps it scriptable and means it runs equally well on a laptop or in high-performance computing (HPC) environments. Models can be written as simple text input files, parameterised with Python blocks, or built entirely programmatically with the full Python API; the Marimo toolbox adds interactive dashboards for building introductory models, monitoring simulations, and inspecting A-scan and B-scan output.
Simulations can be accelerated on a range of hardware: the CPU solver is parallelised with OpenMP; OpenCL supports both CPUs and GPUs; and there are GPU solvers for NVIDIA CUDA and Apple Metal on macOS with M-series chips. MPI support enables larger-scale, multi-node simulations on HPC systems, either by domain decomposition of a single large model or as a task farm across many models. The CPU, CUDA, and OpenCL solvers all offer single- or double-precision field storage; Metal is single precision. Not every feature runs on every solver — the User Guide states the supported combinations for each.
Features
gprMax has a comprehensive set of features for general electromagnetic simulation as well as for GPR modelling. Items marked New arrived with v4.0.0. Everything below is described in detail, with examples, in our User Guide.
Sources, boundaries & guided structures

- A wide range of local sources: Hertzian and magnetic dipoles, hard and resistive voltage sources, and transmission-line feeds — joined in v4 by coaxial magnetic-frill and rational lumped-network feeds New
- Plane-wave excitation through a total-field/scattered-field interface, using the discrete plane-wave formulation for very low numerical leakage New
- Eigenmode sources & ports for guided structures — modal waveguide excitation in 2D and 3D, with multimode S-parameters New
- PEC and PMC symmetry boundaries — solve half or a quarter of a symmetric 3D problem at a fraction of the cost, on every solver New
- Surface-impedance boundaries — model a thick conductor without meshing its skin depth: the frequency-dependent surface impedance is fitted as a rational (Foster) network, with presets for common metals New
- A built-in library of antenna models that behave like commercial GPR antennas: GSSI 1.5 GHz, 400 MHz and 2 GHz palm, and MALA 1.2 GHz
- Advanced higher-order and multipole PML absorbing boundaries, with every parameter customisable
Outputs & analysis

- Near-to-far-field transformations — Kirchhoff surface-integral (KSIR) and equivalent-current formulations, each in the time or frequency domain, including antennas over planar layered ground; KSIR also reconstructs fields at finite distances. These supply radiation patterns, antenna gain and directivity, and radar cross section (RCS) New
- Specific absorption rate (SAR) and absorbed power density outputs for bioelectromagnetics and dosimetry, with radiometric absorption weighting for radiometry New
- S11 and input impedance from voltage, transmission-line, magnetic-frill and rational-network sources, and full multi-port S-parameters from eigenmode ports; field snapshots and geometry views
Materials & geometry
- Dispersive materials (multi-pole Debye, Lorentz, or Drude) and anisotropy
- Dielectric smoothing at material interfaces — v4 adds a flux-continuous magnetic average and optional averaging of dispersive materials New
- Versioned material databases — reusable electromagnetic properties without copying pole lists into every model New
- Modelling of soils with realistic dielectric and geometric properties, heterogeneous objects, and rough surfaces
- Tagged geometry import from STL and STEP CAD files, and from labelled medical image volumes and scientific meshes New
- Ready-made geometries: the AustinMan & AustinWoman human phantoms, joined in v4 by PMA-1, PMN and TS-50 landmine models New
- Subgridding — fine geometry inside a coarser model, on the CPU and CUDA solvers New
Workflow & scripting
- A full Python API for building parameterised models and simulations programmatically New
- 2D TM and TE modes as well as full 3D — TE is new in v4 New
- Reusable studies — point-source acquisitions, terminal drives, voltage- and modal-port S matrices, and plane-wave sweeps over one built geometry New
- An optimisation toolbox that connects a model’s geometry and material parameters to an external optimiser New
- Toolboxes shipped under
gprMax.toolboxes: antenna patterns and reusable material definitions, joined in v4 by DebyeFit (multi-pole Debye fitting, including the CRIM mixing model), FMCW and SFCW radar, impulse-response synthesis, and Marimo dashboards — several of them begun as Google Summer of Code projects New - Open, robust file formats: HDF5 outputs, and VTKHDF geometry and snapshot files for ParaView 5.12 or newer
