anaflow.flow.heterogeneous

Anaflow subpackage providing flow solutions in heterogeneous aquifers.

The following functions are provided

ext_thiem_2d(rad, r_ref, trans_gmean, var, …) The extended Thiem solution in 2D.
ext_thiem_3d(rad, r_ref, cond_gmean, var, …) The extended Thiem solution in 3D.
ext_thiem_tpl(rad, r_ref, cond_gmean, …[, …]) The extended Thiem solution for truncated power-law fields.
ext_thiem_tpl_3d(rad, r_ref, cond_gmean, …) The extended Theis solution for truncated power-law fields in 3D.
ext_theis_2d(time, rad, storage, …[, …]) The extended Theis solution in 2D.
ext_theis_3d(time, rad, storage, cond_gmean, …) The extended Theis solution in 3D.
ext_theis_tpl(time, rad, storage, …[, …]) The extended Theis solution for truncated power-law fields.
ext_theis_tpl_3d(time, rad, storage, …[, …]) The extended Theis solution for truncated power-law fields in 3D.
neuman2004(time, rad, storage, trans_gmean, …) The transient solution for the apparent transmissivity from [Neuman2004].
neuman2004_steady(rad, r_ref, trans_gmean, …) The steady solution for the apparent transmissivity from [Neuman2004].
ext_thiem_2d(rad, r_ref, trans_gmean, var, len_scale, rate=-0.0001, h_ref=0.0, T_well=None, prop=1.6)[source]

The extended Thiem solution in 2D.

The extended Thiem solution for steady-state flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a 2D statistical framework, where the transmissivity distribution is following a log-normal distribution with a gaussian correlation function.

Parameters:
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • r_ref (float) – Radius of the reference head.
  • trans_gmean (float) – Geometric-mean transmissivity.
  • var (float) – Variance of log-transmissivity.
  • len_scale (float) – Correlation-length of log-transmissivity.
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • h_ref (float, optional) – Reference head at the reference-radius r_ref. Default: 0.0
  • T_well (float, optional) – Explicit transmissivity value at the well. Default: None
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
Returns:

head – Array with all heads at the given radii.

Return type:

numpy.ndarray

References

[Zech2013]Zech, A. ‘’Impact of Aqifer Heterogeneity on Subsurface Flow and Salt Transport at Different Scales: from a method determine parameters of heterogeneous permeability at local scale to a large-scale model for the sedimentary basin of Thuringia.’’ PhD thesis, Friedrich-Schiller-Universität Jena, 2013

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

Examples

>>> ext_thiem_2d([1,2,3], 10, 0.001, 1, 10, -0.001)
array([-0.53084596, -0.35363029, -0.25419375])
ext_thiem_3d(rad, r_ref, cond_gmean, var, len_scale, anis=1.0, lat_ext=1.0, rate=-0.0001, h_ref=0.0, K_well='KH', prop=1.6)[source]

The extended Thiem solution in 3D.

The extended Thiem solution for steady-state flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a 3D statistical framework, where the conductivity distribution is following a log-normal distribution with a gaussian correlation function and taking vertical anisotropy into account.

