About the software
gprMax is open source software that simulates electromagnetic wave propagation. It uses Yee's algorithm to solve Maxwell’s equations in 3D using the Finite-Difference Time-Domain (FDTD) method.
gprMax is command-line-driven software written in Python with performance-critical parts written in Cython. It does not feature a graphical user interface (GUI) which allows it to be very flexible and scriptable software that can run in high-performance computing (HPC) environments, i.e. on supercomputers.
gprMax can be run on either CPU or GPU. The CPU solver has been parallelised using OpenMP which enables it to run on multi-core CPUs. The GPU solver has been developed using the NVIDIA CUDA programming model. gprMax also features a Messaging Passing Interface (MPI) task farm, which can operate with CPU nodes or multiple GPUs.
gprMax has many powerful and advanced features such as:
- Anisotropic material modelling
- Dispersive material modelling (with multi-pole Debye, Lorenz or Drude formulations)
- Modelling of soils with realistic dielectric and geometric properties
- Building of heterogeneous objects
- Building of objects with rough surfaces
- Built-in libraries of antenna models
All of the software features along with examples are described in detail in our comprehensive User Guide.
Take a look at our poster from the 8th European Conference on Python in Science (EuroSciPy) which showcases some of these features.
Previous retired version (v.2)
gprMax was originally developed in 1996 by Antonis Giannopoulos when numerical modelling using the FDTD method and, in general, the numerical modelling of Ground Penetrating Radar (GPR) were in their infancy. It was written in C and continually improved and extended until 2015. This original (v.2) release of gprMax consisted of two simulators: gprMax2D - which solved the transverse-magnetic mode with respect to \(z\) (\(TM_z\)) in 2D; and gprMax3D - which solved the full FDTD algorithm in 3D. It was supported by the Building Research Establishment.
The previous version (v.2) of gprMax is no longer maintained or supported.