Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation. More...
#include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh>
Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation.
This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa.
In order to avoid very steep gradients the marginal values are "regularized". This means that in stead of following the curve of the material law in these regions, some linear approximation is used. Doing this is not worse than following the material law. E.g. for very low wetting phase values the material laws predict infinite values for \(\mathrm{p_c}\) which is completely unphysical. In case of very high wetting phase saturations the difference between regularized and "pure" material law is not big.
Regularizing has the additional benefit of being numerically friendly: Newton's method does not like infinite gradients.
The implementation is accomplished as follows:
An example of the regularization of the capillary pressure curve is shown below:
Public Types | |
using | Params = ParamsT |
using | Scalar = typename Params::Scalar |
Static Public Member Functions | |
static Scalar | pc (const Params ¶ms, Scalar swe) |
A regularized van Genuchten capillary pressure-saturation curve. More... | |
static Scalar | sw (const Params ¶ms, Scalar pc) |
A regularized van Genuchten saturation-capillary pressure curve. 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) |
A regularized version of the partial derivative of the \(\mathrm{p_c(\overline{S}_w)}\) w.r.t. effective saturation according to van Genuchten. More... | |
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. More... | |
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. More... | |
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. More... | |
static Scalar | krn (const Params ¶ms, Scalar swe) |
Regularized version of the relative permeability for the nonwetting phase of the medium implied by the van Genuchten parameterization. More... | |
static Scalar | dkrn_dswe (const Params ¶ms, Scalar swe) |
A regularized version of 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... | |
using Dumux::RegularizedVanGenuchten< ScalarT, ParamsT >::Params = ParamsT |
using Dumux::RegularizedVanGenuchten< ScalarT, ParamsT >::Scalar = typename Params::Scalar |
|
inlinestatic |
A regularized version of 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.
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. |
|
inlinestatic |
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.
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. |
|
inlinestatic |
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:
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 }\)
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. |
|
inlinestatic |
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:
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:
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. |
|
inlinestatic |
The capillary pressure at Swe = 1.0 also called end point capillary pressure.
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. |
|
inlinestatic |
Regularized version of the relative permeability for the nonwetting phase of the medium implied by the van Genuchten parameterization.
regularized part:
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. |
|
inlinestatic |
Regularized version of the relative permeability for the wetting phase of the medium implied by the van Genuchten parameterization.
regularized part:
For not-regularized part:
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. |
|
inlinestatic |
A regularized van Genuchten capillary pressure-saturation curve.
regularized part:
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 }\)
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. |
|
inlinestatic |
A regularized van Genuchten saturation-capillary pressure curve.
regularized part:
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} }\)
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. |