diff --git a/applications/solvers/compressible/rhoCentralFoam/setDeltaT.H b/applications/solvers/compressible/rhoCentralFoam/setDeltaT.H index 43705f1be0..1f5fd4221a 100644 --- a/applications/solvers/compressible/rhoCentralFoam/setDeltaT.H +++ b/applications/solvers/compressible/rhoCentralFoam/setDeltaT.H @@ -33,13 +33,16 @@ Description if (adjustTimeStep) { - scalar deltaT = maxCo*runTime.deltaTValue()/(CoNum + small); - deltaT = min - ( - min(deltaT, runTime.deltaTValue() + 0.1*deltaT), - 1.2*runTime.deltaTValue() - ); - runTime.setDeltaT(min(deltaT, maxDeltaT)); + scalar deltaT = 1.2*runTime.deltaTValue(); + + if (CoNum > small) + { + deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue()); + } + + deltaT = min(deltaT, maxDeltaT); + + runTime.setDeltaT(deltaT); Info<< "deltaT = " << runTime.deltaTValue() << endl; } diff --git a/applications/solvers/modules/foamMultiRun/setDeltaT.C b/applications/solvers/modules/foamMultiRun/setDeltaT.C index 61faebae71..3d2fd40d5b 100644 --- a/applications/solvers/modules/foamMultiRun/setDeltaT.C +++ b/applications/solvers/modules/foamMultiRun/setDeltaT.C @@ -55,33 +55,23 @@ void Foam::setDeltaT(Time& runTime, const PtrList& solvers) void Foam::adjustDeltaT(Time& runTime, const PtrList& solvers) { + // Update the time-step limited by the solvers maxDeltaT if (runTime.controlDict().lookupOrDefault("adjustTimeStep", false)) { - scalar deltaT = great; + scalar deltaT = 1.2*runTime.deltaTValue(); + + bool transient = false; forAll(solvers, i) { if (solvers[i].transient()) { - const scalar maxDeltaTi = solvers[i].maxDeltaT(); - - deltaT = min - ( - deltaT, - min - ( - min - ( - maxDeltaTi, - runTime.deltaTValue() + 0.1*maxDeltaTi - ), - 1.2*runTime.deltaTValue() - ) - ); + transient = true; + deltaT = min(deltaT, solvers[i].maxDeltaT()); } } - if (deltaT != great) + if (transient) { runTime.setDeltaT(deltaT); Info<< "deltaT = " << runTime.deltaTValue() << endl; diff --git a/applications/solvers/modules/foamRun/setDeltaT.C b/applications/solvers/modules/foamRun/setDeltaT.C index 6631a31c26..bae4af87f3 100644 --- a/applications/solvers/modules/foamRun/setDeltaT.C +++ b/applications/solvers/modules/foamRun/setDeltaT.C @@ -43,20 +43,14 @@ void Foam::setDeltaT(Time& runTime, const solver& solver) void Foam::adjustDeltaT(Time& runTime, const solver& solver) { - // Update the time-step from the solver maxDeltaT + // Update the time-step limited by the solver maxDeltaT if ( solver.transient() && runTime.controlDict().lookupOrDefault("adjustTimeStep", false) ) { - scalar deltaT = solver.maxDeltaT(); - deltaT = min - ( - min(deltaT, runTime.deltaTValue() + 0.1*deltaT), - 1.2*runTime.deltaTValue() - ); - runTime.setDeltaT(deltaT); + runTime.setDeltaT(min(1.2*runTime.deltaTValue(), solver.maxDeltaT())); Info<< "deltaT = " << runTime.deltaTValue() << endl; } } diff --git a/applications/solvers/multiphase/cavitatingFoam/setDeltaT.H b/applications/solvers/multiphase/cavitatingFoam/setDeltaT.H index f7cc50e80b..c998bd8f65 100644 --- a/applications/solvers/multiphase/cavitatingFoam/setDeltaT.H +++ b/applications/solvers/multiphase/cavitatingFoam/setDeltaT.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,19 +33,21 @@ Description if (adjustTimeStep) { - scalar maxDeltaTFact = - min(maxCo/(CoNum + small), maxAcousticCo/(acousticCoNum + small)); + scalar deltaT = 1.2*runTime.deltaTValue(); - scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2); + if (CoNum > small) + { + deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue()); + } - runTime.setDeltaT - ( - min - ( - deltaTFact*runTime.deltaTValue(), - maxDeltaT - ) - ); + if (acousticCoNum > small) + { + deltaT = min(deltaT, maxAcousticCo/acousticCoNum*runTime.deltaTValue()); + } + + deltaT = min(deltaT, maxDeltaT); + + runTime.setDeltaT(deltaT); Info<< "deltaT = " << runTime.deltaTValue() << endl; } diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/setDeltaT.H b/applications/solvers/multiphase/twoLiquidMixingFoam/setDeltaT.H index 7441fee79f..68cab748fd 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/setDeltaT.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/setDeltaT.H @@ -33,15 +33,21 @@ Description if (adjustTimeStep) { - scalar deltaT = - min(maxCo/(CoNum + small), maxAlphaCo/(alphaCoNum + small)) - *runTime.deltaTValue(); - deltaT = min - ( - min(deltaT, runTime.deltaTValue() + 0.1*deltaT), - 1.2*runTime.deltaTValue() - ); - runTime.setDeltaT(min(deltaT, maxDeltaT)); + scalar deltaT = 1.2*runTime.deltaTValue(); + + if (CoNum > small) + { + deltaT = min(deltaT, runTime.deltaTValue()*maxCo/CoNum); + } + + if (alphaCoNum > small) + { + deltaT = min(maxAlphaCo/alphaCoNum*runTime.deltaTValue(), deltaT); + } + + deltaT = min(deltaT, maxDeltaT); + + runTime.setDeltaT(deltaT); Info<< "deltaT = " << runTime.deltaTValue() << endl; } diff --git a/src/finiteVolume/cfdTools/general/include/setDeltaT.H b/src/finiteVolume/cfdTools/general/include/setDeltaT.H index 4450becd32..5e4872bab3 100644 --- a/src/finiteVolume/cfdTools/general/include/setDeltaT.H +++ b/src/finiteVolume/cfdTools/general/include/setDeltaT.H @@ -33,18 +33,17 @@ Description if (adjustTimeStep) { + scalar deltaT = 1.2*runTime.deltaTValue(); + if (CoNum > small) { - scalar deltaT = maxCo*runTime.deltaTValue()/CoNum; - deltaT = min(min(deltaT, fvModels.maxDeltaT()), maxDeltaT); - deltaT = min - ( - min(deltaT, runTime.deltaTValue() + 0.1*deltaT), - 1.2*runTime.deltaTValue() - ); - runTime.setDeltaT(deltaT); + deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue()); } + deltaT = min(min(deltaT, fvModels.maxDeltaT()), maxDeltaT); + + runTime.setDeltaT(deltaT); + Info<< "deltaT = " << runTime.deltaTValue() << endl; } diff --git a/src/twoPhaseModels/twoPhaseMixture/VoF/setDeltaT.H b/src/twoPhaseModels/twoPhaseMixture/VoF/setDeltaT.H index 33e2ad45e4..4ec4138744 100644 --- a/src/twoPhaseModels/twoPhaseMixture/VoF/setDeltaT.H +++ b/src/twoPhaseModels/twoPhaseMixture/VoF/setDeltaT.H @@ -33,11 +33,11 @@ Description if (adjustTimeStep) { - scalar deltaT = runTime.deltaTValue(); + scalar deltaT = 1.2*runTime.deltaTValue(); if (CoNum > small) { - deltaT = min(maxCo/CoNum*runTime.deltaTValue(), fvModels.maxDeltaT()); + deltaT = min(deltaT, runTime.deltaTValue()*maxCo/CoNum); } if (alphaCoNum > small) @@ -45,13 +45,9 @@ if (adjustTimeStep) deltaT = min(maxAlphaCo/alphaCoNum*runTime.deltaTValue(), deltaT); } - deltaT = min - ( - min(deltaT, runTime.deltaTValue() + 0.1*deltaT), - 1.2*runTime.deltaTValue() - ); + deltaT = min(min(deltaT, fvModels.maxDeltaT()), maxDeltaT); - runTime.setDeltaT(min(deltaT, maxDeltaT)); + runTime.setDeltaT(deltaT); Info<< "deltaT = " << runTime.deltaTValue() << endl; }