timflow.transient.well.HeadWell#

class timflow.transient.well.HeadWell(model, xw=0, yw=0, rw=0.1, tsandh=[(0, 1)], res=0, layers=0, label=None)#

Bases: WellBase, timflow.transient.equation.HeadEquation

Create a well with a specified head inside the well.

The well may be screened in multiple layers. The resistance of the screen may be specified. The head is computed such that the discharge \(Q_i\) in layer \(i\) is computed as

\[Q_i = 2\pi r_wH_i(h_i - h_w)/c\]

where \(c\) is the resistance of the well screen and \(h_w\) is the head inside the well.

Parameters:
  • model (Model object) – model to which the element is added

  • xw (float) – x-coordinate of the well

  • yw (float) – y-coordinate of the well

  • rw (float) – radius of the well

  • tsandh (list of tuples) – tuples of starting time and discharge after starting time

  • res (float) – resistance of the well screen

  • layers (int, array or list) – layer (int) or layers (list or array) where well is screened

  • label (string (default: None)) – label of the well

Methods#

initialize()

Initialize the element.

setflowcoef()

Separate function so that this can be overloaded for other types.

potinf(x, y[, aq])

Can be called with only one x,y value.

potinfone(x, y, jtime[, aq])

Can be called with only one x,y value for time interval jtime.

disvecinf(x, y[, aq])

Can be called with only one x,y value.

headinside(t[, derivative])

Returns head inside the well for the layers that the well is screened in.

plot([ax, layer])

Plot the element.

potential(x, y[, aq])

Returns complex array of size (ngvbc, naq, npval).

unitpotential(x, y[, aq])

Returns complex array of size (naq, npval).

unitpotentialone(x, y, jtime[, aq])

Returns complex array of size (naq, npval).

disvec(x, y[, aq])

Returns 2 complex arrays of size (ngvbc, naq, npval).

unitdisvec(x, y[, aq])

Returns 2 complex arrays of size (naq, npval).

potinflayers(x, y[, layers, aq])

Layers can be scalar, list, or array.

potentiallayers(x, y[, layers, aq])

Returns complex array of size (ngvbc, len(layers),npval).

unitpotentiallayers(x, y[, layers, aq])

Returns complex array of size (len(layers), npval).

disvecinflayers(x, y[, layers, aq])

Layers can be scalar, list, or array.

disveclayers(x, y[, layers, aq])

Returns 2 complex array of size (ngvbc, len(layers), npval).

unitdisveclayers(x, y[, layers, aq])

Returns complex array of size (len(layers), npval).

discharge(t[, derivative])

The discharge in each layer.

dischargeold(t[, derivative])

The discharge in each layer.

run_after_solve()

Function to run after a solution is completed.

equation()

Matrix rows for head-specified conditions.