setDeltaT: Rationalised and standardised for both modular and standard solvers
This commit is contained in:
@ -33,13 +33,16 @@ Description
|
|||||||
|
|
||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
scalar deltaT = maxCo*runTime.deltaTValue()/(CoNum + small);
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
deltaT = min
|
|
||||||
(
|
if (CoNum > small)
|
||||||
min(deltaT, runTime.deltaTValue() + 0.1*deltaT),
|
{
|
||||||
1.2*runTime.deltaTValue()
|
deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue());
|
||||||
);
|
}
|
||||||
runTime.setDeltaT(min(deltaT, maxDeltaT));
|
|
||||||
|
deltaT = min(deltaT, maxDeltaT);
|
||||||
|
|
||||||
|
runTime.setDeltaT(deltaT);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,33 +55,23 @@ void Foam::setDeltaT(Time& runTime, const PtrList<solver>& solvers)
|
|||||||
|
|
||||||
void Foam::adjustDeltaT(Time& runTime, const PtrList<solver>& solvers)
|
void Foam::adjustDeltaT(Time& runTime, const PtrList<solver>& solvers)
|
||||||
{
|
{
|
||||||
|
// Update the time-step limited by the solvers maxDeltaT
|
||||||
if (runTime.controlDict().lookupOrDefault("adjustTimeStep", false))
|
if (runTime.controlDict().lookupOrDefault("adjustTimeStep", false))
|
||||||
{
|
{
|
||||||
scalar deltaT = great;
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
|
|
||||||
|
bool transient = false;
|
||||||
|
|
||||||
forAll(solvers, i)
|
forAll(solvers, i)
|
||||||
{
|
{
|
||||||
if (solvers[i].transient())
|
if (solvers[i].transient())
|
||||||
{
|
{
|
||||||
const scalar maxDeltaTi = solvers[i].maxDeltaT();
|
transient = true;
|
||||||
|
deltaT = min(deltaT, solvers[i].maxDeltaT());
|
||||||
deltaT = min
|
|
||||||
(
|
|
||||||
deltaT,
|
|
||||||
min
|
|
||||||
(
|
|
||||||
min
|
|
||||||
(
|
|
||||||
maxDeltaTi,
|
|
||||||
runTime.deltaTValue() + 0.1*maxDeltaTi
|
|
||||||
),
|
|
||||||
1.2*runTime.deltaTValue()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deltaT != great)
|
if (transient)
|
||||||
{
|
{
|
||||||
runTime.setDeltaT(deltaT);
|
runTime.setDeltaT(deltaT);
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
|
|||||||
@ -43,20 +43,14 @@ void Foam::setDeltaT(Time& runTime, const solver& solver)
|
|||||||
|
|
||||||
void Foam::adjustDeltaT(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
|
if
|
||||||
(
|
(
|
||||||
solver.transient()
|
solver.transient()
|
||||||
&& runTime.controlDict().lookupOrDefault("adjustTimeStep", false)
|
&& runTime.controlDict().lookupOrDefault("adjustTimeStep", false)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
scalar deltaT = solver.maxDeltaT();
|
runTime.setDeltaT(min(1.2*runTime.deltaTValue(), solver.maxDeltaT()));
|
||||||
deltaT = min
|
|
||||||
(
|
|
||||||
min(deltaT, runTime.deltaTValue() + 0.1*deltaT),
|
|
||||||
1.2*runTime.deltaTValue()
|
|
||||||
);
|
|
||||||
runTime.setDeltaT(deltaT);
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration | Website: https://openfoam.org
|
\\ / O peration | Website: https://openfoam.org
|
||||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -33,19 +33,21 @@ Description
|
|||||||
|
|
||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
scalar maxDeltaTFact =
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
min(maxCo/(CoNum + small), maxAcousticCo/(acousticCoNum + small));
|
|
||||||
|
|
||||||
scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2);
|
if (CoNum > small)
|
||||||
|
{
|
||||||
|
deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue());
|
||||||
|
}
|
||||||
|
|
||||||
runTime.setDeltaT
|
if (acousticCoNum > small)
|
||||||
(
|
{
|
||||||
min
|
deltaT = min(deltaT, maxAcousticCo/acousticCoNum*runTime.deltaTValue());
|
||||||
(
|
}
|
||||||
deltaTFact*runTime.deltaTValue(),
|
|
||||||
maxDeltaT
|
deltaT = min(deltaT, maxDeltaT);
|
||||||
)
|
|
||||||
);
|
runTime.setDeltaT(deltaT);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,15 +33,21 @@ Description
|
|||||||
|
|
||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
scalar deltaT =
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
min(maxCo/(CoNum + small), maxAlphaCo/(alphaCoNum + small))
|
|
||||||
*runTime.deltaTValue();
|
if (CoNum > small)
|
||||||
deltaT = min
|
{
|
||||||
(
|
deltaT = min(deltaT, runTime.deltaTValue()*maxCo/CoNum);
|
||||||
min(deltaT, runTime.deltaTValue() + 0.1*deltaT),
|
}
|
||||||
1.2*runTime.deltaTValue()
|
|
||||||
);
|
if (alphaCoNum > small)
|
||||||
runTime.setDeltaT(min(deltaT, maxDeltaT));
|
{
|
||||||
|
deltaT = min(maxAlphaCo/alphaCoNum*runTime.deltaTValue(), deltaT);
|
||||||
|
}
|
||||||
|
|
||||||
|
deltaT = min(deltaT, maxDeltaT);
|
||||||
|
|
||||||
|
runTime.setDeltaT(deltaT);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,18 +33,17 @@ Description
|
|||||||
|
|
||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
|
|
||||||
if (CoNum > small)
|
if (CoNum > small)
|
||||||
{
|
{
|
||||||
scalar deltaT = maxCo*runTime.deltaTValue()/CoNum;
|
deltaT = min(deltaT, maxCo/CoNum*runTime.deltaTValue());
|
||||||
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(min(deltaT, fvModels.maxDeltaT()), maxDeltaT);
|
||||||
|
|
||||||
|
runTime.setDeltaT(deltaT);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,11 +33,11 @@ Description
|
|||||||
|
|
||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
scalar deltaT = runTime.deltaTValue();
|
scalar deltaT = 1.2*runTime.deltaTValue();
|
||||||
|
|
||||||
if (CoNum > small)
|
if (CoNum > small)
|
||||||
{
|
{
|
||||||
deltaT = min(maxCo/CoNum*runTime.deltaTValue(), fvModels.maxDeltaT());
|
deltaT = min(deltaT, runTime.deltaTValue()*maxCo/CoNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (alphaCoNum > small)
|
if (alphaCoNum > small)
|
||||||
@ -45,13 +45,9 @@ if (adjustTimeStep)
|
|||||||
deltaT = min(maxAlphaCo/alphaCoNum*runTime.deltaTValue(), deltaT);
|
deltaT = min(maxAlphaCo/alphaCoNum*runTime.deltaTValue(), deltaT);
|
||||||
}
|
}
|
||||||
|
|
||||||
deltaT = min
|
deltaT = min(min(deltaT, fvModels.maxDeltaT()), maxDeltaT);
|
||||||
(
|
|
||||||
min(deltaT, runTime.deltaTValue() + 0.1*deltaT),
|
|
||||||
1.2*runTime.deltaTValue()
|
|
||||||
);
|
|
||||||
|
|
||||||
runTime.setDeltaT(min(deltaT, maxDeltaT));
|
runTime.setDeltaT(deltaT);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user