Implementation of the van Genuchten capillary pressure <-> saturation relation, and relative permeability.  
 More...
#include <dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh>
- Note
- Capillary pressure model from van Genuchten (1980), relative permeability model from Mualem (1976) 
|  | 
| template<class Scalar = double> | 
| static Params< Scalar > | makeParams (const std::string ¶mGroup) | 
|  | Construct from a subgroup from the global parameter tree. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | pc (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The capillary pressure-saturation curve according to van Genuchten. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | swe (Scalar pc, const Params< Scalar > ¶ms) | 
|  | The saturation-capillary pressure curve according to van Genuchten. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | endPointPc (const Params< Scalar > ¶ms) | 
|  | The capillary pressure at Swe = 1.0 also called end point capillary pressure. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | dpc_dswe (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The partial derivative of the capillary pressure w.r.t. the effective saturation according to van Genuchten. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | dswe_dpc (Scalar pc, const Params< Scalar > ¶ms) | 
|  | The partial derivative of the effective saturation to the capillary pressure according to van Genuchten. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | krw (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The relative permeability for the wetting phase of the medium implied by van Genuchten / Mualem parameterization. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | dkrw_dswe (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The derivative of the relative permeability for the wetting phase in regard to the wetting saturation of the medium implied by the van Genuchten parameterization. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | krn (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The relative permeability for the non-wetting phase of the medium implied by van Genuchten's parameterization. 
 | 
|  | 
| template<class Scalar> | 
| static Scalar | dkrn_dswe (Scalar swe, const Params< Scalar > ¶ms) | 
|  | The derivative of the relative permeability for the non-wetting phase in regard to the wetting saturation of the medium as implied by the van Genuchten parameterization. 
 | 
|  | 
◆ dkrn_dswe()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::dkrn_dswe | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
- Parameters
- 
  
    | swe | The mobile saturation of the wetting phase. |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ dkrw_dswe()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::dkrw_dswe | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
- Parameters
- 
  
    | swe | The mobile saturation of the wetting phase. |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ dpc_dswe()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::dpc_dswe | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
This is equivalent to     \(\mathrm{
\frac{\partial p_c}{\partial \overline{S}_w} =
-\frac{1}{\alpha} (\overline{S}_w^{-1/m} - 1)^{1/n - }
\overline{S}_w^{-1/m} / \overline{S}_w / m
}\)
- Parameters
- 
  
    | swe | Effective saturation of the wetting phase \(\mathrm{\overline{S}_w}\) |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if swe is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ dswe_dpc()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::dswe_dpc | ( | Scalar | pc, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
- Parameters
- 
  
    | pc | Capillary pressure \(\mathrm{p_C}\) in \(\mathrm{[Pa]}\) |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ endPointPc()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::endPointPc | ( | const Params< Scalar > & | params | ) |  |  | inlinestatic | 
 
- Parameters
- 
  
    | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
 
 
◆ krn()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::krn | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
- Parameters
- 
  
    | swe | The mobile saturation of the wetting phase. |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ krw()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::krw | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
- Parameters
- 
  
    | swe | The mobile saturation of the wetting phase. |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input. 
 
 
◆ makeParams()
template<class Scalar = double> 
  
  | 
        
          | static Params< Scalar > Dumux::FluidMatrix::VanGenuchten::makeParams | ( | const std::string & | paramGroup | ) |  |  | inlinestatic | 
 
- Note
- This will give you nice error messages if a mandatory parameter is missing 
 
 
◆ pc()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::pc | ( | Scalar | swe, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
Van Genuchten's empirical capillary pressure <-> saturation function is given by   \(\mathrm{
p_c = (\overline{S}_w^{-1/m} - 1)^{1/n}/\alpha
}\) 
- Parameters
- 
  
    | swe | Effective saturation of the wetting phase \(\mathrm{\overline{S}_w}\) |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Note
- Instead of undefined behaviour if swe is not in the valid range, we return a valid number, by clamping the input. Note that pc(swe = 0.0) = inf, have a look at RegularizedVanGenuchten if this is a problem. 
 
 
◆ swe()
template<class Scalar> 
  
  | 
        
          | static Scalar Dumux::FluidMatrix::VanGenuchten::swe | ( | Scalar | pc, |  
          |  |  | const Params< Scalar > & | params ) |  | inlinestatic | 
 
This is the inverse of the capillary pressure-saturation curve:   \(\mathrm{
\overline{S}_w = {p_c}^{-1} = ((\alpha p_c)^n + 1)^{-m}
}\)
- Parameters
- 
  
    | pc | Capillary pressure \(\mathrm{p_c}\) in \(\mathrm{[Pa]}\) |  | params | A container object that is populated with the appropriate coefficients for the respective law. |  
 
- Returns
- The effective saturation of the wetting phase \(\mathrm{\overline{S}_w}\) 
- Note
- Instead of undefined behaviour if pc is not in the valid range, we return a valid number, i.e. sw(pc < 0.0) = 0.0, by clamping the input to the physical bounds. 
 
 
The documentation for this class was generated from the following file: