diff --git a/ProcessLib/UncoupledProcessesTimeLoop.cpp b/ProcessLib/UncoupledProcessesTimeLoop.cpp index 938da3740f2943df3069620656c200495682badc..adee1fbaa5e547334c0e55f0dfcc207358253089 100644 --- a/ProcessLib/UncoupledProcessesTimeLoop.cpp +++ b/ProcessLib/UncoupledProcessesTimeLoop.cpp @@ -328,12 +328,6 @@ double UncoupledProcessesTimeLoop::computeTimeStepping( { auto& ppd = *_per_process_data[i]; const auto& timestepper = ppd.timestepper; - if (t > timestepper->end()) - { - // skip the process that already reaches the ending time. - ppd.skip_time_stepping = true; - continue; - } auto& time_disc = ppd.time_disc; auto const& x = *_process_solutions[i]; @@ -431,7 +425,8 @@ double UncoupledProcessesTimeLoop::computeTimeStepping( } else { - if (t < _end_time) + if (t < _end_time || std::abs(t - _end_time) < + std::numeric_limits<double>::epsilon()) { WARN( "Time step %d was rejected %d times " @@ -451,7 +446,8 @@ double UncoupledProcessesTimeLoop::computeTimeStepping( } else { - if (t < _end_time) + if (t < _end_time || std::abs(t - _end_time) < + std::numeric_limits<double>::epsilon()) { t -= prev_dt; rejected_steps++;