pastas.rfunc.HantushWellModel#

class pastas.rfunc.HantushWellModel(cutoff: float = 0.999, use_block: bool = True, quad: bool = False, approximate_tmax: bool = True, log_b: bool = True, **kwargs)#

An implementation of the Hantush well function for multiple pumping wells.

Parameters:
  • cutoff (float, optional) – Fraction of the step response after which the response is truncated. Default is 0.999.

  • use_block (bool, optional) – Use the block response (rather than the impulse response) to simulate the effect of a stress. The block response approximates the stress as uniform during a time interval dt. When False, the impulse response is used which means that the the entire stress occurs midway the time interval dt. The impulse response is generally quicker to compute.

  • quad (bool, optional) – Use quad_step to compute the step response using numerical integration. Default is False.

  • approximate_tmax (bool, optional) – If True, get_tmax will use the fast Lambert W approximation (default). If False, it will use the exact numerical root finding method.

  • log_b (bool, optional) – Whether to use log10 scaling for parameter b, Default is True. In this Hantush implementation parameter b is multiplied by distances squared meaning values of b can get very small under certain conditions. Log scaling can help with optimization when the value of b is very small and the range of b spans several orders of magnitude.

up#

Whether a positive stress causes the head to go up (True) or down (False).

Type:

bool, optional

gain_scale_factor#

Scale factor used to set the initial value and bounds of the gain parameter, computed as 1 / gain_scale_factor.

Type:

float, optional

Notes

where r is the distance from the pumping well to the observation point and must be specified. A, a, and b are parameters, which are slightly different from the Hantush response function. The gain is defined as:

\(\\text{gain} = A K_0 \\left( 2r \\sqrt(b) \\right)\)

The implementation used here is explained in Veling and Maas [2010].

property nparam: int#

Return number of parameters for the response function.

Returns:

Number of parameters (3 for HantushWellModel: A, a, b).

Return type:

int

Methods#

set_distances(→ None)

Set the distances from the pumping well(s) to the observation well.

get_init_parameters(→ pandas.DataFrame)

Get initial parameters and bounds for the HantushWellModel response function.

get_tmax(→ float)

Get response time for a certain cutoff for HantushWellModel.

gain(→ float)

Return the gain of the HantushWellModel response function.

step(→ pastas.typing.ArrayLike)

Return the step function for HantushWellModel response.

block_from_impulse(→ pastas.typing.ArrayLike)

Compute block response from impulse response.

moment(→ float)

Calculate the moment of a certain order for the HantushWellModel response function.

impulse(→ pastas.typing.ArrayLike)

Return the impulse response function for HantushWellModel.

variance_gain(→ float | pastas.typing.ArrayLike)

Calculate variance of the gain from parameters A and b.

to_dict(→ dict[str, Any])

Export the HantushWellModel response function object as a dictionary.