choclo.prism.kernel_u

Contents

choclo.prism.kernel_u#

choclo.prism.kernel_u(easting, northing, upward, radius)[source]#

Kernel for upward component of the gradient due to a rectangular prism

Evaluates the integration kernel for the upward component of the gradient of the potential field generated by a prism [Nagy2000] on a single vertex of the prism. The coordinates that must be passed are shifted coordinates: the coordinates of the vertex from a Cartesian coordinate system whose origin is located in the observation point.

This function makes use of a safe natural logarithmic function and a safe arctangent function [Fukushima2020] that guarantee a good accuracy on every observation point.

Parameters:
eastingfloat

Shifted easting coordinate of the vertex of the prism. Must be in meters.

northingfloat

Shifted northing coordinate of the vertex of the prism. Must be in meters.

upwardfloat

Shifted upward coordinate of the vertex of the prism. Must be in meters.

radiusfloat

Square root of the sum of the squares of the easting, northing and upward shifted coordinates.

Returns:
kernelfloat

Value of the numerical kernel function for the upward component of the gradient of the potential field due to a rectangular prism evaluated on a single vertex.

Notes

Computes the following numerical kernel on the passed shifted coordinates:

\[k_z(x, y, z) = - \left[ x \, \operatorname{safe\_ln} (y, r) + y \, \operatorname{safe\_ln} (x, r) - z \, \operatorname{safe-arctan} \left( xy, zr \right) \right]\]

where

\[\begin{split}\operatorname{safe\_ln}(x, r) = \begin{cases} 0 & r = 0 \\ \ln(x + r) & x \ge 0 \\ \ln((y^2 + z^2) / (r - x)) & x < 0, r \ne |x| \\ -\ln(-2 x) & x < 0, r = |x| \end{cases}\end{split}\]

and

\[\begin{split}\operatorname{safe-arctan} \left( y, x \right) = \begin{cases} \text{arctan}\left( \frac{y}{x} \right) & x \ne 0 \\ \frac{\pi}{2} & x = 0 \quad \text{and} \quad y > 0 \\ -\frac{\pi}{2} & x = 0 \quad \text{and} \quad y < 0 \\ 0 & x = 0 \quad \text{and} \quad y = 0 \\ \end{cases}\end{split}\]

Important

In the first equation a minus sign has been added to the one obtained by [Nagy2000] in order to compute the numerical kernel for the upward component instead for the downward one.

References