diff --git a/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp b/MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/CreateRelativePermeabilityModel.cpp index 95275cfe9a274e6b888cdc07cd933838400fda34..0f4cb0c7c8068c9a755b685b003a6c531e21d061 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 f9f24281ee2312e1eb2442d39a0fddb9e9eb720c..50b500802f7e9e9163af9ee92d03434957fed82e 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 31568d4fae0f376f8cfdf8919e8d0f1f80f60958..ddc45771b904aa66d2871bd46cf9c88df6942e5a 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 d0028b6beea472e3eaef40386019621347d8f8c9..243b945a94c6136711aa36220260b2ddc491d05a 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 502a528e5ab84a87376c5c9fd971fc9a424568d4..b59b22490118044673b5a5aa4d2bbc28b24b5d88 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 99d09d2d9c4a412f9cec3250362d8b7cf0b829a6..c2e62f173c65f7ea52d54b84901464bbcc7576a6 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 3dec39d367d7950c6c200361221604c5a5fbad4f..3571ab7c4f8e332b5ca39512e29bab58cb498500 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