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. More...
|
|
template<class Scalar > |
static Scalar | pc (Scalar swe, const Params< Scalar > ¶ms) |
| The capillary pressure-saturation curve according to van Genuchten. More...
|
|
template<class Scalar > |
static Scalar | swe (Scalar pc, const Params< Scalar > ¶ms) |
| The saturation-capillary pressure curve according to van Genuchten. More...
|
|
template<class Scalar > |
static Scalar | endPointPc (const Params< Scalar > ¶ms) |
| The capillary pressure at Swe = 1.0 also called end point capillary pressure. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
◆ 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: