analytical¶
- empymod.model.analytical(src, rec, res, freqtime, solution='fs', signal=None, ab=11, aniso=None, epermH=None, epermV=None, mpermH=None, mpermV=None, **kwargs)[source]¶
Return analytical full- or half-space solution.
Calculate the electromagnetic frequency- or time-domain field due to infinitesimal small electric or magnetic dipole source(s), measured by infinitesimal small electric or magnetic dipole receiver(s); sources and receivers are directed along the principal directions x, y, or z, and all sources are at the same depth, as well as all receivers are at the same depth.
In the case of a halfspace the air-interface is located at z = 0 m.
You can call the functions
empymod.kernel.fullspace
andempymod.kernel.halfspace
inempymod.kernel
directly. This interface is just to provide a consistent interface with the same input parameters as for instance fordipole
.This function yields the same result if solution=’fs’ as
dipole
, if the model is a fullspace.Included are:
Full fullspace solution (solution=’fs’) for ee-, me-, em-, mm-fields, only frequency domain, [HuTS15].
Diffusive fullspace solution (solution=’dfs’) for ee-fields, [SlHM10].
Diffusive halfspace solution (solution=’dhs’) for ee-fields, [SlHM10].
Diffusive direct- and reflected field and airwave (solution=’dsplit’) for ee-fields, [SlHM10].
Diffusive direct- and reflected field and airwave (solution=’dtetm’) for ee-fields, split into TE and TM mode [SlHM10].
- Parameters
- src, reclist of floats or arrays
Source and receiver coordinates [x, y, z] (m):
The x- and y-coordinates can be arrays, z is a single value.
The x- and y-coordinates must have the same dimension.
- resfloat
Horizontal resistivity rho_h (Ohm.m).
Alternatively, res can be a dictionary. See the main manual of empymod too see how to exploit this hook to re-calculate etaH, etaV, zetaH, and zetaV, which can be used to, for instance, use the Cole-Cole model for IP.
- freqtimearray_like
Frequencies f (Hz) if signal==None, else times t (s); (f, t > 0).
- solutionstr, optional
Defines which solution is returned:
‘fs’ : Full fullspace solution (ee-, me-, em-, mm-fields); f-domain.
‘dfs’ : Diffusive fullspace solution (ee-fields only).
‘dhs’ : Diffusive halfspace solution (ee-fields only).
‘dsplit’ : Diffusive direct- and reflected field and airwave (ee-fields only).
‘dtetm’ : as dsplit, but direct fielt TE, TM; reflected field TE, TM, and airwave (ee-fields only).
- signal{None, 0, 1, -1}, optional
Source signal, default is None:
None: Frequency-domain response
-1 : Switch-off time-domain response
0 : Impulse time-domain response
+1 : Switch-on time-domain response
- abint, optional
Source-receiver configuration, defaults to 11.
electric source
magnetic source
x
y
z
x
y
z
electric
receiver
x
11
12
13
14
15
16
y
21
22
23
24
25
26
z
31
32
33
34
35
36
magnetic
receiver
x
41
42
43
44
45
46
y
51
52
53
54
55
56
z
61
62
63
64
65
66
- anisofloat, optional
Anisotropy lambda = sqrt(rho_v/rho_h) (-); defaults to one.
- epermH, epermVfloat, optional
Relative horizontal/vertical electric permittivity epsilon_h/epsilon_v (-). If epermH is provided but not epermV, isotropic behaviour is assumed. Default is one; ignored for the diffusive solution.
- mpermH, mpermVfloat, optional
Relative horizontal/vertical magnetic permeability mu_h/mu_v (-); #mpermH = #mpermV = #res. If mpermH is provided but not mpermV, isotropic behaviour is assumed. Default is one; ignored for the diffusive solution.
- verb{0, 1, 2, 3, 4}, optional
Level of verbosity, default is 2:
0: Print nothing.
1: Print warnings.
2: Print additional runtime
3: Print additional start/stop, condensed parameter information.
4: Print additional full parameter information
- Returns
- EMEMArray, (nfreqtime, nrec, nsrc)
Frequency- or time-domain EM field (depending on signal):
If rec is electric, returns E [V/m].
If rec is magnetic, returns H [A/m].
EMArray is a subclassed ndarray with .pha and .amp attributes (only relevant for frequency-domain data).
The shape of EM is (nfreqtime, nrec, nsrc). However, single dimensions are removed.
If solution=’dsplit’, three ndarrays are returned: direct, reflect, air.
If solution=’dtetm’, five ndarrays are returned: direct_TE, direct_TM, reflect_TE, reflect_TM, air.
Examples
In [1]: import empymod ...: import numpy as np ...: src = [0, 0, 0] ...: rec = [np.arange(1, 11)*500, np.zeros(10), 200] ...: res = 50 ...: EMfield = empymod.analytical(src, rec, res, freqtime=1, verb=0) ...: EMfield[0] ...: Out[1]: (4.030914049602561e-08-9.691638183648923e-10j)