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
  • easting (float) – Shifted easting coordinate of the vertex of the prism. Must be in meters.

  • northing (float) – Shifted northing coordinate of the vertex of the prism. Must be in meters.

  • upward (float) – Shifted upward coordinate of the vertex of the prism. Must be in meters.

  • radius (float) – Square root of the sum of the squares of the easting, northing and upward shifted coordinates.

Returns

kernel (float) – 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 \, \text{ln2} (z + r) + y z \, \text{ln2} (x + r) + z x \, \text{ln2} (y + r) \\ & - \frac{x^2}{2} \text{arctan2} \left( \frac{yz}{xr} \right) - \frac{y^2}{2} \text{arctan2} \left( \frac{zx}{yr} \right) - \frac{z^2}{2} \text{arctan2} \left( \frac{xy}{zr} \right)\end{split}\]

where

\[\begin{split}\text{ln2}(x) = \begin{cases} 0 & |x| < 10^{-10} \\ \ln (x) \end{cases}\end{split}\]

and

\[\begin{split}\text{arctan2} \left( \frac{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