From 3ea46f470e2a647bfc4ce7779d40d9fedf1ea3cb Mon Sep 17 00:00:00 2001 From: Thomas Lichtenegger Date: Fri, 5 Nov 2021 11:15:29 +0100 Subject: [PATCH] Let rCFD solvers update fields with integer counter instead of scalar elapsed time. --- .../rcfdemSolverBase/rcfdemSolverBase.C | 10 ++++---- .../rcfdemSolverCoupledHeattransfer.C | 10 +++++--- .../rcfdemSolverForcedTracers.C | 9 +++++--- .../rcfdemSolverRhoSteadyPimple.C | 17 +++++++++----- .../rcfdemSolverRhoSteadyPimpleChem/UEqn.H | 2 +- .../rcfdemSolverRhoSteadyPimpleChem/pEqn.H | 2 +- .../rcfdemSolverRhoSteadyPimpleChem.C | 14 +++++++---- .../recSolverTurbTransport.C | 23 +++++++++++-------- .../rtfmSolverSpecies/rtfmSolverSpecies.C | 10 +++++--- 9 files changed, 62 insertions(+), 35 deletions(-) diff --git a/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C b/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C index 2d0c8d6f..0a4f5efb 100644 --- a/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C +++ b/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C @@ -70,8 +70,8 @@ int main(int argc, char *argv[]) Info << "\nCalculating particle trajectories based on recurrence statistics\n" << endl; label recTimeIndex = 0; - scalar recTimeStep = recurrenceBase.recM().recTimeStep(); - scalar startTime = runTime.startTime().value(); + label stepCounter = 0; + label recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); while (runTime.run()) { @@ -88,13 +88,16 @@ int main(int argc, char *argv[]) particleCloud.clockM().stop("Coupling"); + stepCounter++; - if ( runTime.timeOutputValue() - startTime - (recTimeIndex+1)*recTimeStep + 1.0e-5 > 0.0 ) + if (stepCounter == recTimeStep2CFDTimeStep) { Info << "updating recurrence fields at time " << runTime.timeName() << "with recTimeIndex = " << recTimeIndex << nl << endl; recurrenceBase.updateRecFields(); #include "updateFields.H" recTimeIndex++; + stepCounter = 0; + recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); } particleCloud.clockM().start(27,"Output"); @@ -106,7 +109,6 @@ int main(int argc, char *argv[]) Info << "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; - } Info << "End\n" << endl; diff --git a/applications/solvers/rcfdemSolverCoupledHeattransfer/rcfdemSolverCoupledHeattransfer.C b/applications/solvers/rcfdemSolverCoupledHeattransfer/rcfdemSolverCoupledHeattransfer.C index 1d128ac6..c54e1f76 100644 --- a/applications/solvers/rcfdemSolverCoupledHeattransfer/rcfdemSolverCoupledHeattransfer.C +++ b/applications/solvers/rcfdemSolverCoupledHeattransfer/rcfdemSolverCoupledHeattransfer.C @@ -67,8 +67,8 @@ int main(int argc, char *argv[]) Info << "\nCalculating particle trajectories based on recurrence statistics\n" << endl; label recTimeIndex = 0; - scalar recTimeStep = recurrenceBase.recM().recTimeStep(); - scalar startTime = runTime.startTime().value(); + label stepCounter = 0; + label recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); // control coupling behavior in case of substepping // assumes constant timestep size @@ -101,12 +101,16 @@ int main(int argc, char *argv[]) #include "TEqImp.H" particleCloud.clockM().stop("Flow"); + stepCounter++; + particleCloud.clockM().start(32,"ReadFields"); - if ( runTime.timeOutputValue() - startTime - (recTimeIndex+1)*recTimeStep + 1.0e-5 > 0.0 ) + if (stepCounter == recTimeStep2CFDTimeStep) { recurrenceBase.updateRecFields(); #include "updateFields.H" recTimeIndex++; + stepCounter = 0; + recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); } particleCloud.clockM().stop("ReadFields"); diff --git a/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C b/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C index 8d72b568..9039e038 100644 --- a/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C +++ b/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C @@ -65,8 +65,8 @@ int main(int argc, char *argv[]) Info << "\nCalculating particle trajectories based on recurrence statistics\n" << endl; label recTimeIndex = 0; - scalar recTimeStep = recurrenceBase.recM().recTimeStep(); - scalar startTime = runTime.startTime().value(); + label stepCounter = 0; + label recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); while (runTime.run()) { @@ -83,12 +83,15 @@ int main(int argc, char *argv[]) particleCloud.clockM().stop("Coupling"); + stepCounter++; - if ( runTime.timeOutputValue() - startTime - (recTimeIndex+1)*recTimeStep + 1.0e-5 > 0.0 ) + if (stepCounter == recTimeStep2CFDTimeStep) { recurrenceBase.updateRecFields(); #include "updateFields.H" recTimeIndex++; + stepCounter = 0; + recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); } particleCloud.clockM().start(27,"Output"); diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C b/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C index 5eaeed0b..6add71a1 100644 --- a/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C +++ b/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C @@ -82,13 +82,13 @@ int main(int argc, char *argv[]) // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // label recTimeIndex = 0; - scalar recTimeStep = recurrenceBase.recM().recTimeStep(); - scalar startTime = runTime.startTime().value(); + label stepCounter = 0; + label recTimeStep2CFDTimeStep = recurrenceBase.recM().recTimeStep2CFDTimeStep(); const IOdictionary& couplingProps = particleCloud.couplingProperties(); label nEveryFlow(couplingProps.lookupOrDefault