From a25e4e17af51e5698afb428f2054f6f4d977b04f Mon Sep 17 00:00:00 2001 From: Samuel Scherrer <samuel.scherrer@posteo.de> Date: Thu, 3 Sep 2020 11:36:37 +0200 Subject: [PATCH] [common] fix segment index issue in spline extrapolation --- dumux/common/splinecommon_.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dumux/common/splinecommon_.hh b/dumux/common/splinecommon_.hh index 2a1529f971..691bf1efa7 100644 --- a/dumux/common/splinecommon_.hh +++ b/dumux/common/splinecommon_.hh @@ -145,12 +145,12 @@ public: // handle extrapolation if (extrapolate) { if (x < xMin()) { - Scalar m = evalDerivative(xMin(), /*segmentIdx=*/0); + Scalar m = evalDerivative_(xMin(), /*segmentIdx=*/0); Scalar y0 = y_(0); return y0 + m*(x - xMin()); } else if (x > xMax()) { - Scalar m = evalDerivative(xMax(), /*segmentIdx=*/numSamples_()-1); + Scalar m = evalDerivative_(xMax(), /*segmentIdx=*/numSamples_()-2); Scalar y0 = y_(numSamples_()-1); return y0 + m*(x - xMax()); } @@ -179,7 +179,7 @@ public: if (Dune::FloatCmp::le(x, xMin())) return evalDerivative_(xMin(), 0); else if (Dune::FloatCmp::ge(x, xMax())) - return evalDerivative_(xMax(), numSamples_() - 1); + return evalDerivative_(xMax(), numSamples_() - 2); } return evalDerivative_(x, segmentIdx_(x)); -- GitLab