From f25d8cc29e774dd5ded084da922c2659d66baae7 Mon Sep 17 00:00:00 2001 From: Wenqing Wang <wenqing.wang@ufz.de> Date: Fri, 4 Nov 2016 16:28:56 +0100 Subject: [PATCH] [Unsat] Removed copy constructor and moved a member to base class. --- .../CreateRelativePermeabilityModel.cpp | 4 ++-- .../NonWettingPhaseBrookCoreyOilGas.cpp | 2 +- .../NonWettingPhaseBrookCoreyOilGas.h | 10 ---------- .../NonWettingPhaseVanGenuchten.cpp | 2 +- .../NonWettingPhaseVanGenuchten.h | 8 -------- .../RelativePermeability/RelativePermeability.h | 9 +++++++++ .../RelativePermeability/ReletivePermeabilityCurve.h | 11 +---------- .../WettingPhaseBrookCoreyOilGas.cpp | 2 +- .../WettingPhaseBrookCoreyOilGas.h | 10 ---------- .../RelativePermeability/WettingPhaseVanGenuchten.cpp | 2 +- .../RelativePermeability/WettingPhaseVanGenuchten.h | 10 ---------- 11 files changed, 16 insertions(+), 54 deletions(-) diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp index 61f6957c3d2..5fd34bc7eb6 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 4484dde1fe1..d0ed9396204 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 caf902b7f55..78b0f2a69c0 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 5d90a25bd7d..8fe15701266 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 e3aaac9251c..0314fb22350 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 366237ce709..73dd9826414 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 2dea3c144bb..aeffb179749 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 cd747e2091a..1b8703c6775 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 eb680a38119..f9732c43bd0 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 5f2e9859ac6..56532c924d8 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 2534e945fa9..db0a495845a 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 -- GitLab