ModelMaq#
- class timflow.transient.model.ModelMaq(kaq=[1], z=[1, 0], c=[], Saq=[0.001], Sll=[0], leffaq=0, poraq=[0.3], porll=[0.3], topboundary='conf', phreatictop=None, tmin=1, tmax=10, tstart=0, M=10, steady=None)#
Bases:
ModelCreate model specifying a multi-aquifer sequence of aquifer-leakylayer-etc.
- Parameters:
kaq (float, array or list) – hydraulic conductivity of each aquifer from the top down if float, hydraulic conductivity is the same in all aquifers
z (array or list) – elevation tops and bottoms of the aquifers from the top down leaky layers may have zero thickness if top=’conf’: length is 2 * number of aquifers if top=’semi’: length is 2 * number of aquifers + 1 as top of leaky layer on top of systems needs to be specified
c (float, array or list) – resistance of leaky layers from the top down if float, resistance is the same for all leaky layers if top=’conf’: length is number of aquifers - 1 if top=’semi’: length is number of aquifers
Saq (float, array or list) – specific storage of all aquifers if float, sepcific storage is same in all aquifers if phreatictop is True and topboundary is ‘conf’, Saq of top aquifer is phreatic storage coefficient (and not multiplied with the layer thickness)
Sll (float, array or list) – specific storage of all leaky layers if float, sepcific storage is same in all leaky layers if phreatictop is True and topboundary is ‘semi’, Sll of top leaky layer is phreatic storage coefficient (and not multiplied with the layer thickness)
leffaq (float, array or list) – loading efficiency of the aquifer only used when topboundary=’semi’ and hstar varies with time
topboundary (string, 'confined', 'phreatic', 'semi', or 'leaky' (default is 'conf')) – indicating whether the top is confined (‘con’ is enough), phreatic (‘phr’ is enough), semi-confined (‘sem’ is enough), or a leaky layer (‘lea’ is enough). When phreatic, the storage coefficient (Saq) of the top model layer is treated as phreatic storage (and not multiplied with the aquifer thickness)
tmin (scalar) – the minimum time for which heads can be computed after any change in boundary condition.
tmax (scalar) – the maximum time for which heads can be computed
tstart (scalar) – time at start of simulation (default 0)
M (integer) – the number of terms to be used in the numerical inversion algorithm. 10 is usually sufficient. If drawdown curves appear to oscillate, more terms may be needed, but this seldom happens.
steady (optional instance of a solved timflow.steady model) – a timflow.steady model may be included to add steady-state flow
- compute_laplace_parameters()#
Compute the parameters for the Laplace transform inversion.
- nint#
- Type:
Number of time intervals
- npint#
- Type:
Number of p values per interval
- npval#
- Type:
Total number of p values (nint * npint)
- p[npval]#
- Type:
Array with p values
- potential(x, y, t, layers=None, aq=None, derivative=0, returnphi=0)#
Returns pot[naq, ntimes] if layers=None, otherwise pot[len(layers), ntimes].
t must be ordered.
- potentialone(x, y, time, layers=None, aq=None, derivative=0, returnphi=0)#
Returns pot[naq] if layers=None, otherwise pot[len(layers)].
time is one value.
- disvec(x, y, t, layers=None, aq=None, derivative=0)#
Compute discharge vectgor.
Returns qx[naq, ntimes], qy[naq, ntimes] if layers=None, otherwise qx[len(layers,Ntimes)],qy[len(layers, ntimes)].
t must be ordered.
- head(x, y, t, layers=None, aq=None, derivative=0, neglect_steady=False)#
Head at x, y, t where t can be multiple times.
- Parameters:
x (float)
y (float)
t (list or array) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned if None: all layers are returned
- Returns:
h
- Return type:
array size nlayers, ntimes
- velocity_array(x, y, z, t, show_progress=True, parallel=False)#
Compute velocity for an array of points.
- Parameters:
x (1d-array) – x values
y (1d-array) – y values
z (1d-array) – z values
t (float) – time at which velocity computed
show_progress (bool, optional) – if True, shows progress bar when computing velocity grid, by default True
parallel (bool or int, optional) – if True, computes velocity grid in parallel using multiprocessing, by default False. If an integer is provided, it specifies the number of processes to use.
- Returns:
velocity – velocity vector (vx, vy, vz) at each point in grid, size (3, len(x))
- Return type:
array
- velocity_grid(xg, yg, zg, t, show_progress=True, parallel=False)#
Compute velocity grid.
- Parameters:
xg (1d-array) – x values of grid
yg (1d-array) – y values of grid
zg (1d-array) – z values of grid
t (float) – time for which grid is returned
show_progress (bool, optional) – if True, shows progress bar when computing velocity grid, by default True
parallel (bool or int, optional) – if True, computes velocity grid in parallel using multiprocessing, by default False. If an integer is provided, it specifies the number of processes to use.
- Returns:
velocity – velocity vector (vx, vy, vz) at each point in grid, size (3, len(z), len(y), len(x))
- Return type:
array
- headalongline(x, y, t, layers=None)#
Head along line or curve.
- Parameters:
x (1D array or list) – x values of line
y (1D array or list) – y values of line
t (float or 1D array or list) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
- Returns:
h
- Return type:
array size nlayers, ntimes, nx
- disvecalongline(x, y, t, layers=None)#
Discharge vector along line or curve.
- Parameters:
x (1D array or list) – x values of line
y (1D array or list) – y values of line
t (float or 1D array or list) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
- Returns:
q
- Return type:
array size nlayers, ntimes, nx
- head_array(x, y, t, layers=None, show_progress=False, parallel=False)#
Head for array of points.
- Parameters:
x (1D array or list) – x values of points
y (1D array or list) – y values of points
t (float or 1D array or list) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
show_progress (bool) – show computation progress, by printing dots per row or with tqdm progressbar when parallel is True. Default is False.
parallel (bool or int, optional) – if True, computes head_array in parallel using multiprocessing, by default False. If an integer is provided, it specifies the number of processes to use.
- Returns:
h
- Return type:
array size nlayers, ntimes, npoints
- headgrid(xg, yg, t, layers=None, printrow=False, show_progress=False, parallel=False)#
Grid of heads.
- Parameters:
xg (array) – x values of grid
yg (array) – y values of grid
t (list or array) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
show_progress (bool) – show computation progress, by printing dots per row or with tqdm progressbar when parallel is True. Default is False.
parallel (bool or int, optional) – if True, computes headgrid in parallel using multithreading, by default False. If an integer is provided, it specifies the number of processes to use.
printrow (bool, optional) –
Deprecated since version 0.2.0: prints dot to screen for each row of grid if set to True
- Returns:
h
- Return type:
array size nlayers, ntimes, ny, nx
See also
headgrid2()
- headgrid2(x1, x2, nx, y1, y2, ny, t, layers=None, show_progress=False, printrow=False, parallel=False)#
Grid of heads.
- Parameters:
xg (array) – x values are generated as linspace(x1, x2, nx)
yg (array) – y values are generated as linspace(y1, y2, ny)
t (list or array) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
show_progress (bool) – show computation progress, by printing dots per row or with tqdm progressbar when parallel is True. Default is False.
parallel (bool or int, optional) – if True, computes headgrid in parallel using multiprocessing, by default False. If an integer is provided, it specifies the number of processes to use.
printrow (boolean, optional) –
Deprecated since version 0.2.0: prints dot to screen for each row of grid if set to True
- Returns:
h
- Return type:
array size nlayers, ntimes, ny, nx
See also
headgrid()
- disvecgrid(x, y, t, layers=None, show_progress=True, parallel=False)#
Compute grid of discharge vectors.
- Parameters:
x (array) – x values of grid
y (array) – y values of grid
t (list or array) – times for which grid is returned
layers (integer, list or array, optional) – layers for which grid is returned
show_progress (bool) – show computation progress, by printing dots per row or with tqdm progressbar when parallel is True. Default is True.
parallel (bool, optional) – if True, computes discharge vector grid in parallel using multiprocessing, by default False
- Returns:
qx (array size (nlayers, ntimes, ny, nx)) – x component of discharge vector at each point in grid
qy (array size (nlayers, ntimes, ny, nx)) – y component of discharge vector at each point in grid
- inverseLapTran(pot, t)#
Returns array of potentials of len(t) t must be ordered and tmin<=t<=tmax.
- solve(printmat=0, sendback=0, silent=False)#
Compute solution.
- aquifer_summary()#
Return DataFrame with summary of aquifer(s) parameters in model.
- Returns:
dataframe with summary of aquifer(s) parameters
- Return type:
pandas.DataFrame