ttim.model#
Classes#
Create model specifying a multi-aquifer sequence of aquifer-leakylayer-etc. |
|
Create a multi-layer model object consisting of many aquifer layers. |
|
Model class for cross-section models. |
Module Contents#
- class ttim.model.TimModel(kaq=[1, 1], z=[3, 2, 1], Haq=[1, 1], Hll=[0], c=[1e+100, 100], Saq=[0.0001, 0.0001], Sll=[0], poraq=0.3, porll=0.3, ltype=['a', 'a'], topboundary='conf', phreatictop=False, tmin=1, tmax=10, tstart=0, M=10, kzoverkh=None, model3d=False, timmlmodel=None)[source]#
- elementlist = []#
- elementdict#
- vbclist = []#
- zbclist = []#
- gbclist = []#
- tmin = 1#
- tmax = 10#
- tstart = 0#
- M = 10#
- aq#
- name = 'TimModel'#
- modelname = 'ml'#
- timmlmodel = None#
- plots#
- plot#
- compute_laplace_parameters()[source]#
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)[source]#
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)[source]#
Returns pot[naq] if layers=None, otherwise pot[len(layers)].
time is one value.
- disvec(x, y, t, layers=None, aq=None, derivative=0)[source]#
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)[source]#
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
- headalongline(x, y, t, layers=None)[source]#
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)[source]#
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
- headgrid(xg, yg, t, layers=None, printrow=False)[source]#
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
printrow (boolean, optional) – 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, printrow=False)[source]#
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
printrow (boolean, optional) – 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()
- class ttim.model.ModelMaq(kaq=[1], z=[1, 0], c=[], Saq=[0.001], Sll=[0], poraq=[0.3], porll=[0.3], topboundary='conf', phreatictop=False, tmin=1, tmax=10, tstart=0, M=10, timmlmodel=None)[source]#
Bases:
TimModelCreate 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)
topboundary (string, 'conf' or 'semi' (default is 'conf')) – indicating whether the top is confined (‘conf’) or semi-confined (‘semi’)
phreatictop (boolean) – the storage coefficient 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.
timmlmodel (optional instance of a solved TimML model) – a timml model may be included to add steady-state flow
- name = 'ModelMaq'#
- class ttim.model.Model3D(kaq=1, z=[4, 3, 2, 1], Saq=0.001, kzoverkh=0.1, poraq=0.3, topboundary='conf', phreatictop=False, topres=0, topthick=0, topSll=0, toppor=0.3, tmin=1, tmax=10, tstart=0, M=10, timmlmodel=None)[source]#
Bases:
TimModelCreate a multi-layer model object consisting of many aquifer layers.
The resistance between the layers is computed from the vertical hydraulic conductivity of the layers.
- Parameters:
kaq (float, array or list) – hydraulic conductivity of each layer from the top down if float, hydraulic conductivity is the same in all aquifers
z (array or list) – elevation of top of system followed by bottoms of all layers from the top down bottom of layer is automatically equal to top of layer below it if topboundary=’conf’: length is number of layers + 1 if topboundary=’semi’: length is number of layers + 2 as top of leaky layer on top of systems needs to be specified
Saq (float, array or list) – specific storage of all aquifers layers if float, sepcific storage is same in all aquifers layers if phreatictop is True and topboundary is ‘conf’, Saq of top aquifer is phreatic storage coefficient (and not multiplied with the layer thickness)
kzoverkh (float) – vertical anisotropy ratio vertical k divided by horizontal k if float, value is the same for all layers length is number of layers
topboundary (string, 'conf' or 'semi' (default is 'conf')) – indicating whether the top is confined (‘conf’) or semi-confined (‘semi’). currently only implemented for ‘conf’
topres (float) – resistance of top semi-confining layer, only read if topboundary=’semi’
topthick (float) – thickness of top semi-confining layer, only read if topboundary=’semi’
phreatictop (boolean) – the storage coefficient of the top aquifer 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 (default 10)) – 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.
timmlmodel (optional instance of a solved TimML model) – a timml model may be included to add steady-state flow
- name = 'Model3D'#
- class ttim.model.ModelXsection(naq=1, tmin=1, tmax=10, tstart=0, M=10, timmlmodel=None)[source]#
Bases:
TimModelModel class for cross-section models.
- Parameters:
naq (integer) – number of aquifers
tmin (float) – the minimum time for which heads can be computed after any change in boundary condition.
tmax (float) – the maximum time for which heads can be computed.
tstart (float, optional) – time at start of simulation (default 0)
M (integer, optional) – the number of terms to be used in the numerical inversion algorithm. 10 is usually sufficient.
timmlmodel (timml.Model) – a timml model may be included to add a steady-state flow result to the computed solution.
- elementlist = []#
- elementdict#
- vbclist = []#
- zbclist = []#
- gbclist = []#
- tmin = 1#
- tmax = 10#
- tstart = 0#
- M = 10#
- aq#
- name = 'TimModel'#
- modelname = 'ml'#
- timmlmodel = None#
- plots#
- plot#