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

Provides the use of the Brooks-Corey retention curve. More...

+ Inheritance diagram for BrooksCoreyRetentionCurve:
+ Collaboration diagram for BrooksCoreyRetentionCurve:

Detailed Description

Provides the use of the Brooks-Corey retention curve.

\begin{eqnarray*} W(\theta) &=& \frac{\theta - \theta_r}{\theta_s - \theta_r} \\ K(W) &=& K_{sat} W^{2b+3} \\ \Psi(W) &=& \Psi_X \left(\frac{W}{W_X}\right)^{-b} \\ W(\Psi) &=& {\left( \frac{\Psi_X}{\Psi}\right) }^{\frac{1}{b}}\ W_X \end{eqnarray*}

where:

  • \(K\) is the conductivity in \(\frac m {day}\)
  • \(W\) is the wetness (Volume of soil water per volume of pores)
  • \(b\) is the shape of the retention curve (usually between 4 (sand) and 14 (clay))
  • \(\Psi(W)\) is the matric potential in \(m H_2O\) at wetness W
  • \(\Psi_X\) is a matric potential at a known wetness in \(m H_2O\)
  • \(W_X\) is the wetness with a known matric potential for dynamic changes with depth, exponential decays of porosity and saturated conductivity are used The decay function is: \( v(d)=v(0) (1+a)^{-d} \), where v is the value ( \( K_{sat},\Phi\)), d is the depth in m and a is the fractional decay per m. E.g. 0.1 means the value has in 1 m depth 90% of the value at the surface

Public Member Functions

 BrooksCoreyRetentionCurve (real ksat=15, real porosity=0.5, real _b=5, real theta_x=0.2, real psi_x=pF_to_waterhead(2.5), real porosity_decay=0)
 Creates a brooks corey retention curve.
 
virtual real Diffusivity (real wetness) const
 Returns the Diffusivity of the soil.
 
real FillHeight (real lowerDepth, real Area, real Volume) const
 Returns the thickness of a soil column with a certain pore volume.
 
real get_b () const
 Retention curve shape parameter.
 
virtual real K (real wetness) const
 Returns the conductivity in m/day at a certain depth and water content.
 
real MatricPotential (real wetness) const
 Returns the suction pressure in m, use conversion functions waterhead_to_pressure and waterhead_to_pF fro conversions.
 
real Porosity (real depth) const
 real (Porosity)
 
void SetPorosity (real porosity, real porosity_decay=0)
 Sets the porosity (Volume of pores per volume of soil) and the exponential porosity decline with depth.
 
virtual real theta (real wetness) const
 returns the water content \(theta\) for a given wetness
 
real VoidVolume (real upperDepth, real lowerDepth, real Area) const
 Returns the pore volume in a region of a soil column.
 
real Wetness (real suction) const
 returns the wetness (volumetric water content per pore space) at a given suction pressure
 
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
 

Static Public Member Functions

static BrooksCoreyRetentionCurve CreateFrom2Points (real ksat, real porosity, real theta1, real theta2, real psi_1=pF_to_waterhead(2.5), real psi_2=pF_to_waterhead(4.2))
 Creates a soiltype from two known points of the retention curve (e.g.
 

Public Attributes

real Psi_X
 Matric potential at the wetness X in m.
 
real wetness_X
 Wetness at a known point of the retention curve.
 

Constructor & Destructor Documentation

◆ BrooksCoreyRetentionCurve()

BrooksCoreyRetentionCurve ( real ksat = 15,
real porosity = 0.5,
real _b = 5,
real theta_x = 0.2,
real psi_x = pF_to_waterhead(2.5),
real porosity_decay = 0 )

Creates a brooks corey retention curve.

Parameters
ksatSaturated conductivity \(\frac{m}{day}\)
porosity\(\frac {m^3 Pores}{m^3 Soil}\)
_bShape of the retention curve (if you do not know how to parameterize this, take a look at the other constructor)
theta_x\(\theta_X\) Water content at a specific suction pressure
psi_xSuction pressure for \(\theta_X\) in m water column, use the conversion functions pF_to_waterhead, pressure_to_waterhead to convert pressure in to waterhead height (default pF=2.5)
porosity_decayRelative decay of porosity with depth, e.g. 0.1 means conductivity gets 10% smaller per meter

Member Function Documentation

◆ CreateFrom2Points()

static BrooksCoreyRetentionCurve CreateFrom2Points ( real ksat,
real porosity,
real theta1,
real theta2,
real psi_1 = pF_to_waterhead(2.5),
real psi_2 = pF_to_waterhead(4.2) )
static

Creates a soiltype from two known points of the retention curve (e.g.

fieldcapacity and wilting point)

Parameters
ksatSaturated conductivity \(\frac{m}{day}\)
porosity\(\frac {m^3 Pores}{m^3 Soil}\)
theta1\(\theta_1\) First water content at a specific suction pressure (e.g. fieldcapacity)
theta2\(\theta_2\) Second water content at a specific suction pressure (e.g. wiltingpoint)
psi_1\( \Psi_1\) Suction pressure for \(\theta_1\) in m water column, use the conversion functions pF_to_waterhead, pressure_to_waterhead to convert pressure in to waterhead height (default pF=2.5)
psi_2\( \Psi_2\) Suction pressure for \(\theta_2\) in m water column, use the conversion functions pF_to_waterhead, pressure_to_waterhead to convert pressure in to waterhead height (default pF=4.2)

The parameter b (shape of the retention curve) is calculated by:

\[ b = \frac{\log\left(\frac{\Psi_1}{\Psi_2}\right)}{\log\left(\frac{\theta_2}{\theta_1}\right)} \]

◆ Diffusivity()

virtual real Diffusivity ( real wetness) const
virtualinherited

Returns the Diffusivity of the soil.

Not implemented for all retention curves. Diffusivity is used by MACROlikeMacroMicroExchange

Reimplemented in VanGenuchtenMualem.

◆ VoidVolume()

real VoidVolume ( real upperDepth,
real lowerDepth,
real Area ) const
virtual

Returns the pore volume in a region of a soil column.

If there is a porosity decay, the void volume is the integral of porosity over depth times area

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)}\]