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 powerlaw fields. 
ext_thiem_tpl_3d (rad, r_ref, cond_gmean, …) 
The extended Theis solution for truncated powerlaw 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 powerlaw fields. 
ext_theis_tpl_3d (time, rad, storage, …[, …]) 
The extended Theis solution for truncated powerlaw 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 steadystate 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 lognormal 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
) – Geometricmean transmissivity.  var (
float
) – Variance of logtransmissivity.  len_scale (
float
) – Correlationlength of logtransmissivity.  rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  h_ref (
float
, optional) – Reference head at the referenceradius 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: 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 largescale model for the sedimentary basin of Thuringia.’’ PhD thesis, FriedrichSchillerUniversitä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])
 rad (

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 steadystate 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 lognormal 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
) – Geometricmean conductivity.  var (
float
) – Variance of the logconductivity.  len_scale (
float
) – Corralationlength of logconductivity.  anis (
float
, optional) – Anisotropyratio of the vertical and horizontal corralationlengths. Default: 1.0  lat_ext (
float
, optional) – Lateral extend of the aquifer (thickness). Default:1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  h_ref (
float
, optional) – Reference head at the referenceradius 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: 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 largescale model for the sedimentary basin of Thuringia.’’ PhD thesis, FriedrichSchillerUniversitä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])
 rad (

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 powerlaw 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 ddimensional statistical framework, where the conductivity distribution is following a lognormal distribution with a truncated powerlaw 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
) – Geometricmean conductivity. You can also treat this as transmissivity by leaving ‘lat_ext=1’.  len_scale (
float
) – Corralationlength of logconductivity.  hurst (
float
) – Hurst coefficient of the TPL model. Should be in (0, 1).  var (
float
) – Variance of the logconductivity. 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:
 sqareroot of crosssection in 1D
 thickness in 2D
 meaningless in 3D
Default:
1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  h_ref (
float
, optional) – Reference head at the referenceradius 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 timepoints.
Return type: Notes
If you want to use cartesian coordiantes, just use the formula
r = sqrt(x**2 + y**2)
 rad (

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 powerlaw 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 3dimensional statistical framework, where the conductivity distribution is following a lognormal distribution with a truncated powerlaw correlation function build on superposition of gaussian modes.
Parameters:  time (
numpy.ndarray
) – Array with all timepoints 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
) – Geometricmean conductivity.  len_scale (
float
) – Corralationlength of logconductivity.  hurst (
float
) – Hurst coefficient of the TPL model. Should be in (0, 1).  var (
float
) – Variance of the logconductivity. 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) – Anisotropyratio of the vertical and horizontal corralationlengths. Default: 1.0  lat_ext (
float
, optional) – Lateral extend of the aquifer (thickness). Default:1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 cutoffpoint of the solution. Default:0.01
 struc_grid (
bool
, optional) – If this is set toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: Notes
If you want to use cartesian coordiantes, just use the formula
r = sqrt(x**2 + y**2)
 time (

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 lognormal distribution with a gaussian correlation function.
Parameters:  time (
numpy.ndarray
) – Array with all timepoints 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
) – Geometricmean transmissivity.  var (
float
) – Variance of logtransmissivity.  len_scale (
float
) – Correlationlength of logtransmissivity.  rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 cutoffpoint of the solution. Default:0.01
 struc_grid (
bool
, optional) – If this is set toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: 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]])
 time (

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 lognormal distribution with a gaussian correlation function and taking vertical anisotropy into account.
Parameters:  time (
numpy.ndarray
) – Array with all timepoints 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
) – Geometricmean conductivity.  var (
float
) – Variance of the logconductivity.  len_scale (
float
) – Corralationlength of logconductivity.  anis (
float
, optional) – Anisotropyratio of the vertical and horizontal corralationlengths. Default: 1.0  lat_ext (
float
, optional) – Lateral extend of the aquifer (thickness). Default:1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 cutoffpoint of the solution. Default:0.01
 struc_grid (
bool
, optional) – If this is set toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: 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]])
 time (

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 powerlaw 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 ddimensional statistical framework, where the conductivity distribution is following a lognormal distribution with a truncated powerlaw correlation function build on superposition of gaussian modes.
Parameters:  time (
numpy.ndarray
) – Array with all timepoints 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
) – Geometricmean conductivity. You can also treat this as transmissivity by leaving ‘lat_ext=1’.  len_scale (
float
) – Corralationlength of logconductivity.  hurst (
float
) – Hurst coefficient of the TPL model. Should be in (0, 1).  var (
float
) – Variance of the logconductivity. 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:
 sqareroot of crosssection in 1D
 thickness in 2D
 meaningless in 3D
Default:
1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 cutoffpoint of the solution. Default:0.01
 struc_grid (
bool
, optional) – If this is set toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: Notes
If you want to use cartesian coordiantes, just use the formula
r = sqrt(x**2 + y**2)
 time (

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 powerlaw 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 3dimensional statistical framework, where the conductivity distribution is following a lognormal distribution with a truncated powerlaw correlation function build on superposition of gaussian modes.
Parameters:  time (
numpy.ndarray
) – Array with all timepoints 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
) – Geometricmean conductivity.  len_scale (
float
) – Corralationlength of logconductivity.  hurst (
float
) – Hurst coefficient of the TPL model. Should be in (0, 1).  var (
float
) – Variance of the logconductivity. 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) – Anisotropyratio of the vertical and horizontal corralationlengths. Default: 1.0  lat_ext (
float
, optional) – Lateral extend of the aquifer (thickness). Default:1.0
 rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 cutoffpoint of the solution. Default:0.01
 struc_grid (
bool
, optional) – If this is set toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: Notes
If you want to use cartesian coordiantes, just use the formula
r = sqrt(x**2 + y**2)
 time (

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 timepoints 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
) – Geometricmean transmissivity.  var (
float
) – Variance of logtransmissivity.  len_scale (
float
) – Correlationlength of logtransmissivity.  rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  r_well (
float
, optional) – Radius of the pumpingwell. 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 toFalse
, the rad and time array will be merged and interpreted as single, rt points. In this case they need to have the same shapes. Otherwise a structured rt 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
orNone
optional) – Dictionary forget_lap_inv
containing method and method_dict. The default is equivalent tolap_kwargs = {"method": "stehfest", "method_dict": None}
. Default:None
Returns: head – Array with all heads at the given radii and timepoints.
Return type: References
[Neuman2004] Neuman, Shlomo P., Alberto Guadagnini, and Monica Riva. ‘’Typecurve estimation of statistical heterogeneity.’’ Water resources research 40.4, 2004  time (

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
) – Geometricmean transmissivity.  var (
float
) – Variance of logtransmissivity.  len_scale (
float
) – Correlationlength of logtransmissivity.  rate (
float
, optional) – Pumpingrate at the well. Default: 1e4  h_ref (
float
, optional) – Reference head at the referenceradius r_ref. Default:0.0
Returns: head – Array with all heads at the given radii.
Return type: References
[Neuman2004] Neuman, Shlomo P., Alberto Guadagnini, and Monica Riva. ‘’Typecurve estimation of statistical heterogeneity.’’ Water resources research 40.4, 2004  rad (