diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp index 252476d12254e46335ce5c40a79cea11f34a7b62..a6e63f2cb2296f2687cec8731f49815a0364d3db 100644 --- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp +++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp @@ -71,6 +71,10 @@ bool IterationNumberBasedTimeStepping::next(double const /*solution_error*/, else { ++_n_rejected_steps; + // time step was rejected, keep dt for the next dt computation. + _ts_prev = // essentially equal to _ts_prev.dt = _ts_current.dt. + TimeStep{_ts_prev.previous(), + _ts_prev.previous() + _ts_current.dt(), _ts_prev.steps()}; } // prepare the next time step info