timflow.steady.well.Well#

class timflow.steady.well.Well(model, xw=0, yw=0, Qw=100.0, rw=0.1, res=0.0, layers=0, label=None, xc=None, yc=None)#

Bases: WellBase

Well Class to create a well with a specified discharge.

Notes

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_w(h_i - h_w)/c\]

where \(c\) is the resistance of the well screen and \(h_w\) is the head inside the well. The total discharge is distributed over the screens such that \(h_w\) is the same in each screened layer.

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

  • Qw (float) – total discharge of the well

  • rw (float) – radius of the well

  • 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 or None (default: None)) – label of the well

  • xc (float) – x-location of control point (default None, which puts it at xw)

  • yc (float) – y-location of control point (default None, which puts it at yw + rw)

Examples

Create a well in multiple layers:

ml = Model3D(kaq=10, z=np.arange(20, -1, -2), kzoverkh=0.1)
Well(ml, 100, 200, 1000, layers=[0, 1, 2, 3])

Methods#

potinf(x, y[, aq])

Returns array of size (nparam, naq).

disvecinf(x, y[, aq])

Returns array of size (2, nparam, naq).

headinside()

The head inside the well.

discharge()

The discharge in each layer.

capzone([nt, zstart, hstepmax, vstepfrac, tmax, ...])

Compute a capture zone.

plotcapzone([nt, zstart, hstepmax, vstepfrac, tmax, ...])

Plot a capture zone.

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

Returns array of size (len(layers),nparam).

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

Returns array of size len(layers) only used in building equations.

disvec(x, y[, aq])

Returns array of size (2, nparam, naq).

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

Returns two arrays of size (len(layers),nparam).

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

Returns two arrays of size len(layers) only used in building equations.