Simulating electromagnetic wave propagation for Ground Penetrating Radar

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.

It is designed for simulating Ground Penetrating Radar (GPR) and can also be used to model electromagnetic wave propagation in fields such as engineering, geophysics, archaeology, and medicine. There are a wide range of applications range from assessing infrastructure such as bridges and roads, locating buried utilities, mapping glaciers, finding anti-personnel landmines, and detecting tumours in the human body.

gprMax is command-line-driven software written in Python with performance-critical parts written in Cython. It does not currently 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.

lightbulb_outline View ideas list


  • python
  • cuda
  • openmp
  • cython
  • mpi


email Mailing list
mail_outline Contact email

gprMax 2019 Projects

  • John Hartley
    Implementation of a sub-gridding framework
    An implementation of a sub-gridding framework is proposed. Sub-gridding reduces the computational resources and solve time required for many...
    OpenCl Accelerated FDTD Solver for gprMax
    The aim is to add new feature of simulating GPR models based on OpenCl which willrun on heterogeneous computing units. PyOpenCl, a Python wrapper...