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 (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])
potinf(x, y, aq=None)#

Returns array of size (nparam, naq).

disvecinf(x, y, aq=None)#

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

headinside()#

The head inside the well.

Returns:

Head inside the well for each screen

Return type:

array (length number of screens)

discharge()#

The discharge in each layer.

Returns:

Discharge in each screen with zeros for layers that are not screened

Return type:

array (length number of layers)

capturezone(nt=10, zstart=None, hstepmax=10, vstepfrac=0.2, tmax=None, nstepmax=100, silent='.')#

Compute a capture zone.

Parameters:
  • nt (int) – number of path lines

  • zstart (scalar or None) – starting elevation of the path lines, middle of aquifer if None

  • hstepmax (scalar) – maximum step in horizontal space

  • vstepfrac (float) – maximum fraction of aquifer layer thickness during one step

  • tmax (scalar) – maximum time

  • nstepmax (scalar(int)) – maximum number of steps

  • silent (boolean or string) – True (no messages), False (all messages), or ‘.’ (print dot for each path line)

Returns:

Full per-pathline result dicts from traceline().

Return type:

list of dict

capzone(nt=10, zstart=None, hstepmax=10, vstepfrac=0.2, tmax=None, nstepmax=100, silent='.', *, metadata=False)#

Compute a capture zone.

Deprecated since version Use: capturezone() instead. This method will be removed in a future version.

Parameters:
  • nt (int) – number of path lines

  • zstart (scalar or None) – starting elevation of the path lines, middle of aquifer if None

  • hstepmax (scalar) – maximum step in horizontal space

  • vstepfrac (float) – maximum fraction of aquifer layer thickness during one step

  • tmax (scalar) – maximum time

  • nstepmax (scalar(int)) – maximum number of steps

  • silent (boolean or string) – True (no messages), False (all messages), or ‘.’ (print dot for each path line)

  • metadata (bool, default False) – If True, return full per-pathline result dicts from traceline(). If False, return only the trace arrays.

Returns:

xyzt – With metadata=False (default), each item is only the (x, y, z, t) trace array. With metadata=True, each item is a result dict from traceline().

Return type:

list of dict or list of ndarray

potinflayers(x, y, layers, aq=None)#

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

Only used in building equations.

potentiallayers(x, y, layers, aq=None)#

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

disvec(x, y, aq=None)#

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

disvecinflayers(x, y, layers, aq=None)#

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

Only used in building equations.

disveclayers(x, y, layers, aq=None)#

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