empymod.scripts.tmtemod.dipole(src, rec, depth, res, freqtime, aniso=None, eperm=None, mperm=None, verb=2)[source]

Return the electromagnetic field due to a dipole source.

This is a modified version of empymod.model.dipole. It returns the separated contributions of TM–, TM-+, TM+-, TM++, TMdirect, TE–, TE-+, TE+-, TE++, and TEdirect.

src, reclist of floats or arrays

Source and receiver coordinates (m): [x, y, z]. The x- and y-coordinates can be arrays, z is a single value. The x- and y-coordinates must have the same dimension.

Sources or receivers placed on a layer interface are considered in the upper layer.

Sources and receivers must be in the same layer.


Absolute layer interfaces z (m); #depth = #res - 1 (excluding +/- infinity).


Horizontal resistivities rho_h (Ohm.m); #res = #depth + 1.


Frequency f (Hz). (The name freqtime is kept for consistency with empymod.model.dipole. Only one frequency at once.

anisoarray_like, optional

Anisotropies lambda = sqrt(rho_v/rho_h) (-); #aniso = #res. Defaults to ones.

epermarray_like, optional

Relative electric permittivities epsilon (-); #eperm = #res. Default is ones.

mpermarray_like, optional

Relative magnetic permeabilities mu (-); #mperm = #res. Default is ones.

verb{0, 1, 2, 3, 4}, optional

Level of verbosity, default is 2:

  • 0: Print nothing.

  • 1: Print warnings.

  • 2: Print additional runtime and kernel calls

  • 3: Print additional start/stop, condensed parameter information.

  • 4: Print additional full parameter information

TM, TElist of ndarrays, (nfreq, nrec, nsrc)

Frequency-domain EM field [V/m], separated into TM = [TM–, TM-+, TM+-, TM++, TMdirect] and TE = [TE–, TE-+, TE+-, TE++, TEdirect].

However, source and receiver are normalised. So the source strength is 1 A and its length is 1 m. Therefore the electric field could also be written as [V/(A.m2)].

The shape of EM is (nfreq, nrec, nsrc). However, single dimensions are removed.