Plugins
ug::Richards::IRichardsModel< TDerived > Class Template Reference

This is the interface for a Richards-type model. All derived classes use CRTP for evaluation. More...

#include <van_genuchten.h>

Public Member Functions

double Conductivity (double H)
 Conductivity K = Ks*kr. More...
 
double dConductivity_dH (double H)
 
double dSaturation_dH (double H) const
 
void get_conductivities (const double *H, double *K, double *dKdH, size_t n) const
 
void get_conductivity (double H, double &K, double &dKdH) const
 Calls Conductivity_. More...
 
void get_relative_permeabilities (const double *H, double *K, double *dKdH, size_t n) const
 
void get_relative_permeability (double H, double &Kr, double &dKrdH) const
 Calls RelativePermeability_. More...
 
void get_saturation (double H, double &S, double &dSdH) const
 Calls Saturation_. More...
 
void get_saturations (const double *H, double *S, double *dSdH, size_t n) const
 
double Saturation (double H) const
 

Protected Member Functions

template<typename TFunc >
void get_value_and_deriv (TFunc F, double H, double &f, double &df) const
 
TDerived * me ()
 
const TDerived * me () const
 

Detailed Description

template<typename TDerived>
class ug::Richards::IRichardsModel< TDerived >

This is the interface for a Richards-type model. All derived classes use CRTP for evaluation.

Two non-dimensional quantities are returned

  • Saturation $ 0 \le S(\psi) \le 1$
  • Relative permeability 0 \le k_r(\psi) \le 1

For convenience, we also return

  • Conductitivity K = K_s *k_r(\psi)

Member Function Documentation

◆ Conductivity()

template<typename TDerived >
double ug::Richards::IRichardsModel< TDerived >::Conductivity ( double  H)
inline

Conductivity K = Ks*kr.

References ug::Richards::IRichardsModel< TDerived >::me().

◆ dConductivity_dH()

template<typename TDerived >
double ug::Richards::IRichardsModel< TDerived >::dConductivity_dH ( double  H)
inline

◆ dSaturation_dH()

template<typename TDerived >
double ug::Richards::IRichardsModel< TDerived >::dSaturation_dH ( double  H) const
inline

◆ get_conductivities()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_conductivities ( const double *  H,
double *  K,
double *  dKdH,
size_t  n 
) const
inline

◆ get_conductivity()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_conductivity ( double  H,
double &  K,
double &  dKdH 
) const
inline

◆ get_relative_permeabilities()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_relative_permeabilities ( const double *  H,
double *  K,
double *  dKdH,
size_t  n 
) const
inline

◆ get_relative_permeability()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_relative_permeability ( double  H,
double &  Kr,
double &  dKrdH 
) const
inline

◆ get_saturation()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_saturation ( double  H,
double &  S,
double &  dSdH 
) const
inline

◆ get_saturations()

template<typename TDerived >
void ug::Richards::IRichardsModel< TDerived >::get_saturations ( const double *  H,
double *  S,
double *  dSdH,
size_t  n 
) const
inline

◆ get_value_and_deriv()

template<typename TDerived >
template<typename TFunc >
void ug::Richards::IRichardsModel< TDerived >::get_value_and_deriv ( TFunc  F,
double  H,
double &  f,
double &  df 
) const
inlineprotected

◆ me() [1/2]

template<typename TDerived >
TDerived* ug::Richards::IRichardsModel< TDerived >::me ( )
inlineprotected

◆ me() [2/2]

◆ Saturation()

template<typename TDerived >
double ug::Richards::IRichardsModel< TDerived >::Saturation ( double  H) const
inline

The documentation for this class was generated from the following file: