From 4c0ef16316dec5329503ddc84679db04f5807e7e Mon Sep 17 00:00:00 2001 From: Hamidreza Norouzi Date: Mon, 20 Feb 2023 07:53:48 -0800 Subject: [PATCH] bug fix for loop stall --- DEMSystems/sphereDEMSystem/sphereDEMSystem.cpp | 8 ++++++-- src/phasicFlow/Timer/Timer.hpp | 4 ---- src/phasicFlow/repository/Time/timeControl.cpp | 17 +++++++++++++++++ src/phasicFlow/repository/Time/timeControl.hpp | 18 +----------------- .../repository/systemControl/systemControl.cpp | 5 ++++- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/DEMSystems/sphereDEMSystem/sphereDEMSystem.cpp b/DEMSystems/sphereDEMSystem/sphereDEMSystem.cpp index 22e48eeb..8416e505 100644 --- a/DEMSystems/sphereDEMSystem/sphereDEMSystem.cpp +++ b/DEMSystems/sphereDEMSystem/sphereDEMSystem.cpp @@ -27,6 +27,8 @@ bool pFlow::sphereDEMSystem::loop() { Control().timers().start(); + // + if(! insertion_().insertParticles( Control().time().currentTime(), Control().time().dt() ) ) @@ -35,6 +37,7 @@ bool pFlow::sphereDEMSystem::loop() "particle insertion failed in sphereDFlow solver.\n"; return false; } + geometry_->beforeIteration(); @@ -58,6 +61,7 @@ bool pFlow::sphereDEMSystem::loop() }while(Control()++); + return true; } pFlow::sphereDEMSystem::sphereDEMSystem( @@ -213,7 +217,7 @@ bool pFlow::sphereDEMSystem::iterate( Control().time().setStopAt(upToTime); Control().time().setOutputToFile(timeToWrite, timeName); - loop(); + return loop(); return true; } @@ -221,7 +225,7 @@ bool pFlow::sphereDEMSystem::iterate( bool pFlow::sphereDEMSystem::iterate(real upToTime) { Control().time().setStopAt(upToTime); - loop(); + return loop(); return true; } diff --git a/src/phasicFlow/Timer/Timer.hpp b/src/phasicFlow/Timer/Timer.hpp index 76ada3eb..bb6a6817 100644 --- a/src/phasicFlow/Timer/Timer.hpp +++ b/src/phasicFlow/Timer/Timer.hpp @@ -139,10 +139,6 @@ public: { return true; } - - - - }; diff --git a/src/phasicFlow/repository/Time/timeControl.cpp b/src/phasicFlow/repository/Time/timeControl.cpp index b8e7ce1f..02e94359 100644 --- a/src/phasicFlow/repository/Time/timeControl.cpp +++ b/src/phasicFlow/repository/Time/timeControl.cpp @@ -147,3 +147,20 @@ void pFlow::timeControl::setSaveTimeFolder( } } +bool pFlow::timeControl::operator ++(int) +{ + + if( reachedStopAt() ) return false; + // increament iteration number + currentIter_++; + + currentTime_ += dt_; + if(screenReport()) + { + REPORT(0)<<"Time (s): "<