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