From 94afa3e10ff10d647e5241635e2c235306a2fb59 Mon Sep 17 00:00:00 2001 From: Wenqing Wang <wenqing.wang@ufz.de> Date: Fri, 11 Nov 2016 16:47:23 +0100 Subject: [PATCH] [Unsat] Moved the two common members to the base class --- .../CreateRelativePermeabilityModel.cpp | 2 +- .../NonWettingPhaseBrookCoreyOilGas.h | 7 +------ .../NonWettingPhaseVanGenuchten.h | 7 +------ .../RelativePermeability/RelativePermeability.h | 12 ++++++++++++ .../RelativePermeability/RelativePermeabilityCurve.h | 7 ++----- .../WettingPhaseBrookCoreyOilGas.h | 8 +++----- .../RelativePermeability/WettingPhaseVanGenuchten.h | 8 +++----- 7 files changed, 23 insertions(+), 28 deletions(-) diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp index 95275cfe9a2..0f4cb0c7c80 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp @@ -84,7 +84,7 @@ std::unique_ptr<RelativePermeability> createNonWettingPhaseVanGenuchten( //! \ogs_file_param{material_property__porous_medium__porous_medium__relative_permeability__NonWettingPhaseVanGenuchten__m} const double m = config.getConfigParameter<double>("m"); - if (m < 0.|| m > 1.0) // m <= 1 + if (m < 0. || m > 1.0) // m <= 1 { OGS_FATAL( "The exponent parameter of NonWettingPhaseVanGenuchten relative\n" diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h index f9f24281ee2..50b500802f7 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseBrookCoreyOilGas.h @@ -46,8 +46,7 @@ public: */ NonWettingPhaseBrookCoreyOilGas(const double Snr, const double Snmax, const double m, const double krel_min) - : _saturation_r(1. - Snmax), - _saturation_max(1. - Snr), + : RelativePermeability(1. - Snmax, 1. - Snr), _mm(m), _krel_min(krel_min) { @@ -68,10 +67,6 @@ public: double getdValue(const double saturation_w) const override; private: - const double - _saturation_r; ///< Residual saturation of wetting phase, 1-Snmax. - const double - _saturation_max; ///< Maximum saturation of wetting phase, 1-Snr. const double _mm; ///< Exponent (>=1.0), n=1/(1-mm). const double _krel_min; ///< Minimum relative permeability }; diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h index 31568d4fae0..ddc45771b90 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/NonWettingPhaseVanGenuchten.h @@ -48,8 +48,7 @@ public: */ NonWettingPhaseVanGenuchten(const double Snr, const double Snmax, const double m, const double krel_min) - : _saturation_r(1. - Snmax), - _saturation_max(1. - Snr), + : RelativePermeability(1. - Snmax, 1. - Snr), _mm(m), _krel_min(krel_min) { @@ -70,10 +69,6 @@ public: double getdValue(const double saturation_w) const override; private: - const double - _saturation_r; ///< Residual saturation of wetting phase, 1-Snmax. - const double - _saturation_max; ///< Maximum saturation of wetting phase, 1-Snr. const double _mm; ///< Exponent (<=1.0), n=1/(1-mm). const double _krel_min; ///< Minimum relative permeability }; diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h index d0028b6beea..243b945a94c 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h @@ -23,6 +23,15 @@ namespace PorousMedium class RelativePermeability { public: + /** + * @param Sr Residual saturation. + * @param Smax Maximum saturation. + */ + RelativePermeability(const double Sr, const double Smax) + : _saturation_r(Sr), _saturation_max(Smax) + { + } + virtual ~RelativePermeability() = default; /// Get model name. @@ -41,6 +50,9 @@ protected: * that S in [Sr+_minor_offset, Smax-_minor_offset]. */ const double _minor_offset = std::numeric_limits<double>::epsilon(); + + const double _saturation_r; ///< Residual saturation. + const double _saturation_max; ///< Maximum saturation. }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeabilityCurve.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeabilityCurve.h index 502a528e5ab..b59b2249011 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeabilityCurve.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeabilityCurve.h @@ -28,8 +28,8 @@ class RelativePermeabilityCurve final : public RelativePermeability public: RelativePermeabilityCurve( std::unique_ptr<MathLib::PiecewiseLinearInterpolation>& curve_data) - : _saturation_r(curve_data->getSupportMin()), - _saturation_max(curve_data->getSupportMax()), + : RelativePermeability(curve_data->getSupportMin(), + curve_data->getSupportMax()), _curve_data(std::move(curve_data)) { } @@ -62,9 +62,6 @@ public: } private: - const double _saturation_r; ///< Residual saturation. - const double _saturation_max; ///< Maximum saturation. - std::unique_ptr<MathLib::PiecewiseLinearInterpolation> _curve_data; }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h index 99d09d2d9c4..c2e62f173c6 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseBrookCoreyOilGas.h @@ -43,7 +43,7 @@ public: */ WettingPhaseBrookCoreyOilGas(const double Sr, const double Smax, const double m, const double krel_min) - : _saturation_r(Sr), _saturation_max(Smax), _mm(m), _krel_min(krel_min) + : RelativePermeability(Sr, Smax), _mm(m), _krel_min(krel_min) { } @@ -61,10 +61,8 @@ public: double getdValue(const double saturation) const override; private: - const double _saturation_r; ///< Residual saturation. - const double _saturation_max; ///< Maximum saturation. - const double _mm; ///< Exponent (>=1.0), n=1/(1-mm). - const double _krel_min; ///< Minimum relative permeability + const double _mm; ///< Exponent (>=1.0), n=1/(1-mm). + const double _krel_min; ///< Minimum relative permeability }; } // end namespace diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h index 3dec39d367d..3571ab7c4f8 100644 --- a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h +++ b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/WettingPhaseVanGenuchten.h @@ -46,7 +46,7 @@ public: */ WettingPhaseVanGenuchten(const double Sr, const double Smax, const double m, const double krel_min) - : _saturation_r(Sr), _saturation_max(Smax), _mm(m), _krel_min(krel_min) + : RelativePermeability(Sr, Smax), _mm(m), _krel_min(krel_min) { } @@ -64,10 +64,8 @@ public: double getdValue(const double saturation) const override; private: - const double _saturation_r; ///< Residual saturation. - const double _saturation_max; ///< Maximum saturation. - const double _mm; ///< Exponent (<=1.0), n=1/(1-mm). - const double _krel_min; ///< Minimum relative permeability + const double _mm; ///< Exponent (<=1.0), n=1/(1-mm). + const double _krel_min; ///< Minimum relative permeability }; } // end namespace -- GitLab