From 471909bd17b3bbc466782a40001723237386a1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz> Date: Mon, 21 Nov 2016 16:36:15 +0100 Subject: [PATCH] Ignore very small time steps at the end of simulation --- src/TNL/Solvers/PDE/SemiImplicitTimeStepper_impl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TNL/Solvers/PDE/SemiImplicitTimeStepper_impl.h b/src/TNL/Solvers/PDE/SemiImplicitTimeStepper_impl.h index 6e996c2828..e191565f11 100644 --- a/src/TNL/Solvers/PDE/SemiImplicitTimeStepper_impl.h +++ b/src/TNL/Solvers/PDE/SemiImplicitTimeStepper_impl.h @@ -161,7 +161,8 @@ solve( const RealType& time, Linear::Preconditioners::SolverStarterSolverPreconditionerSetter< LinearSystemSolverType, PreconditionerType > ::run( *(this->linearSystemSolver), preconditioner ); - while( t < stopTime ) + // ignore very small steps at the end, most likely caused by truncation errors + while( stopTime - t > this->timeStep * 1e-6 ) { RealType currentTau = min( this->timeStep, stopTime - t ); -- GitLab