2.0.0b10
catchment modelling framework
Loading...
Searching...
No Matches
VanGenuchtenMualem Class Reference

Provides the use of the Van Genuchten - Mualem retention curve (Van Genuchten 1980) More...

+ Inheritance diagram for VanGenuchtenMualem:
+ Collaboration diagram for VanGenuchtenMualem:

Detailed Description

Provides the use of the Van Genuchten - Mualem retention curve (Van Genuchten 1980)

Head - moisture relationship:

\begin{eqnarray*} W(\theta) &=& \frac{\theta - \theta_r}{\theta_s - \theta_r} \\ K(W) &=& K_{sat} \sqrt{W} \left(1-\left(1-W^{1/m}\right)^m\right)^2 \\ m &=& 1-\frac 1 n \\ \Psi(W) &=& 0.01 \frac{m}{cm} \frac{{\left(1-{W}^{\frac{1}{m}}\right) }^{\frac{1}{n}}}{\alpha\,{W}^{\frac{1}{m\,n}}} \\ W(\Psi) &=& \left(1+\left(\alpha\,100\frac{cm}{m}\Psi\right)^n\right)^{-m} \end{eqnarray*}

where:

  • \(K\) is the conductivity in \(\frac m {day}\)
  • \(W\) is the wetness (Volume of soil water per volume of pores)
  • \(n\) is a shape parameter of the retention curve
  • \(\alpha\) is inverse of the air entry potential in \(cm^{-1}\)
  • \(\Psi(W)\) is the matric potential in \(m H_2O\) at wetness W

Public Member Functions

 VanGenuchtenMualem (real Ksat=15, real phi=0.5, real alpha=0.2178, real n=1.211, real m=-1, real theta_r=0.0, real w0=0.99)
 Creates a van Genuchten-Mualem retention curve.
 
virtual real Diffusivity (real wetness) const
 Returns the diffusivity of the soil according to its wetness as given by VanGenuchten 1980.
 
virtual real dPsiM_dW (real wetness) const
 returns \(\tfrac{d\Psi_M}{dW}\)
 
virtual real FillHeight (real lowerDepth, real Area, real Volume) const
 Returns the thickness of a soil column with a certain pore volume.
 
real fit_w0 (real w1=1.01, real Psi_p=1.0, real tolerance=0.05)
 Fits the break point wetness w0, to ensure a specific oversaturation at a given hydrostatic potential.
 
virtual real K (real wetness) const
 returns the conductivity of the soil at a given saturation
 
virtual real MatricPotential (real wetness) const
 returns the matrix potential at a given saturation
 
virtual real Porosity (real depth) const
 Returns the porosity at a certain depth.
 
virtual real theta (real wetness) const
 returns the water content \(theta\) for a given wetness
 
virtual real VoidVolume (real upperDepth, real lowerDepth, real Area) const
 Returns the void volume of a soil column.
 
virtual real Wetness (real suction) const
 returns the saturation at a given suction (matrix potential).
 
virtual real Wetness_eff (real wetness, real pF_r=4.2) const
 Returns the effective wetness, using a residual pF value.
 
real Wetness_pF (real pF) const
 returns the volumetric water content at a given pF value
 

Public Attributes

real alpha
 Inverse of water entry potential in 1/cm.
 
real Ksat
 Saturated conductivity in m/day.
 
real l
 VanGenuchten - Mualem tortoisivity, defined in Van Genuchten 1980 as 0.5 (default here)
 
real m
 VanGenuchten m (if negative, 1-1/n is used)
 
real n
 Pore size distribution parameter [-].
 
real Phi
 Porosity in m3/m3.
 
real theta_r
 residual water content in m3 Water/ m3 soil (default=0.0)
 
real w0
 Breakpoint wetness. If W>w0, a parabolic extrapolation is used.
 

Constructor & Destructor Documentation

◆ VanGenuchtenMualem()

VanGenuchtenMualem ( real Ksat = 15,
real phi = 0.5,
real alpha = 0.2178,
real n = 1.211,
real m = -1,
real theta_r = 0.0,
real w0 = 0.99 )

Creates a van Genuchten-Mualem retention curve.

