fronts.D.van_genuchten(n=None, m=None, l=0.5, alpha=1.0, Ks=None, k=None, nu=1e-06, g=9.81, theta_range=(0.0, 1.0))

Return a Van Genuchten moisture diffusivity function.

Given the saturated hydraulic conductivity \(K_S\) and parameters \(\alpha\), m, l, \(\theta_r\) and \(\theta_s\), the Van Genuchten moisture diffusivity function D is defined as:

\[D(\theta)=\frac{(1-m)K_S}{\alpha m (\theta_s-\theta_r)} S_e^{l-\frac{1}{m}}\left((1-S_e^\frac{1}{m})^{-m} + (1-S_e^\frac{1}{m})^m - 2 \right)\]


\[S_e = \frac{\theta-\theta_r}{\theta_s-\theta_r}\]

and \(\theta\) is water content.

In common usage, the m parameter is replaced with an n parameter so that \(m=1-1/n\). This function supports either parameter.

  • n (float, optional) – n parameter in the Van Genuchten model. Must be >1. Either n or m must be given (but not both).

  • m (float, optional) – m parameter in the Van Genuchten model. Must be strictly between 0 and 1. Either n or m must be given (but not both).

  • l (float, optional) – Pore connectivity parameter. The default is 0.5.

  • alpha (float, optional) – \(\alpha\) parameter of the Van Genuchten model. The default is 1. Must be positive.

  • Ks (None or float, optional) – \(K_S\), the saturated hydraulic conductivity. Must be positive. If neither Ks nor k are given, the saturated hydraulic conductivity is assumed to be 1.

  • k (None or float, optional) – Intrinsic permeability of the porous medium. Can be given in place of Ks, which results in the saturated hydraulic conductivity being computed using \(K_S = kg/\nu\). Must be positive.

  • nu (float, optional) – \(\nu\), the kinematic viscosity of the wetting fluid. Only used if k is passed instead of Ks. Must be positive. Defaults to 1e-6, approximately the kinematic viscosity of water at 20°C in SI units.

  • g (float, optional) – Magnitude of the gravitational acceleration. Only used if k is passed instead of Ks. Must be positive. Defaults to 9.81, the gravity of Earth in SI units.

  • theta_range (sequence of two floats, optional) – (\(\theta_r\), \(\theta_s\)), where \(\theta_r\) is the minimum (also known as residual) water content and \(\theta_s\) is the maximum water content. The default is (0, 1). \(\theta_s\) must be greater than \(\theta_r\).



Function to evaluate \(D\) and its derivatives:

  • D(theta) evaluates and returns \(D\) at theta

  • D(theta, 1) returns both the value of \(D\) and its first derivative at theta

  • D(theta, 2) returns the value of \(D\), its first derivative, and its second derivative at theta

In all cases, the argument theta may be a single float or a NumPy array.

Return type:



The expression used is the one found in Van Genuchten’s original paper [1], but with the addition of the optional l parameter.


[1] VAN GENUCHTEN, M. Th. A closed-form equation for predicting the hydraulic conductivity of unsaturated soils. Soil Science Society of America Journal, 1980, vol. 44, no 5, p. 892-898.