From 117e8c6466fc2c7ead1c69ec6d6bcdc334e56f3b Mon Sep 17 00:00:00 2001
From: Norbert Grunwald <Norbert.Grunwald@ufz.de>
Date: Mon, 9 Sep 2019 11:59:04 +0200
Subject: [PATCH] removed small offsets of capillary pressure

---
 .../MPL/Properties/SaturationBrooksCorey.cpp  | 24 ++++++++-----------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/MaterialLib/MPL/Properties/SaturationBrooksCorey.cpp b/MaterialLib/MPL/Properties/SaturationBrooksCorey.cpp
index 9f6d0121bcb..70fc0e7f318 100644
--- a/MaterialLib/MPL/Properties/SaturationBrooksCorey.cpp
+++ b/MaterialLib/MPL/Properties/SaturationBrooksCorey.cpp
@@ -37,10 +37,8 @@ PropertyDataType SaturationBrooksCorey::value(
     ParameterLib::SpatialPosition const& /*pos*/,
     double const /*t*/) const
 {
-    const double p_cap = std::max(
-        std::numeric_limits<double>::min(),
-        std::get<double>(
-            variable_array[static_cast<int>(Variable::capillary_pressure)]));
+    const double p_cap = std::get<double>(
+        variable_array[static_cast<int>(Variable::capillary_pressure)]);
 
     const double s_L_res = _residual_liquid_saturation;
     const double s_L_max = 1.0 - _residual_gas_saturation;
@@ -51,10 +49,7 @@ PropertyDataType SaturationBrooksCorey::value(
         return s_L_max;
 
     const double s_eff = std::pow(p_b / p_cap, lambda);
-    const double s = s_eff * (s_L_max - s_L_res) + s_L_res;
-
-    return MathLib::limitValueInInterval(s, s_L_res + _minor_offset,
-                                         s_L_max - _minor_offset);
+    return s_eff * (s_L_max - s_L_res) + s_L_res;
 }
 
 PropertyDataType SaturationBrooksCorey::dValue(
@@ -67,10 +62,11 @@ PropertyDataType SaturationBrooksCorey::dValue(
            " derivatives with respect to capillary pressure only.");
 
     const double p_b = _entry_pressure;
-    const double p_cap = std::max(
-        p_b,
-        std::get<double>(
-            variable_array[static_cast<int>(Variable::capillary_pressure)]));
+    const double p_cap = std::get<double>(
+        variable_array[static_cast<int>(Variable::capillary_pressure)]);
+
+    if (p_cap <= p_b)
+        return 0.;
 
     auto const s_L = _medium->property(PropertyType::saturation)
                          .template value<double>(variable_array, pos, t);
@@ -82,8 +78,8 @@ PropertyDataType SaturationBrooksCorey::dValue(
 
 PropertyDataType SaturationBrooksCorey::d2Value(
     VariableArray const& variable_array, Variable const primary_variable1,
-    Variable const primary_variable2, ParameterLib::SpatialPosition const& /*pos*/,
-    double const /*t*/) const
+    Variable const primary_variable2,
+    ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/) const
 {
     (void)primary_variable1;
     (void)primary_variable2;
-- 
GitLab