Parameters
KsatSaturated conductivity in \(\frac m{day}\)
phiPorosity in \(\frac{m^3 Pores}{m^3 Soil}\)
alphaVan Genuchten \(\alpha\) in \(\frac 1{cm}\)
nVan Genuchten n
mVan Genuchten m parameter, if negative m is calculated as \( 1-\frac 1 n\)
theta_rWater content for \(\lim\limits_{\Psi_M \rightarrow -\infty}{\theta(\Psi_M)}\)
w0Wetness above the parabolic extrapolation is used instead of the Van Genuchten curve (usually calculated with fit_w0)

Member Function Documentation

◆ Diffusivity()

virtual real Diffusivity ( real wetness) const
virtual

Returns the diffusivity of the soil according to its wetness as given by VanGenuchten 1980.

Deprecated
The current implementation goes to infinity at saturation, as noted by VanGenuchten. Diffusivity is therefore currently not usable in any model.

\[D(W) = K(W)\left|\frac{d\Psi}{d\theta}\right|\ eq. 10\]

where:

  • \(D(W)\) Diffusivity in \(m^2/day\)
  • \(K(W)\) Conductivity as a function of saturation W in m/day
  • \(\Psi\) Pressure head
  • \(\theta\) water content of the soil

Applying Van Genuchten theory (Van Genuchten 1980) yields to:

\[D(W) = \frac{(1-m)K_{sat}}{\alpha m \Phi} W^{l-1/m}\left(\left(1-W^{1/m}\right)^{-m} + \left(1-W^{1/m}\right)^{m} -2\right)\]

where:

  • \(m = 1 - \frac 1 n\) acc. Mualem theory
  • \(K_{sat}\) saturated conductivity in m/day
  • \(\alpha\) inverse water entry potential in 1/m. Note \(\alpha\) is given in cmf in 1/cm
  • \(\Phi\) porosity
  • \(W = \frac{\theta - \theta_r}{\Phi - \theta_r}\) saturation of the soil

Reimplemented from RetentionCurve.

◆ dPsiM_dW()

virtual real dPsiM_dW ( real wetness) const
virtual

returns \(\tfrac{d\Psi_M}{dW}\)

\[\frac{0.01 w^{\frac{1}{m}} w^{- \frac{1}{m n}} \left(- w^{\frac{1}{m}} + 1\right)^{\frac{1}{n}}}{\alpha m n w \left(- w^{\frac{1}{m}} + 1\right)} + \frac{0.01 w^{- \frac{1}{m n}} \left(- w^{\frac{1}{m}} + 1\right)^{\frac{1}{n}}}{\alpha m n w}\]

Reimplemented from RetentionCurve.

◆ fit_w0()

real fit_w0 ( real w1 = 1.01,
real Psi_p = 1.0,
real tolerance = 0.05 )

Fits the break point wetness w0, to ensure a specific oversaturation at a given hydrostatic potential.

Parameters
w1The oversaturation wetness to archieve (>1), default = 1.01
Psi_pthe hydrostatic potential for w1, default = +1.0 m
tolerance

◆ K()

virtual real K ( real wetness) const
virtual

returns the conductivity of the soil at a given saturation

\[K(W) = K_{sat} \sqrt{W} \left(1-\left(1-W^{1/m}\right)^m\right)^2 \]

Reimplemented from RetentionCurve.

◆ MatricPotential()

virtual real MatricPotential ( real wetness) const
virtual

returns the matrix potential at a given saturation

\[\Psi(W) = 0.01 \frac{m}{cm} \frac{{\left(1-{W}^{\frac{1}{m}}\right) }^{\frac{1}{n}}}{\alpha\,{W}^{\frac{1}{m\,n}}} \]

Reimplemented from RetentionCurve.

◆ Wetness()

virtual real Wetness ( real suction) const
virtual

returns the saturation at a given suction (matrix potential).

\[ W(\Psi) = \left(1+\left(\alpha\,100\frac{cm}{m}\Psi\right)^n\right)^{-m} \]

Reimplemented from RetentionCurve.

◆ Wetness_eff()

virtual real Wetness_eff ( real wetness,
real pF_r = 4.2 ) const
virtualinherited

Returns the effective wetness, using a residual pF value.

\[w_{eff} = \frac{w_{act}-w\left(pF_r\right)}{1-w\left(pF_r\right)}\]