RadialCollectorWell#

class timflow.steady.linesink.RadialCollectorWell(model, x=0, y=0, narms=5, nls=10, L=10.0, angle=0, rcaisson=1.0, rw=0.1, Qw=100.0, res=0.0, layers=0, label=None)#

Bases: CollectorWell

Radial collector well.

Collection of (discontinuous) line sinks in a radial pattern with specified total discharge and unknown but uniform head.

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

  • x (float) – x-coordinate of the center of the collector well

  • y (float) – y-coordinate of the center of the collector well

  • L (float) – length of each arm

  • narms (int) – number of arms

  • rcaisson (float) – radius of the caisson

  • rw (float) – radius of the arms

  • nls (int) – number of line sinks per arm

  • Qw (float) – total discharge of the collector well

  • res (float) – resistance of the arms

  • layers (int, array or list) – layer(s) in which the well is screened

  • label (string, optional) – label of the collector well

Examples

Create a radial collector well with 5 arms:

ml = timflow.steady.Model3D(kaq=10, z=np.arange(20, -1, -2), kzoverkh=0.1)
w = timflow.steady.RadialCollectorWell(ml, x=0, y=0, narms=5, nls=10, angle=0,
                                       rcaisson=2.0, rw=0.1, Qw=1000, layers=5)
ml.solve()
compute_xy(x, y, rcaisson, narms, nls, L, angle, layer_arms)#

Compute the x,y-coordinates array for the radial collector well.

Parameters:
  • x (float) – x-coordinate of the center of the collector well

  • y (float) – y-coordinate of the center of the collector well

  • narms (int) – number of arms

  • nls (int or array) – number of line sinks per arm

  • L (float or array) – length of each arm

  • angle (float or array) – angle of first arm or of each arm

  • rcaisson (float) – radius of the caisson

Returns:

xy – array of shape (N, 4) with start and end coordinates of the line sinks on each row: [(x1, y1, x2, y2), …]

Return type:

np.array

discharge_per_arm()#

Discharge of each arm.

Returns:

Total discharge of each arm

Return type:

array (length number of arms)

potinf(x, y, aq=None)#

Compute unit potential influence of element.

Returns:

linesink 0, order 0, layer[0]

order 0, layer[1] … order 1, layer[0] order 1, layer[1] …

linesink 1, order 0, layer[0]

order 0, layer[1] … order 1, layer[0] order 1, layer[1] …

Return type:

array

disvecinf(x, y, aq=None)#

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

discharge_per_linesink()#

Discharge of the linesinks in each layer.

Returns:

rv – array of shape (nlay, nlinesinks)

Return type:

np.array

discharge()#

Discharge of the element in each layer.

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.