ttim.linesink1d#

Classes#

LineSink1DBase

LineSink1D Base Class.

DischargeLineSink1D

Linesink1D with a specified discharge for each layer the linesink is in.

LineSink1D

Linesink1D with a specified discharge.

HeadLineSink1D

1D head-specified linesink element.

HeadDiffLineSink1D

1D head-difference linesink element.

FluxDiffLineSink1D

1D flux-difference linesink element.

Module Contents#

class ttim.linesink1d.LineSink1DBase(model, xls=0, tsandbc=[(0, 1)], res=0, wh='H', layers=0, type='', name='LineSink1DBase', label=None, aq=None, inhomelement=False)[source]#

Bases: ttim.element.Element

LineSink1D Base Class.

All LineSink1D elements are derived from this class

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

  • xls (float) – x-coordinate of the line sink

  • tsandbc (list of tuples) – list of tuples of the form (time, bc) for boundary conditions

  • res (float) – resistance of the line sink

  • wh (string or float) – wetted perimeter of the linesink, “H” for aquifer height, “2H” for 2x aquifer height (two-sided flow) or specify any float value

  • layers (int, array or list) – layer (int) or layers (list or array) in which line sink is located

  • type (string) – type of element, “g” for given, “v” for variable and “z” for zero.

  • name (string) – name of the element

  • label (string, optional) – label of the element

  • aq (Aquifer object) – aquifer in which the element is located

  • inhomelement (boolean) – set to True if element is part of an inhomogeneity

tiny = 1e-08#
nparam#
xls#
res#
wh = 'H'#
aq = None#
__repr__()[source]#
initialize()[source]#

Initialize the element.

Initialization of terms that cannot be initialized before other elements or the aquifer is defined.

As we don’t want to require a certain order of entering elements, these terms are initialized when Model.solve is called The initialization class needs to be overloaded by all derived classes

setflowcoef()[source]#

Separate function so that this can be overloaded for other types.

potinf(x, y=0, aq=None)[source]#

Can be called with only one x value.

disvecinf(x, y=0, aq=None)[source]#

Can be called with only one x,y value.

abstractmethod changetrace(xyzt1, xyzt2, aq, layer, ltype, modellayer, direction, hstepmax)[source]#
plot(ax=None)[source]#

Plot the element.

class ttim.linesink1d.DischargeLineSink1D(model, xls=0, tsandq=[(0, 1)], res=0, wh='H', layers=0, label=None)[source]#

Bases: LineSink1DBase

Linesink1D with a specified discharge for each layer the linesink is in.

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

  • x (float) – x-coordinate of the linesink

  • tsandq (list of tuples) – tuples of starting time and specific discharge after starting time

  • res (float) – resistance of the linesink

  • layers (int, array or list) – layer (int) or layers (list or array) in which linesink is located

  • label (string or None (default: None)) – label of the linesink

Examples

Example of an infinitely long linesink that pumps with a specific discharge of 100 between times 10 and 50, with a specific discharge of 20 between times 50 and 200, and zero speficic discharge after time 200.

>>> DischargeLineSink1D(ml, tsandq=[(10, 100), (50, 20), (200, 0)])
class ttim.linesink1d.LineSink1D(model, xls=0, tsandq=[(0, 1)], res=0, wh='H', vres=0.0, wv=1.0, layers=0, label=None)[source]#

Bases: LineSink1DBase, ttim.equation.MscreenEquation

Linesink1D with a specified discharge.

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

  • x (float) – x-coordinate of the linesink

  • tsandq (list of tuples) – tuples of starting time and specific discharge after starting time

  • res (float) – resistance of the linesink

  • layers (int, array or list) – layer (int) or layers (list or array) in which linesink is located

  • label (string or None (default: None)) – label of the linesink

Examples

Example of an infinitely long linesink that pumps with a specific discharge of 100 between times 10 and 50, with a specific discharge of 20 between times 50 and 200, and zero specific discharge after time 200.

>>> LineSink1D(ml, tsandq=[(10, 100), (50, 20), (200, 0)])
nunknowns#
vres#
wv = 1.0#
initialize()[source]#

Initialize the element.

Initialization of terms that cannot be initialized before other elements or the aquifer is defined.

As we don’t want to require a certain order of entering elements, these terms are initialized when Model.solve is called The initialization class needs to be overloaded by all derived classes

class ttim.linesink1d.HeadLineSink1D(model, xls=0, tsandh=[(0, 1)], res=0, wh='H', layers=0, label=None)[source]#

Bases: LineSink1DBase, ttim.equation.HeadEquation

1D head-specified linesink element.

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

  • xls (float) – x-coordinate of the linesink

  • tsandh (list of tuples) – list of tuples of the form (time, head) for head conditions

  • res (float) – resistance of the linesink

  • wh (string or float) – wetted perimeter of the linesink, “H” for aquifer height, “2H” for 2x aquifer height (two-sided flow) or specify any float value

  • layers (int, array or list) – layer (int) or layers (list or array) in which linesink is located

  • label (string, optional) – label of the element

nunknowns#
initialize()[source]#

Initialize the element.

Initialization of terms that cannot be initialized before other elements or the aquifer is defined.

As we don’t want to require a certain order of entering elements, these terms are initialized when Model.solve is called The initialization class needs to be overloaded by all derived classes

class ttim.linesink1d.HeadDiffLineSink1D(model, xls=0, layers=0, label=None, aq=None)[source]#

Bases: LineSink1DBase, ttim.equation.HeadDiffEquation

1D head-difference linesink element.

Used to ensure continuity of head in a cross-section model, e.g. at the boundary of an inhomogeneity.

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

  • xls (float) – x-coordinate of the linesink

  • layers (int, array or list) – layer (int) or layers (list or array) in which linesink is located

  • label (string, optional) – label of the element

  • aq (Aquifer object) – aquifer in which the element is located

nunknowns#
initialize()[source]#

Initialize the element.

Initialization of terms that cannot be initialized before other elements or the aquifer is defined.

As we don’t want to require a certain order of entering elements, these terms are initialized when Model.solve is called The initialization class needs to be overloaded by all derived classes

plot(ax=None)[source]#

Plot the element.

class ttim.linesink1d.FluxDiffLineSink1D(model, xls=0, layers=0, label=None, aq=None)[source]#

Bases: LineSink1DBase, ttim.equation.FluxDiffEquation

1D flux-difference linesink element.

Used to ensure continuity of flux in a cross-section model, e.g. at the boundary of an inhomogeneity.

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

  • xls (float) – x-coordinate of the linesink

  • layers (int, array or list) – layer (int) or layers (list or array) in which linesink is located

  • label (string, optional) – label of the element

nunknowns#
initialize()[source]#

Initialize the element.

Initialization of terms that cannot be initialized before other elements or the aquifer is defined.

As we don’t want to require a certain order of entering elements, these terms are initialized when Model.solve is called The initialization class needs to be overloaded by all derived classes

plot(ax=None)[source]#

Plot the element.