Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation as a function of temperature.
More...
#include <dumux/material/fluidmatrixinteractions/2p/vangenuchtenoftemperature.hh>
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
class Dumux::RegularizedVanGenuchtenOfTemperature< ScalarT, ParamsT >
Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation as a function of temperature.
Everything except the capillary pressure is taken from the parent, i.e. Regularized VanGenuchten.
|
| using | Params = ParamsT |
| using | Scalar = typename Params::Scalar |
|
| static Scalar | pc (const Params ¶ms, const Scalar &Swe, const Scalar &temperature) |
| | A regularized van Genuchten capillary pressure-saturation curve as a function of temperature.
|
| static Scalar | pc (const Params ¶ms, Scalar swe) |
| | A regularized van Genuchten capillary pressure-saturation curve.
|
| static Scalar | sw (const Params ¶ms, Scalar pc) |
| | A regularized van Genuchten saturation-capillary pressure curve.
|
| static Scalar | endPointPc (const Params ¶ms) |
| | The capillary pressure at Swe = 1.0 also called end point capillary pressure.
|
| static Scalar | dpc_dswe (const Params ¶ms, Scalar swe) |
| | A regularized version of the partial derivative of the \(\mathrm{p_c(\overline{S}_w)}\) w.r.t. effective saturation according to van Genuchten.
|
| static Scalar | dswe_dpc (const Params ¶ms, Scalar pc) |
| | A regularized version of the partial derivative of the \(\mathrm{\overline{S}_w(p_c)}\) w.r.t. cap.pressure according to van Genuchten.
|
| static Scalar | krw (const Params ¶ms, Scalar swe) |
| | Regularized version of the relative permeability for the wetting phase of the medium implied by the van Genuchten parameterization.
|
| static Scalar | dkrw_dswe (const Params ¶ms, Scalar swe) |
| | A regularized version of 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.
|
| static Scalar | krn (const Params ¶ms, Scalar swe) |
| | Regularized version of the relative permeability for the non-wetting phase of the medium implied by the van Genuchten parameterization.
|
| static Scalar | dkrn_dswe (const Params ¶ms, Scalar swe) |
| | A regularized version of 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.
|
◆ Params
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
◆ Scalar
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
◆ dkrn_dswe()
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
A regularized version of 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
-
| 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 = RegularizedVanGenuchtenParams<ScalarT>>
A regularized version of 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.
- 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 = RegularizedVanGenuchtenParams<ScalarT>>
A regularized version of the partial derivative of the \(\mathrm{p_c(\overline{S}_w)}\) w.r.t. effective saturation according to van Genuchten.
regularized part:
- low saturation: use the slope of the regularization point (i.e. no kink).
high saturation: connect the high regularization point with \(\mathrm{\overline{S}_w =1}\) by a straight line and use that slope (yes, there is a kink :-( ).
For not-regularized part:
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 = RegularizedVanGenuchtenParams<ScalarT>>
A regularized version of the partial derivative of the \(\mathrm{\overline{S}_w(p_c)}\) w.r.t. cap.pressure according to van Genuchten.
regularized part:
- low saturation: use the slope of the regularization point (i.e. no kink).
high saturation: connect the high regularization point with \(\mathrm{\overline{S}_w =1}\) by a straight line and use that slope (yes, there is a kink :-( ).
For not-regularized part:
- 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 = RegularizedVanGenuchtenParams<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 = RegularizedVanGenuchtenParams<ScalarT>>
Regularized version of the relative permeability for the non-wetting phase of the medium implied by the van Genuchten parameterization.
regularized part:
- below \(\mathrm{\overline{S}_w =0}\): set relative permeability to zero
- above \(\mathrm{\overline{S}_w =1}\): set relative permeability to one
- for \(\mathrm{0 \leq \overline{S}_w \leq 0.05}\): use a spline as interpolation
- 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 non-wetting rel. perm.
◆ krw()
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
Regularized version of the relative permeability for the wetting phase of the medium implied by the van Genuchten parameterization.
regularized part:
- below \(\mathrm{\overline{S}_w =0}\): set relative permeability to zero
- above \(\mathrm{\overline{S}_w =1}\): set relative permeability to one
- between \(\mathrm{0.95 \leq \overline{S}_w \leq 1}\): use a spline as interpolation
For not-regularized part:
- 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() [1/2]
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
A regularized van Genuchten capillary pressure-saturation curve.
regularized part:
- low saturation: extend the \(\mathrm{p_c(S_w)}\) curve with the slope at the regularization point (i.e. no kink).
- high saturation: connect the high regularization point with \(\mathrm{\overline{S}_w =1}\) by a straight line (yes, there is a kink :-( ).
For not-regularized part:
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.
◆ pc() [2/2]
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
A regularized van Genuchten capillary pressure-saturation curve as a function of temperature.
The standard regularized version of the van Genuchten law is used and subsequantially scaled by some more or less empirical fit: WRR, Grant(2003) --> see range of validity (==fit range) in the paper ! <–
- 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. |
| temperature | The temperature in \(\mathrm{[K]}\) |
◆ sw()
template<class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT>>
A regularized van Genuchten saturation-capillary pressure curve.
regularized part:
- low saturation: extend the \(\mathrm{p_c(S_w)}\) curve with the slope at the regularization point (i.e. no kink).
- high saturation: connect the high regularization point with \(\mathrm{\overline{S}_w =1}\) by a straight line (yes, there is a kink :-( ).
The according quantities are obtained by exploiting theorem of intersecting lines.
For not-regularized part:
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: