diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp index 61f6957c3d2b4c90fe668ea0609ba783eb63d049..5fd34bc7eb693997f809eebf4fbd3b7c2ea9afd8 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp @@ -142,8 +142,8 @@ std::unique_ptr<RelativePermeability> createRelativePermeabilityModel( else { OGS_FATAL( - "The capillary pressure mode %s is unavailable.\n" - "The available types are:" + "The capillary pressure model %s is unavailable.\n" + "The available models are:" "\n\tWettingPhaseVanGenuchten," "\n\tNonWettingPhaseVanGenuchten," "\n\tWettingPhaseBrookCoreyOilGas," diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.cpp index 4484dde1fe1fe2d5f656bbb090a33b149479875b..d0ed9396204755be745c51702c3c131603a950a7 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.cpp @@ -24,7 +24,7 @@ double NonWettingPhaseBrookCoreyOilGas::getValue( const double saturation_w) const { const double S = MathLib::limitValueInInterval( - saturation_w, _Sr + _perturbation, _Smax - _perturbation); + saturation_w, _Sr + _minor_offset, _Smax - _minor_offset); const double Se = (S - _Sr) / (_Smax - _Sr); const double Krel = std::pow(1.0 - Se, 2) * (1.0 - std::pow(Se, 1.0 + 2.0 / _mm)); diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h index caf902b7f55570a88126a2bda5572460e7ad9d39..78b0f2a69c098aafa814d09b9f917a71ee003a9d 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h @@ -52,14 +52,6 @@ public: { } - NonWettingPhaseBrookCoreyOilGas(const NonWettingPhaseBrookCoreyOilGas& orig) - : _Sr(orig._Sr), - _Smax(orig._Smax), - _mm(orig._mm), - _Krel_min(orig._Krel_min) - { - } - /// Get model name. std::string getName() const override { @@ -75,8 +67,6 @@ private: const double _Smax; ///< Maximum saturation of wetting phase., 1-Sn_max const double _mm; ///< Exponent (>=1.0), n=1/(1-mm). const double _Krel_min; ///< Minimum relative permeability - - const double _perturbation = std::numeric_limits<double>::epsilon(); }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.cpp index 5d90a25bd7daa6b7b4d139b90a1faa0595e6d773..8fe157012660c2715a9638c9b52c7ca317819188 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.cpp @@ -23,7 +23,7 @@ namespace PorousMedium double NonWettingPhaseVanGenuchten::getValue(const double saturation_w) const { const double S = MathLib::limitValueInInterval( - saturation_w, _Sr + _perturbation, _Smax - _perturbation); + saturation_w, _Sr + _minor_offset, _Smax - _minor_offset); const double Se = (S - _Sr) / (_Smax - _Sr); const double Krel = std::pow(1.0 - Se, 1.0 / 3.0) * std::pow(1.0 - std::pow(Se, 1.0 / _mm), 2.0 * _mm); diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h index e3aaac9251c37f98c697e662a0209c4a1ec8936d..0314fb22350c258aa8024d4ac8768a3048607c4a 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h @@ -54,14 +54,6 @@ public: { } - NonWettingPhaseVanGenuchten(const NonWettingPhaseVanGenuchten& orig) - : _Sr(orig._Sr), - _Smax(orig._Smax), - _mm(orig._mm), - _Krel_min(orig._Krel_min) - { - } - /// Get model name. std::string getName() const override { diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h index 366237ce70978895f532ea5e962985c52a2534c9..73dd98264149ded1faa0ceea001f2f719754a021 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h @@ -30,6 +30,15 @@ public: /// Get relative permeability value. /// \param saturation Non-wetting phase saturation virtual double getValue(const double saturation) const = 0; + +protected: + /** A small number for an offset: + * 1. to set the bound of S, the saturation, such that + * S in [_Sr+_minor_offset, _Smax-_minor_offset] + * 2. to set the bound of Pc, the capillary pressure, such that + * Pc in [_minor_offset, _Pc_max] + */ + const double _minor_offset = std::numeric_limits<double>::epsilon(); }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/ReletivePermeabilityCurve.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/ReletivePermeabilityCurve.h index 2dea3c144bbedd2e69eea15ad972fe7165864ba6..aeffb1797490a3d359dbdec3b5f91a2c07315925 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/ReletivePermeabilityCurve.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/ReletivePermeabilityCurve.h @@ -34,13 +34,6 @@ public: { } - ReletivePermeabilityCurve(ReletivePermeabilityCurve& orig) - : _Sr(orig._Sr), - _Smax(orig._Smax), - _curve_data(std::move(orig._curve_data)) - { - } - /// Get model name. std::string getName() const override { @@ -51,7 +44,7 @@ public: double getValue(const double saturation) const override { const double S = MathLib::limitValueInInterval( - saturation, _Sr + _perturbation, _Smax - _perturbation); + saturation, _Sr + _minor_offset, _Smax - _minor_offset); return _curve_data->getValue(S); } @@ -61,8 +54,6 @@ private: const double _Smax; ///< Maximum saturation. std::unique_ptr<MathLib::PiecewiseLinearInterpolation> _curve_data; - - const double _perturbation = std::numeric_limits<double>::epsilon(); }; } // end namespace } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.cpp index cd747e2091a007c930675ab58f5e5f743c0b8cad..1b8703c6775ad796645c74d4376dd5306bb2a1ea 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.cpp @@ -23,7 +23,7 @@ namespace PorousMedium double WettingPhaseBrookCoreyOilGas::getValue(const double saturation) const { const double S = MathLib::limitValueInInterval( - saturation, _Sr + _perturbation, _Smax - _perturbation); + saturation, _Sr + _minor_offset, _Smax - _minor_offset); const double Se = (S - _Sr) / (_Smax - _Sr); const double Krel = std::pow(Se, 3.0 + 2.0 / _mm); return Krel < _Krel_min ? _Krel_min : Krel; diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h index eb680a3811900f9f0a2fdcd81f5aff025e1ec3b6..f9732c43bd084526c98487977f6b063e1215055e 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h @@ -52,14 +52,6 @@ public: { } - WettingPhaseBrookCoreyOilGas(const WettingPhaseBrookCoreyOilGas& orig) - : _Sr(orig._Sr), - _Smax(orig._Smax), - _mm(orig._mm), - _Krel_min(orig._Krel_min) - { - } - /// Get model name. std::string getName() const override { @@ -74,8 +66,6 @@ private: const double _Smax; ///< Maximum saturation. const double _mm; ///< Exponent (>=1.0), n=1/(1-mm). const double _Krel_min; ///< Minimum relative permeability - - const double _perturbation = std::numeric_limits<double>::epsilon(); }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.cpp index 5f2e9859ac665ebafe36c69fa972c1e2ae84d410..56532c924d8b00583760e8be7174d2477f8d399e 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.cpp @@ -23,7 +23,7 @@ namespace PorousMedium double WettingPhaseVanGenuchten::getValue(const double saturation) const { const double S = MathLib::limitValueInInterval( - saturation, _Sr + _perturbation, _Smax - _perturbation); + saturation, _Sr + _minor_offset, _Smax - _minor_offset); const double Se = (S - _Sr) / (_Smax - _Sr); const double Krel = std::sqrt(Se) * diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h index 2534e945fa955a156403984497cb8ac1a1851ebe..db0a495845aa8e4252c0fbb70a919c685989eb50 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h @@ -55,14 +55,6 @@ public: { } - WettingPhaseVanGenuchten(const WettingPhaseVanGenuchten& orig) - : _Sr(orig._Sr), - _Smax(orig._Smax), - _mm(orig._mm), - _Krel_min(orig._Krel_min) - { - } - /// Get model name. std::string getName() const override { @@ -77,8 +69,6 @@ private: const double _Smax; ///< Maximum saturation. const double _mm; ///< Exponent (<=1.0), n=1/(1-mm). const double _Krel_min; ///< Minimum relative permeability - - const double _perturbation = std::numeric_limits<double>::epsilon(); }; } // end namespace