Parameters:
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • r_ref (float) – Reference radius with known head (see h_ref)
  • cond_gmean (float) – Geometric-mean conductivity.
  • var (float) – Variance of the log-conductivity.
  • len_scale (float) – Corralation-length of log-conductivity.
  • anis (float, optional) – Anisotropy-ratio of the vertical and horizontal corralation-lengths. Default: 1.0
  • lat_ext (float, optional) – Lateral extend of the aquifer (thickness). Default: 1.0
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • h_ref (float, optional) – Reference head at the reference-radius r_ref. Default: 0.0
  • K_well (string/float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
Returns:

head – Array with all heads at the given radii.

Return type:

numpy.ndarray

References

[Zech2013]Zech, A. ‘’Impact of Aqifer Heterogeneity on Subsurface Flow and Salt Transport at Different Scales: from a method determine parameters of heterogeneous permeability at local scale to a large-scale model for the sedimentary basin of Thuringia.’’ PhD thesis, Friedrich-Schiller-Universität Jena, 2013

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

Examples

>>> ext_thiem_3d([1,2,3], 10, 0.001, 1, 10, 1, 1, -0.001)
array([-0.48828026, -0.31472059, -0.22043022])
ext_thiem_tpl(rad, r_ref, cond_gmean, len_scale, hurst, var=None, c=1.0, dim=2.0, lat_ext=1.0, rate=-0.0001, h_ref=0.0, K_well='KH', prop=1.6)[source]

The extended Thiem solution for truncated power-law fields.

The extended Theis solution for steady flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a d-dimensional statistical framework, where the conductivity distribution is following a log-normal distribution with a truncated power-law correlation function build on superposition of gaussian modes.

Parameters:
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • r_ref (float) – Reference radius with known head (see h_ref)
  • cond_gmean (float) – Geometric-mean conductivity. You can also treat this as transmissivity by leaving ‘lat_ext=1’.
  • len_scale (float) – Corralation-length of log-conductivity.
  • hurst (float) – Hurst coefficient of the TPL model. Should be in (0, 1).
  • var (float) – Variance of the log-conductivity. If var is given, c will be calculated accordingly. Default: None
  • c (float, optional) – Intensity of variation in the TPL model. Is overwritten if var is given. Default: 1.0
  • dim (float, optional) – Dimension of space. Default: 2.0
  • lat_ext (float, optional) –

    Lateral extend of the aquifer:

    • sqare-root of cross-section in 1D
    • thickness in 2D
    • meaningless in 3D

    Default: 1.0

  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • h_ref (float, optional) – Reference head at the reference-radius r_ref. Default: 0.0
  • K_well (float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

ext_thiem_tpl_3d(rad, r_ref, cond_gmean, len_scale, hurst, var=None, c=1.0, anis=1, lat_ext=1.0, rate=-0.0001, h_ref=0.0, K_well='KH', prop=1.6)[source]

The extended Theis solution for truncated power-law fields in 3D.

The extended Theis solution for transient flow under a pumping condition in a confined aquifer with anisotropy in 3D. The type curve is describing the effective drawdown in a 3-dimensional statistical framework, where the conductivity distribution is following a log-normal distribution with a truncated power-law correlation function build on superposition of gaussian modes.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • storage (float) – Storage of the aquifer.
  • cond_gmean (float) – Geometric-mean conductivity.
  • len_scale (float) – Corralation-length of log-conductivity.
  • hurst (float) – Hurst coefficient of the TPL model. Should be in (0, 1).
  • var (float) – Variance of the log-conductivity. If var is given, c will be calculated accordingly. Default: None
  • c (float, optional) – Intensity of variation in the TPL model. Is overwritten if var is given. Default: 1.0
  • anis (float, optional) – Anisotropy-ratio of the vertical and horizontal corralation-lengths. Default: 1.0
  • lat_ext (float, optional) – Lateral extend of the aquifer (thickness). Default: 1.0
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • K_well (float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
  • far_err (float, optional) – Relative error for the farfield transmissivity for calculating the cutoff-point of the solution. Default: 0.01
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

ext_theis_2d(time, rad, storage, trans_gmean, var, len_scale, rate=-0.0001, r_well=0.0, r_bound=inf, h_bound=0.0, T_well=None, prop=1.6, struc_grid=True, far_err=0.01, parts=30, lap_kwargs=None)[source]

The extended Theis solution in 2D.

The extended Theis solution for transient flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a 2D statistical framework, where the transmissivity distribution is following a log-normal distribution with a gaussian correlation function.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • storage (float) – Storage of the aquifer.
  • trans_gmean (float) – Geometric-mean transmissivity.
  • var (float) – Variance of log-transmissivity.
  • len_scale (float) – Correlation-length of log-transmissivity.
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • T_well (float, optional) – Explicit transmissivity value at the well. Harmonic mean by default.
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
  • far_err (float, optional) – Relative error for the farfield transmissivity for calculating the cutoff-point of the solution. Default: 0.01
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

Examples

>>> ext_theis_2d([10,100], [1,2,3], 0.001, 0.001, 1, 10, -0.001)
array([[-0.33737576, -0.17400123, -0.09489812],
       [-0.58443489, -0.40847176, -0.31095166]])
ext_theis_3d(time, rad, storage, cond_gmean, var, len_scale, anis=1.0, lat_ext=1.0, rate=-0.0001, r_well=0.0, r_bound=inf, h_bound=0.0, K_well='KH', prop=1.6, far_err=0.01, struc_grid=True, parts=30, lap_kwargs=None)[source]

The extended Theis solution in 3D.

The extended Theis solution for transient flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a 3D statistical framework, where the transmissivity distribution is following a log-normal distribution with a gaussian correlation function and taking vertical anisotropy into account.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • storage (float) – Storage of the aquifer.
  • cond_gmean (float) – Geometric-mean conductivity.
  • var (float) – Variance of the log-conductivity.
  • len_scale (float) – Corralation-length of log-conductivity.
  • anis (float, optional) – Anisotropy-ratio of the vertical and horizontal corralation-lengths. Default: 1.0
  • lat_ext (float, optional) – Lateral extend of the aquifer (thickness). Default: 1.0
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • K_well (float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
  • far_err (float, optional) – Relative error for the farfield transmissivity for calculating the cutoff-point of the solution. Default: 0.01
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

Examples

>>> ext_theis_3d([10,100], [1,2,3], 0.001, 0.001, 1, 10, 1, 1, -0.001)
array([[-0.32756786, -0.16717569, -0.09141211],
       [-0.5416396 , -0.36982684, -0.27798614]])
ext_theis_tpl(time, rad, storage, cond_gmean, len_scale, hurst, var=None, c=1.0, dim=2.0, lat_ext=1.0, rate=-0.0001, r_well=0.0, r_bound=inf, h_bound=0.0, K_well='KH', prop=1.6, far_err=0.01, struc_grid=True, parts=30, lap_kwargs=None)[source]

The extended Theis solution for truncated power-law fields.

The extended Theis solution for transient flow under a pumping condition in a confined aquifer. The type curve is describing the effective drawdown in a d-dimensional statistical framework, where the conductivity distribution is following a log-normal distribution with a truncated power-law correlation function build on superposition of gaussian modes.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • storage (float) – Storage of the aquifer.
  • cond_gmean (float) – Geometric-mean conductivity. You can also treat this as transmissivity by leaving ‘lat_ext=1’.
  • len_scale (float) – Corralation-length of log-conductivity.
  • hurst (float) – Hurst coefficient of the TPL model. Should be in (0, 1).
  • var (float) – Variance of the log-conductivity. If var is given, c will be calculated accordingly. Default: None
  • c (float, optional) – Intensity of variation in the TPL model. Is overwritten if var is given. Default: 1.0
  • dim (float, optional) – Dimension of space. Default: 2.0
  • lat_ext (float, optional) –

    Lateral extend of the aquifer:

    • sqare-root of cross-section in 1D
    • thickness in 2D
    • meaningless in 3D

    Default: 1.0

  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • K_well (float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
  • far_err (float, optional) – Relative error for the farfield transmissivity for calculating the cutoff-point of the solution. Default: 0.01
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

ext_theis_tpl_3d(time, rad, storage, cond_gmean, len_scale, hurst, var=None, c=1.0, anis=1, lat_ext=1.0, rate=-0.0001, r_well=0.0, r_bound=inf, h_bound=0.0, K_well='KH', prop=1.6, far_err=0.01, struc_grid=True, parts=30, lap_kwargs=None)[source]

The extended Theis solution for truncated power-law fields in 3D.

The extended Theis solution for transient flow under a pumping condition in a confined aquifer with anisotropy in 3D. The type curve is describing the effective drawdown in a 3-dimensional statistical framework, where the conductivity distribution is following a log-normal distribution with a truncated power-law correlation function build on superposition of gaussian modes.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • storage (float) – Storage of the aquifer.
  • cond_gmean (float) – Geometric-mean conductivity.
  • len_scale (float) – Corralation-length of log-conductivity.
  • hurst (float) – Hurst coefficient of the TPL model. Should be in (0, 1).
  • var (float) – Variance of the log-conductivity. If var is given, c will be calculated accordingly. Default: None
  • c (float, optional) – Intensity of variation in the TPL model. Is overwritten if var is given. Default: 1.0
  • anis (float, optional) – Anisotropy-ratio of the vertical and horizontal corralation-lengths. Default: 1.0
  • lat_ext (float, optional) – Lateral extend of the aquifer (thickness). Default: 1.0
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • K_well (float, optional) – Explicit conductivity value at the well. One can choose between the harmonic mean ("KH"), the arithmetic mean ("KA") or an arbitrary float value. Default: "KH"
  • prop (float, optional) – Proportionality factor used within the upscaling procedure. Default: 1.6
  • far_err (float, optional) – Relative error for the farfield transmissivity for calculating the cutoff-point of the solution. Default: 0.01
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

Notes

If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)

neuman2004(time, rad, storage, trans_gmean, var, len_scale, rate=-0.0001, r_well=0.0, r_bound=inf, h_bound=0.0, struc_grid=True, parts=30, lap_kwargs=None)[source]

The transient solution for the apparent transmissivity from [Neuman2004].

This solution is build on the apparent transmissivity from Neuman 2004, which represents a mean drawdown in an ensemble of pumping tests in heterogeneous transmissivity fields following an exponential covariance.

Parameters:
  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated.
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated.
  • storage (float) – Storage of the aquifer.
  • trans_gmean (float) – Geometric-mean transmissivity.
  • var (float) – Variance of log-transmissivity.
  • len_scale (float) – Correlation-length of log-transmissivity.
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • r_well (float, optional) – Radius of the pumping-well. Default: 0.0
  • r_bound (float, optional) – Radius of the outer boundary of the aquifer. Default: np.inf
  • h_bound (float, optional) – Reference head at the outer boundary as well as initial condition. Default: 0.0
  • struc_grid (bool, optional) – If this is set to False, the rad and time array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True
  • parts (int, optional) – Since the solution is calculated by setting the transmissivity to local constant values, one needs to specify the number of partitions of the transmissivity. Default: 30
  • lap_kwargs (dict or None optional) – Dictionary for get_lap_inv containing method and method_dict. The default is equivalent to lap_kwargs = {"method": "stehfest", "method_dict": None}. Default: None
Returns:

head – Array with all heads at the given radii and time-points.

Return type:

numpy.ndarray

References

[Neuman2004]Neuman, Shlomo P., Alberto Guadagnini, and Monica Riva. ‘’Type-curve estimation of statistical heterogeneity.’’ Water resources research 40.4, 2004
neuman2004_steady(rad, r_ref, trans_gmean, var, len_scale, rate=-0.0001, h_ref=0.0)[source]

The steady solution for the apparent transmissivity from [Neuman2004].

This solution is build on the apparent transmissivity from Neuman 1994, which represents a mean drawdown in an ensemble of pumping tests in heterogeneous transmissivity fields following an exponential covariance.

Parameters:
  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated
  • r_ref (float) – Radius of the reference head.
  • trans_gmean (float) – Geometric-mean transmissivity.
  • var (float) – Variance of log-transmissivity.
  • len_scale (float) – Correlation-length of log-transmissivity.
  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4
  • h_ref (float, optional) – Reference head at the reference-radius r_ref. Default: 0.0
Returns:

head – Array with all heads at the given radii.

Return type:

numpy.ndarray

References

[Neuman2004]Neuman, Shlomo P., Alberto Guadagnini, and Monica Riva. ‘’Type-curve estimation of statistical heterogeneity.’’ Water resources research 40.4, 2004