choclo.prism.kernel_pot

Contents

choclo.prism.kernel_pot#

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

Kernel for the potential field due to a rectangular prism

Evaluates the integration kernel for 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 potential field due to a rectangular prism evaluated on a single vertex.

Notes

Computes the following numerical kernel on the passed shifted coordinates:

\[\begin{split}k_V(x, y, z) &= x y \, \operatorname{safe\_ln} (z, r) + y z \, \operatorname{safe\_ln} (x, r) + z x \, \operatorname{safe\_ln} (y, r) \\ & - \frac{x^2}{2} \operatorname{safe-arctan} \left( yz, xr \right) - \frac{y^2}{2} \operatorname{safe-arctan} \left( zx, yr \right) - \frac{z^2}{2} \operatorname{safe-arctan} \left( xy, zr \right)\end{split}\]

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}\]

References