EM-modelling routines. The implemented routines might not be the fastest solution to your specific problem. Use these routines as template to create your own, problem-specific modelling routine!

Principal routines:

The main routine is bipole, which can model bipole source(s) and bipole receiver(s) of arbitrary direction, for electric or magnetic sources and receivers, both in frequency and in time. A subset of bipole is dipole, which models infinitesimal small dipoles along the principal axes x, y, and z. The third routine, loop, can be used if the source or the receivers are loops instead of dipoles.

Further routines are:

  • analytical: Calculate analytical fullspace and halfspace solutions.

  • dipole_k: Calculate the electromagnetic wavenumber-domain solution.

  • gpr: Calculate the Ground-Penetrating Radar (GPR) response.

The dipole_k routine can be used if you are interested in the wavenumber-domain result, without Hankel nor Fourier transform. It calls straight the empymod.kernel. The gpr-routine convolves the frequency-domain result with a wavelet, and applies a gain to the time-domain result. This function is still experimental.

The modelling routines make use of the following two core routines:

  • fem: Calculate wavenumber-domain electromagnetic field and carry out the Hankel transform to the frequency domain.

  • tem: Carry out the Fourier transform to time domain after fem.


bipole(src, rec, depth, res, freqtime[, ...])

Return EM fields due to arbitrary rotated, finite length EM dipoles.

dipole(src, rec, depth, res, freqtime[, ...])

Return EM fields due to infinitesimal small EM dipoles.

loop(src, rec, depth, res, freqtime[, ...])

Return EM fields due to a magnetic source loop.

analytical(src, rec, res, freqtime[, ...])

Return analytical full- or half-space solution.

gpr(src, rec, depth, res, freqtime, cf[, ...])

Return Ground-Penetrating Radar signal.

dipole_k(src, rec, depth, res, freq, wavenumber)

Return electromagnetic wavenumber-domain field.

fem(ab, off, angle, zsrc, zrec, lsrc, lrec, ...)

Return electromagnetic frequency-domain response.

tem(fEM, off, freq, time, signal, ft, ftarg)

Return time-domain response of the frequency-domain response fEM.