3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Static Public Member Functions | List of all members
Dumux::VanGenuchten< ScalarT, ParamsT > Class Template Reference

Implementation of the van Genuchten capillary pressure <-> saturation relation. This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa. More...

#include <dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh>

Description

template<class ScalarT, class ParamsT = VanGenuchtenParams<ScalarT>>
class Dumux::VanGenuchten< ScalarT, ParamsT >

Implementation of the van Genuchten capillary pressure <-> saturation relation. This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa.

For general info: EffToAbsLaw

Note
Capillary pressure model from van Genuchten (1980), relative permeability model from Mualem (1976)
See also
VanGenuchtenParams

Public Types

using Params = ParamsT
 
using Scalar = typename Params::Scalar
 

Static Public Member Functions

static Scalar pc (const Params &params, Scalar swe)
 The capillary pressure-saturation curve according to van Genuchten. More...
 
static Scalar sw (const Params &params, Scalar pc)
 The saturation-capillary pressure curve according to van Genuchten. More...
 
static Scalar endPointPc (const Params &params)
 The capillary pressure at Swe = 1.0 also called end point capillary pressure. More...
 
static Scalar dpc_dswe (const Params &params, Scalar swe)
 The partial derivative of the capillary pressure w.r.t. the effective saturation according to van Genuchten. More...
 
static Scalar dswe_dpc (const Params &params, Scalar pc)
 The partial derivative of the effective saturation to the capillary pressure according to van Genuchten. More...
 
static Scalar krw (const Params &params, Scalar swe)
 The relative permeability for the wetting phase of the medium implied by van Genuchten / Mualem parameterization. More...
 
static Scalar dkrw_dswe (const Params &params, Scalar swe)
 The derivative of the relative permeability for the wetting phase in regard to the wetting saturation of the medium implied by the van Genuchten / Mualem parameterization. More...
 
static Scalar krn (const Params &params, Scalar swe)
 The relative permeability for the non-wetting phase of the medium implied by van Genuchten's parameterization. More...
 
static Scalar dkrn_dswe (const Params &params, Scalar swe)
 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. More...
 

Member Typedef Documentation

◆ Params

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
using Dumux::VanGenuchten< ScalarT, ParamsT >::Params = ParamsT

◆ Scalar

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
using Dumux::VanGenuchten< ScalarT, ParamsT >::Scalar = typename Params::Scalar

Member Function Documentation

◆ dkrn_dswe()

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::dkrn_dswe ( const Params params,
Scalar  swe 
)
inlinestatic

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.

Parameters
sweThe mobile saturation of the wetting phase.
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
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 ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::dkrw_dswe ( const Params params,
Scalar  swe 
)
inlinestatic

The derivative of the relative permeability for the wetting phase in regard to the wetting saturation of the medium implied by the van Genuchten / Mualem parameterization.

Parameters
sweThe mobile saturation of the wetting phase.
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
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 ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::dpc_dswe ( const Params params,
Scalar  swe 
)
inlinestatic

The partial derivative of the capillary pressure w.r.t. the effective saturation according to van Genuchten.

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
sweEffective saturation of the wetting phase \(\mathrm{\overline{S}_w}\)
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
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 ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::dswe_dpc ( const Params params,
Scalar  pc 
)
inlinestatic

The partial derivative of the effective saturation to the capillary pressure according to van Genuchten.

Parameters
pcCapillary pressure \(\mathrm{p_C}\) in \(\mathrm{[Pa]}\)
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
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 ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::endPointPc ( const Params params)
inlinestatic

The capillary pressure at Swe = 1.0 also called end point capillary pressure.

Parameters
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.

◆ krn()

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::krn ( const Params params,
Scalar  swe 
)
inlinestatic

The relative permeability for the non-wetting phase of the medium implied by van Genuchten's parameterization.

Parameters
sweThe mobile saturation of the wetting phase.
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
Note
Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input.
See e.g. Dury, Fischer, Schulin (1999) for application of Mualem model to non-wetting rel. perm.

◆ krw()

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::krw ( const Params params,
Scalar  swe 
)
inlinestatic

The relative permeability for the wetting phase of the medium implied by van Genuchten / Mualem parameterization.

Parameters
sweThe mobile saturation of the wetting phase.
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
Note
Instead of undefined behaviour if pc is not in the valid range, we return a valid number, by clamping the input.

◆ pc()

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::pc ( const Params params,
Scalar  swe 
)
inlinestatic

The capillary pressure-saturation curve according to van Genuchten.

Van Genuchten's empirical capillary pressure <-> saturation function is given by \(\mathrm{ p_C = (\overline{S}_w^{-1/m} - 1)^{1/n}/\alpha }\)

Parameters
sweEffective saturation of the wetting phase \(\mathrm{\overline{S}_w}\)
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
Note
Instead of undefined behaviour if swe is not in the valid range, we return a valid number, by clamping the input. Note that for pc(swe = 0.0) = inf, have a look at RegularizedVanGenuchten if this is a problem.

◆ sw()

template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
static Scalar Dumux::VanGenuchten< ScalarT, ParamsT >::sw ( const Params params,
Scalar  pc 
)
inlinestatic

The saturation-capillary pressure curve according to van Genuchten.

This is the inverse of the capillary pressure-saturation curve: \(\mathrm{ \overline{S}_w = {p_C}^{-1} = ((\alpha p_C)^n + 1)^{-m} }\)

Parameters
pcCapillary pressure \(\mathrm{p_C}\) in \(\mathrm{[Pa]}\)
paramsA container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.
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: