Learn R Programming

soilhypfit (version 0.1-8)

wc_model: Models for Soil Water Retention Curves

Description

The functions sat_model and wc_model compute, for given capillary pressure head \(h\), the volumetric water saturation \(S(h)\) and the volumetric water content \(\theta(h)\), respectively, of a soil by parametrical models.

Usage

sat_model(h, nlp, precBits = NULL, wrc_model = "vg")

wc_model(h, nlp, lp, precBits = NULL, wrc_model = "vg")

Value

A numeric vector with values of volumetric water saturation (sat_model) or water content (wc_model).

Arguments

h

a mandatory numeric vector with values of capillary pressure head for which to compute the volumetric water saturation or content. For consistency with other quantities, the unit of pressure head should be meter [m].

nlp

a mandatory named numeric vector, currently with elements named "alpha" and "n", which are the nonlinear parameters \(\boldsymbol{\nu}^\mathrm{T} = (\alpha, n)\), where \(\alpha\) and \(n\) are the inverse air entry pressure and the shape parameter, see Details. For consistency with other quantities, the unit of \(\alpha\) should be 1/meter [\(\mathrm{m}^{-1}\)].

lp

a mandatory named numeric vector, currently with elements named "thetar" and "thetas", which are the linear parameters \(\boldsymbol{\mu}^\mathrm{T} = (\theta_r, \theta_s)\) where \(\theta_r\) and \(\theta_s\) are the residual and saturated water content, respectively, see Details.

precBits

an optional integer scalar defining the maximal precision (in bits) to be used in high-precision computations by mpfr. If equal to NULL (default) then mpfr is not used and the result of the function call is of storage mode double, see soilhypfitIntro.

wrc_model

a keyword denoting the parametrical model for the water retention curve. Currently, only the Van Genuchten model (wrc_model = "vg") is implemented, see Details.

Author

Andreas Papritz papritz@retired.ethz.ch.

Details

The functions sat_model and wc_model currently model soil water retention curves only by the simplified form of the model by Van Genuchten (1980) with the restriction \(m = 1 - \frac{1}{n}\), i.e. $$ S_\mathrm{VG}(h; \boldsymbol{\nu}) = ( 1 + (\alpha \ h)^n)^\frac{1-n}{n} $$ $$ \theta_\mathrm{VG}(h; \boldsymbol{\mu}, \boldsymbol{\nu}) = \theta_r + (\theta_s - \theta_r) \, S_\mathrm{VG}(h; \boldsymbol{\nu}) $$ where \(\boldsymbol{\mu}^\mathrm{T} = (\theta_r, \theta_s)\) are the residual and saturated water content (\(0 \le \theta_r \le \theta_s \le 1\)), respectively, and \(\boldsymbol{\nu}^\mathrm{T} = (\alpha, n)\) are the inverse air entry pressure (\(\alpha > 0\)) and the shape parameter (\(n > 1\)).

Note that \(\boldsymbol{\mu}^\mathrm{} \) and \(\boldsymbol{\nu}^\mathrm{} \) are passed to the functions by the arguments lp and nlp, respectively.

References

Van Genuchten, M. Th. (1980) A closed-form equation for predicting the hydraulic conductivity of unsaturated soils. Soil Science Society of America Journal, 44, 892--898, tools:::Rd_expr_doi("10.2136/sssaj1980.03615995004400050002x").

See Also

soilhypfitIntro for a description of the models and a brief summary of the parameter estimation approach;

fit_wrc_hcc for (constrained) estimation of parameters of models for soil water retention and hydraulic conductivity data;

control_fit_wrc_hcc for options to control fit_wrc_hcc;

soilhypfitmethods for common S3 methods for class fit_wrc_hcc;

vcov for computing (co-)variances of the estimated nonlinear parameters;

prfloglik_sample for profile loglikelihood computations;

evaporative-length for physically constraining parameter estimates of soil hydraulic material functions.

Examples

Run this code
## define capillary pressure head (unit meters)
h <- c(0.01, 0.1, 0.2, 0.3, 0.5, 1., 2., 5.,10.)

## compute water saturation and water content
sat <- sat_model(h, nlp = c(alpha = 1.5, n = 2))
theta <- wc_model(
  h ,nlp = c(alpha = 1.5, n = 2), lp = c(thetar = 0.1, thetas = 0.5))

## display water retention curve
op <- par(mfrow = c(1, 2))
plot(sat ~ h, log = "x", type = "l")
plot(theta ~ h, log = "x", type = "l")
on.exit(par(op))

Run the code above in your browser using DataLab