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>
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
|
using | Params = ParamsT |
|
using | Scalar = typename Params::Scalar |
|
|
static Scalar | pc (const Params ¶ms, Scalar swe) |
| The capillary pressure-saturation curve according to van Genuchten. More...
|
|
static Scalar | sw (const Params ¶ms, Scalar pc) |
| The saturation-capillary pressure curve according to van Genuchten. More...
|
|
static Scalar | endPointPc (const Params ¶ms) |
| The capillary pressure at Swe = 1.0 also called end point capillary pressure. More...
|
|
static Scalar | dpc_dswe (const Params ¶ms, 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 ¶ms, Scalar pc) |
| The partial derivative of the effective saturation to the capillary pressure according to van Genuchten. More...
|
|
static Scalar | krw (const Params ¶ms, 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 ¶ms, 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 ¶ms, Scalar swe) |
| The relative permeability for the nonwetting phase of the medium implied by van Genuchten's parameterization. More...
|
|
static Scalar | dkrn_dswe (const Params ¶ms, Scalar swe) |
| The derivative of the relative permeability for the nonwetting phase in regard to the wetting saturation of the medium as implied by the van Genuchten parameterization. More...
|
|
◆ Params
template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
◆ Scalar
template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
◆ dkrn_dswe()
template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
The derivative of the relative permeability for the nonwetting phase in regard to the wetting saturation of the medium as implied by the van Genuchten parameterization.
- Parameters
-
swe | The mobile saturation of the wetting phase. |
params | A 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>>
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
-
swe | The mobile saturation of the wetting phase. |
params | A 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>>
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
-
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. 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>>
The partial derivative of the effective saturation to the capillary pressure according to van Genuchten.
- 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. 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>>
The capillary pressure at Swe = 1.0 also called end point capillary pressure.
- Parameters
-
params | A 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>>
The relative permeability for the nonwetting phase of the medium implied by van Genuchten's parameterization.
- Parameters
-
swe | The mobile saturation of the wetting phase. |
params | A 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 nonwetting rel. perm.
◆ krw()
template<class ScalarT , class ParamsT = VanGenuchtenParams<ScalarT>>
The relative permeability for the wetting phase of the medium implied by van Genuchten / Mualem parameterization.
- Parameters
-
swe | The mobile saturation of the wetting phase. |
params | A 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>>
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
-
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. 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>>
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
-
pc | Capillary pressure \(\mathrm{p_C}\) in \(\mathrm{[Pa]}\) |
params | A 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: