dipole_k#
- empymod.model.dipole_k(src, rec, depth, res, freq, wavenumber, ab=11, aniso=None, epermH=None, epermV=None, mpermH=None, mpermV=None, **kwargs)[source]#
Return electromagnetic wavenumber-domain field.
Calculate the electromagnetic wavenumber-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.
- Parameters:
- src, reclist of floats or arrays
Source and receiver coordinates [x, y, z] (m):
For N sources or receivers, the x- and y-coordinates must be of size N or 1 (in the latter case it will be expanded to N); z is always a single value.
The x- and y-coordinates only matter for the angle-dependent factor.
Sources or receivers placed on a layer interface are considered in the upper layer.
- depthlist
Absolute layer interfaces z (m); #depth = #res - 1 (excluding +/- infinity).
- resarray_like
Horizontal resistivities rho_h (Ohm.m); #res = #depth + 1.
- freqarray_like
Frequencies f (Hz), used to calculate etaH/V and zetaH/V.
- wavenumberarray
Wavenumbers lambda (1/m)
- abint, default: 11
Source-receiver configuration.
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
- anisoarray_like, default: ones
Anisotropies lambda = sqrt(rho_v/rho_h) (-); #aniso = #res.
- epermH, epermVarray_like, default: ones
Relative horizontal/vertical electric permittivities epsilon_h/epsilon_v (-); #epermH = #epermV = #res. If epermH is provided but not epermV, isotropic behaviour is assumed.
- mpermH, mpermVarray_like, default: ones
Relative horizontal/vertical magnetic permeabilities mu_h/mu_v (-); #mpermH = #mpermV = #res. If mpermH is provided but not mpermV, isotropic behaviour is assumed.
- verb{0, 1, 2, 3, 4}, default: 2
Level of verbosity:
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
- Returns:
- PJ0, PJ1array
Wavenumber-domain EM responses:
PJ0: Wavenumber-domain solution for the kernel with a Bessel function of the first kind of order zero.
PJ1: Wavenumber-domain solution for the kernel with a Bessel function of the first kind of order one.
See also
Examples
In [1]: import empymod ...: import numpy as np ...: src = [0, 0, 100] ...: rec = [5000, 0, 200] ...: depth = [0, 300, 1000, 1050] ...: res = [1e20, .3, 1, 50, 1] ...: freq = 1 ...: wavenr = np.logspace(-3.7, -3.6, 10) ...: PJ0, PJ1 = empymod.dipole_k( ...: src, rec, depth, res, freq, wavenr, verb=0) ...: PJ0[0] ...: Out[1]: np.complex128(-2.5768974970445326e-08-2.0489943182087426e-09j) In [2]: PJ1[0] Out[2]: np.complex128(1.9050482781619523e-10-6.842938067042929e-10j)