OGS
CapillaryPressureRegularizedVanGenuchten.h
Go to the documentation of this file.
1
12#pragma once
13
15
16namespace MaterialPropertyLib
17{
18class Medium;
19
32{
33public:
35 double const residual_liquid_saturation,
36 double const maximum_liquid_saturation,
37 double const exponent,
38 double const p_b);
39
40 void checkScale() const override
41 {
42 if (!std::holds_alternative<Medium*>(scale_))
43 {
45 "The property 'CapillaryPressureRegularizedVanGenuchten' is "
46 "implemented on the 'media' scale only.");
47 }
48 }
49
51 PropertyDataType value(VariableArray const& variable_array,
53 double const t,
54 double const dt) const override;
55
57 PropertyDataType dValue(VariableArray const& variable_array,
58 Variable const variable,
60 double const t,
61 double const dt) const override;
62
63private:
64 double const Sg_r_;
65 double const Sg_max_;
66 double const m_;
69 double const p_b_;
71 static constexpr double xi_ = 1e-5;
72
73 double const PcBarvGSg_Sg_max_;
74 double const dPcdSvGBarSg_max_;
75
78 double getPcBarvGSg(double const Sg) const;
81 double getSBar(double const Sg) const;
84 double getPcvGSg(double const Sg) const;
86 double getdPcdSvGBar(double const Sg) const;
88 double getdPcdSvG(double const Sg) const;
89};
90
91} // namespace MaterialPropertyLib
#define OGS_FATAL(...)
Definition Error.h:26
This class handles the computation of the capillary pressure, , with the capillary pressure regulariz...
static constexpr double xi_
parameter in regularized van Genuchten model
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
CapillaryPressureRegularizedVanGenuchten(double const residual_liquid_saturation, double const maximum_liquid_saturation, double const exponent, double const p_b)
virtual PropertyDataType value() const
Definition Property.cpp:76
std::variant< Medium *, Phase *, Component * > scale_
Definition Property.h:297
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType
Definition Property.h:31