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:
CollectorWellRadial 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.