hankel_qwe#
- empymod.transform.hankel_qwe(zsrc, zrec, lsrc, lrec, off, ang_fact, depth, ab, etaH, etaV, zetaH, zetaV, xdirect, htarg, msrc, mrec)[source]#
Hankel Transform using Quadrature-With-Extrapolation.
Quadrature-With-Extrapolation was introduced to geophysics by [Key12]. It is one of many so-called ISE methods to solve Hankel Transforms, where ISE stands for Integration, Summation, and Extrapolation.
Following [Key12], but without going into the mathematical details here, the QWE method rewrites the Hankel transform of the form
(1)#\[F(r) = \int^\infty_0 f(\lambda)J_v(\lambda r)\ \mathrm{d}\lambda\]as a quadrature sum which form is similar to the DLF (equation 15),
(2)#\[F_i \approx \sum^m_{j=1} f(x_j/r)w_j g(x_j) = \sum^m_{j=1} f(x_j/r)\hat{g}(x_j) \ ,\]but with various bells and whistles applied (using the so-called Shanks transformation in the form of a routine called \(\epsilon\)-algorithm ([Shan55], [Wynn56]; implemented with algorithms from [Tref00] and [Weni89]).
This function is based on get_CSEM1D_FD_QWE.m, qwe.m, and getBesselWeights.m from the source code distributed with [Key12].
In the spline-version,
hankel_qwe
checks how steep the decay of the wavenumber-domain result is, and calls QUAD for the very steep interval, for which QWE is not suited.The function is called from one of the modelling routines in
empymod.model
. Consult these modelling routines for a description of the input and output parameters.- Returns:
- fEMarray
Returns frequency-domain EM response.
- kcountint
Kernel count.
- convbool
If true, QWE/QUAD converged. If not, htarg might have to be adjusted.