Green-Ampt flow
get_greenampt_flow_numerical.RdThis function models the Green-Ampt equation, with a saturated surface flowing vertically downward into a soil profile. The assumptions are:
1. Homogeneous soil with initial water content (theta_0) 2. Constant pressure head (h_0) at the wetting front 3. Saturated soil above above wetting front 4. Continuous supply of water with constant head (h_b) at the soil surface boundary
With these assumptions, the amount of time for a particular infiltration depth (Fcum) can be calculated using Darcy's law as:
$$t = \frac{1}{K_{sat}}\Big[F - \Delta \theta (h_b - h_0) \ln (1 + \frac{F}{\Delta \theta (h_b - h_0)}) \Big]$$
The cumulative infiltration is then found using a numerical root solver, `uniroot`.
Arguments
- theta_0
Soil volumetric water content prior to event
- theta_s
Soil porosity
- Ksat
Saturated hydraulic conductivity
- h_b
Hydraulic head at soil surface boundary
- h_0
Hydraulic head in soil prior to event
- times
Times to calculate total infiltration
Examples
library(units)
theta_0 <- 0.2 # unitless
theta_s <- 0.35 # unitless
Fcum <- set_units(1:20, "mm") # depth
Ksat <- set_units(0.2, "cm/h") # length / time
h_b <- set_units(6, "ft") # hydraulic head (length)
h_0 <- set_units(-10, "cm") # hydraulic head (length)
times <- set_units(seq(5, 60, by= 5), "min")
fcum <- get_greenampt_flow_numerical(theta_0, theta_s, Ksat, h_b, h_0, times)
# Double check that we get the original times back with the Green-Ampt equation
set_units(get_greenampt_time(theta_0, theta_s, fcum, Ksat, h_b, h_0),"min")
#> Units: [min]
#> [1] 5.000000 9.999995 15.000000 19.999970 24.999991 29.999997 34.999999
#> [8] 39.999999 45.000000 49.999987 54.999993 59.999996