Theis (1935) radial flow

class pygaf.solutions.theis_1935.TheisWell

Bases: object

Theis (1935) radial flow solution.

The default TheisWell object uses the default Aq2dConf and WellGrid classes. The WellGrid class includes the default Well class. Methods include radius of influence .ri, transient drawdown at a point .dd and grid-contoured drawdown at specified time .dd_grid.

aq

Aq2dConf aquifer object.

Type:

obj

grd

WellGrid object.

Type:

obj

qf

Fraction of pumped volume used for calculating radius of influence (default 0.99).

Type:

float

class Aq2dConf(K=1, Ss=0.0001, B=10, bot=0, name='Aq2dConf class')

Bases: Aquifer

2D confined aquifer class.

A subclass of the Aquifer class defining a horizontal, 2D confined aquifer with infinite lateral extent and confined storage.

The default Aq2dConf object has hydraulic conductivity K=1, specific storativity Ss=0.0001, aquifer saturated thickness B=10 and aquifer bottom (datum) elevation bot=0. Exceptions will occur if invalid values are provided for K, Ss or B.

The .info and .draw methods display the aquifer information and diagram.

Ss

Aquifer specific storativity (units 1/L, default 1.0e-4).

Type:

float

property B

Aquifer thickness (units L, default 10.0).

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

property D

Aquifer diffusivity (units L2/T, default 1.0e+4).

Type:

float

property K

Aquifer hydraulic conductivity (units L/T, default 1.0).

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

property S

Aquifer storage coefficient (units 1, default 1.0e-3).

Type:

float

property Ss

aquifer specific storativity (units 1/L, default 1.0e-4).

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

draw(dw=6)

Display a drawing of the aquifer.

Parameters:

dw (float) – Width of figure (default 6.0).

info()

Print the aquifer information.

is_1d = False
is_2d = True
is_confined = True
is_finite = False
is_heterogeneous = False
is_homogeneous = True
is_infinite = True
is_leaky = False
is_semifinite = False
is_unconfined = False
class WellGrid(gr=100, gd=21)

Bases: object

Square grid class with regular spacing and well at grid center.

The default WellGrid object has radius gr=100 defining the square’s extent and grid density gd=21. An exception occurs if the grid radius is not positive. Grid density defines the numbers of rows and columns comprising the grid; thus, the default grid has 21 rows x 21 cols = 441 grid points. Minimum grid density is limited to 11 (121 grid points) and maximum grid density is limited to 41 (1681 grid points). Values for gd outside of these contraints are re-set to the minimum or maximum values as appropriate.

The .pts property returns the grid points attriubutes including local x-y coordinates, world x-y coordinates and radius values relative to the well location. The .info method displays grid information and the .draw method displays a plot of the grid in either local or world coordinates.

gr

Radius defining the extent of the solution grid (units L, default 100.0).

Type:

float

gd

Grid density defining the number of rows and columns; minimum and maximum constraints are enforced (default 21).

Type:

int

class Well(x=0.0, y=0.0, r=0.05, pf=1.0, name='Steady state non-flowing well')

Bases: object

Non-flowing well.

x

Well x coordinate (units L, default 0.0).

Type:

float

y

Well y coordinate (units L, default 0.0).

Type:

float

r

Well radius (units L, default 0.05).

Type:

float

pf

Well penetration depth (fraction of aquifer depth, default 1.0).

Type:

float

name

Well name (default ‘’).

Type:

str

info()

Print the well information.

property pf

Well penetration depth.

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

property r

Well radius.

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

draw(local=False)

Draw the grid points.

Parameters:

local (bool) – Display the grid plot in local coordinates with the well at 0, 0 (default False ).

property gr

Grid radius.

Setter method checks for valid values and triggers an exception if invalid values are specified.

Type:

float

property grdim

Number of grid rows and columns.

Type:

int

info()

Print the well grid information.

property npts

Number of grid points.

Type:

int

property pts

grid point attriubutes including local grid point coordinates, world grid point coordinates and radius values of grid points relative to the well center.

Type:

pandas dataframe

dd(t=[1], r=[1], q=-1000.0, plot=True, csv='', xlsx='')

Evaluate drawdown at specified radii and times.

Evaluate drawdown at each radius and time specified in the lists t and r and for well rate q. Defaults are t=[1.0], r=[1.0] and q=-1000.0. A drawdown graph is displayed as default and can be suppressed by setting plot=False.

A pandas dataframe of drawdown values is returned with time as the row index and radius values as the column headers. Results can be exported to csv and Excel files by setting non-blank filename strings for the .csv and .xlsx attributes. Filenames can be supplied with or without file extentions, which are added if ommitted.

Parameters:
  • t (float) – List of times to evaluate drawdown (default [1.0]).

  • r (float) – List of radii to evaluate drawdown (default [1.0]).

  • plot (bool) – Display a plot of results (default True).

  • csv (str) – Full filepath for export of results to csv file; results are exported if the string is not empty (default ‘’).

  • xlsx (str) – Full filepath for export of result to xlsx file; results are exported if the string is not empty (default ‘’).

Returns:

Results in a pandas dataframe.

dd_grid(t=1.0, q=-1000.0, plot=True, local=False, csv='', xlsx='')

Evaluate drawdown on a regular grid.

Evaluate drawdown on a grid of points at specified time and well rate. Default values are t=1.0 and q=-1000. Unless otherwise specified, a default WellGrid object is used; it can be accessed and adjusted via the .grid.gr (grid radius) and .grid.gd (grid density) attributes.

Results are returned in a Pandas dataframe with column x-coord, y-coord and drawdown value. A drawdown graph is displayed as default and can be suppressed by setting plot=False.

Parameters:
  • t (float) – Time of drawdown (default 1.0).

  • plot (bool) – Display a plot of results (default True).

  • local (bool) – Display the results in ‘local’ coordinates with the well at coordinates 0.0, 0.0 (Default False).

  • csv (str) – Full filepath for export of results to csv file; results are exported if the string is not empty (default ‘’).

  • xlsx (str) – Full filepath for export of result to xlsx file; results are exported if the string is not empty (default ‘’).

Returns:

Results in a pandas dataframe.

disp(r, S, T, t, Q)

Drawdown displacement.

info()

Print the solution information.

property qfp

Fraction of pumped volume.

Type:

float

ri(t=[1.0], q=-1000, plot=True, csv='', xlsx='')

Calculate radius of influence at specified times.

Radius of influence is defined as the radius from within which a specified faction qf of the pumped volume has been drawn. The default value for qf is 0.99, corresponding to the radius from which 99% of the pumped volume has been drawn.

Time for calculating ri are provided in a list. A results graph is displayed as default and can be suppressed by setting plot=False. A pandas dataframe is returned with time as the row index and ri as a column.

Results can be exported to csv and Excel files by setting non-blank filename strings for the .csv and .xlsx attributes. Filenames can be supplied with or without file extentions, which are added if ommitted.

Parameters:
  • t (float) – List of times to evaluate radius of influence (default [1.0]).

  • plot (bool) – Display a plot of results (default True).

  • csv (str) – Full filepath for export of results to csv file; results are exported if the string is not empty (default ‘’).

  • xlsx (str) – Full filepath for export of result to xlsx file; results are exported if the string is not empty (default ‘’).

Returns:

Results in pandas dataframe.

rinf(T, S, t, qf)

Radius of influence.