diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp index 5db06df5cec05159ef2b7303661cb48587560a79..691b71b16470bb60b5164239924c634c03ce7ffe 100644 --- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp +++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp @@ -88,6 +88,13 @@ double IterationNumberBasedTimeStepping::findMultiplier( multiplier = _multiplier_vector[i]; } } + + if (!_accepted && (multiplier >= 1.0)) + { + return *std::min_element(_multiplier_vector.begin(), + _multiplier_vector.end()); + } + return multiplier; } @@ -108,7 +115,7 @@ double IterationNumberBasedTimeStepping::getNextTimeStepSize() const dt = _ts_prev.dt() * findMultiplier(_iter_times); } - dt = std::min(std::max(dt, _min_dt), _max_dt); + dt = std::clamp(dt, _min_dt, _max_dt); double const t_next = dt + _ts_prev.current(); if (t_next > end())