Modelling materials with complex electromagnetic properties


gprMax software

All electromagnetic phenomena are governed by the Maxwell’s equations, which describing how electric and magnetic fields are distributed due to charges and currents, and how they are changing in time. gprMax is open source software that simulates electromagnetic wave propagation by using Yee’s algorithm to solve (3+1)D Maxwell’s equations with Finite-Difference Time-Domain (FDTD) method. gprMax is command-line-driven software written in Python with performance-critical parts written in Cython.

What and why?

The behavior of the electromagnetic wave is closely dependent on the material in which it propagates. Some dispersive media have quite complex electromagnetic properties depending on the wavelength. This, for example, means that for different frequencies the wave can propagate with a different speed in different materials. This significantly affects the solver’s output.

My contribiution

The main goal of my project is to enhance series of scripts, which modelled electromagnetic properties of the variety range of materials. Initial series of scripts have been prepared, however, their technical improvement and coupling with main software gprMax is required.


  • Stand alone scripts to modelling electromagnetic properties of different media using relaxation functions like Havriliak-Negami, Johnsher, CRIM methods and fitting to raw data by hybrid linear-nonlinear optimization in form of sub-package DebyeFit.
  • Coupling stand alone scripts with existing gprMax software.
  • User-friendly interface to use provided functions.
  • Proper documentation and tests for provided components (tutorials for users) in form of jupyter notebooks.

Technologies used: Python


Main works: Modelling Arbitrary Complex Dielectric Properties - an automated implementation for gprMax (2021)

Github code: DebyeFit sub-package

Medium posts:

Learn more about the project

Project’s website: GSoC 2021