HantushWellModel

class HantushWellModel(up=False, meanstress=1, cutoff=0.999, distances=1.0)[source]

A special implementation of the Hantush well function for multiple wells.

Parameters
  • up (bool, optional) – indicates whether a positive stress will cause the head to go up (True, default) or down (False)

  • meanstress (float) – mean value of the stress, used to set the initial value such that the final step times the mean stress equals 1

  • cutoff (float) – proportion after which the step function is cut off. Default is 0.999.

Notes

The Hantush well function is explained in [hantush_1955], [veling_2010] and [asmuth_2008]. The impulse response function may be written as:

\[\theta(t) = \frac{A}{t} K_0 \left( \frac{r^2}{4 \lambda^2} \right) \exp(-t/a - ab/t)\]
\[p[0] = A = \frac{1}{4 \pi T}\]
\[p[1] = a = cS\]
\[p[2] = b = 1^2 / (4 \lambda^2)\]
\[p[3] = r \, \text{(not optimized)}\]

where \(\lambda = \sqrt{Tc}\)

The parameter r (distance from the well to the observation point) is passed as a known value, and is used to scale the response function. The optimized parameters are slightly different from the original Hantush implementation:

  • A: in the original Hantush parameter A is the gain. Now the gain is equal to \(\text{gain} = A K_0 ( \sqrt(4 r^2 b) )\)

  • a: is the same \(a = cS\)

  • b: is the same, but \(r\) is set to 1 if passed separately, \(b = 1^2 / (4 \lambda^2)\)

Methods

__init__

Initialize self.

block

Method to return the block function.

gain

get_init_parameters

Get initial parameters and bounds.

get_t

Internal method to determine the times at which to evaluate the step-response, from t=0

get_tmax

Method to get the response time for a certain cutoff

step

Method to return the step function.

variance_gain

Calculate variance of the gain from parameters A and b.