define_recharge.Rd
Define recharge as undisturbed water table gradients. Note that recharge acts as if the aquifer boundaries did not exist. Therefore, when parameterizing recharge, care must be taken to ensure only plausible scenarios.
define_recharge(recharge_params, recharge_type, recharge_vector, aquifer, ...)
recharge_params | A list containing any of the named or unnamed (i.e, in |
---|---|
recharge_type | Type of recharge gradient. One of "F" (uniform flow), "H" (head boundaries), or "D" (recharge divide) |
recharge_vector | A numeric vector containing |
aquifer | Aquifer containing |
... | See details for required and optional parameters |
The function returns a list containing the elements described in Details.
The parameters x_term
and y_term
specify the flow direction, and their
calculation depends on aquifer_type
as follows:
\(x_term, y_term ~ - Q / (Ksat z0)\). They are equivalent to dh/dx and dh/dy. Head differential in the x-direction with respect to some x = x0, h = h0 is therefore \(h - h0 = (x-x0) x_term\). Flow per unit length in the x-direction is \(Qx/L = -x_term Ksat z0\). They are defined as:
x_term
: -flow * cos(theta) * sign(dx) / (Ksat * z0)
y_term
: -flow * sin(theta) * sign(dy) / (Ksat * z0)
recharge_vector
in the x direction.\(x_term, y_term ~ - 2 Q / Ksat\). They are equivalent to dh^2/dx and dh^2/dy. Change in discharge potential in the x-direction with respect to some x = x0, h = h0 is therefore \(h^2- h0^2 = (x-x0) x_term\). They are defined as:
x_term
: -2 * flow * cos(theta) * sign(dx) / Ksat
y_term
: -2 * flow * sin(theta) * sign(dy) / Ksat
recharge_vector
in the x direction.This function defines recharge to the aquifer by defining the undisturbed water
table profile. In addition to the named parameters, each recharge_type
has additional
parameters that must be specified as named arguments in recharge_params
or ...
:
This allows a uniform constant flow in the direction of the
recharge_vector
. Flow is specified as cumec/m, where the length dimension in the
denominator is perpendicular to the recharge vector. This recharge_type
requires parameters:
x0, y0
: Coordinate locations where undisturbed head is equal to aquifer$h0
flow
: Flow in cumec, per m (perpendicular to the flow vector)
All of the input parameters
scenario
: A string combining "c" or "u" for aquifer type, and the recharge type
x_term
, y_term
: flow direction. See Value for details.
This allows a uniform constant flow in opposite directions on
both sides of a divide. The divide goes through the recharge_vector
origin x1, y1
and is perpendicular to the recharge_vector
. Flow on either side is specified as cumec/m, where the length dimension in the
denominator is parallel to the to the recharge divide. This recharge_type
requires parameters:
x0, y0
: Coordinate locations where undisturbed head is equal to aquifer$h0
flow_main
: Flow in cumec in the direction of the recharge_vector
, per m.
flow_opp
: Flow in cumec the opposite direction of the recharge_vector
, per m.
Positive value means flow away from divide.
All of the input parameters
scenario
: A string combining "c" or "u" for aquifer type, and the recharge type
h0_divide
: Hydraulic head at the divide
divide_m
, divide_b
: Slope and aspect of dividing line
main_side_x
, main_side_y
: Direction (+1 or -1) of flow_main relative to divide
x_term_main
, y_term_main
: x_term
and y_term
for main direction of flow. See Value for details.
x_term_opp
, y_term_opp
: x_term
and y_term
for opposite direction of flow. See Value for details.
This is not yet implemented. It would allow the head profile to be specified by 2 or 3 points,
where the result is steady uniform flow determined by the hydraulic gradient between head at the recharge_vector
origin and head at the other 1 (or 2) point(s). Note that aquifer$h0
is ignored with this option.
This recharge_type
requires parameters:
h1
: Hydraulic head at x1, y1
h2
: Hydraulic head at x2, y2
x3, y3, h3
: Optional coordinate location x3, y3
and hydraulic head h3
at a third point.
If this is specified, there will be a watershed divide
aquifer <- define_aquifer("confined",Ksat=0.001,z0=10,h0=100) recharge_params <- list(recharge_type="F", recharge_vector=c(0,0,3,3),flow=1,x0=3,y0=3) define_recharge(recharge_params,aquifer=aquifer)#> recharge_type x1 y1 x2 y2 flow x0 y0 scenario x_term y_term #> 1 F 0 0 3 3 1 3 3 cF -70.71068 -70.71068recharge_params <- list(recharge_type="F",recharge_vector=c(0,0,3,3), aquifer=aquifer,flow=1,x0=3,y0=3) define_recharge(recharge_params)#> recharge_type x1 y1 x2 y2 flow x0 y0 scenario x_term y_term #> 1 F 0 0 3 3 1 3 3 cF -70.71068 -70.71068aquifer <- define_aquifer("unconfined",Ksat=0.001,h0=100) recharge_params <- list(recharge_type="F",recharge_vector=c(0,0,3,3), flow=1,x0=3,y0=3) define_recharge(recharge_params, aquifer=aquifer)#> recharge_type x1 y1 x2 y2 flow x0 y0 scenario x_term y_term #> 1 F 0 0 3 3 1 3 3 cF -1414.214 -1414.214aquifer <- define_aquifer("confined",Ksat=1,z0=10,h0=0) recharge_params <- list(recharge_type="D",recharge_vector=c(0,0,1,1), aquifer=aquifer,flow_main=1,flow_opp=1,x0=1,y0=1) define_recharge(recharge_params)#> recharge_type x1 y1 x2 y2 flow_main flow_opp x0 y0 scenario h0_divide #> 1 D 0 0 1 1 1 1 1 1 cF 0.1414214 #> divide_m divide_b main_side_x main_side_y x_term_main y_term_main x_term_opp #> 1 -1 0 1 1 -0.07071068 -0.07071068 0.07071068 #> y_term_opp #> 1 0.07071068