Hallo,
bei manchen Solver in OpenFOAM funktioniert diese Funktion in der controlDict Datei nicht:
Zitat:
maxCo 0.5;
adjustTimeStep yes;
Diese Funktion erzwingt OpenFOAM dazu, dass die Courantzahl unter 0.5 bleiben soll, indem die Zeitschrittweite während einer Simulation verändert wird.
Daher müssen die Solver per Hand angepasst und neu compilert werden. Der Grund: es fehlen 2 Dateien, die in der C++ Datei verlinkt werden müssen.
Als Beispiel wir BouyantFoam.C gewählt:
Zitat:
#include "fvCFD.H"
#include "basicThermo.H"
#include "compressible/RASModel/RASModel.H"
#include "fixedGradientFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
# include "setRootCase.H"
# include "createTime.H"
# include "createMesh.H"
# include "readEnvironmentalProperties.H"
# include "createFields.H"
# include "initContinuityErrs.H"
# include "readTimeControls.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
# include "readPISOControls.H"
# include "compressibleCourantNo.H"
# include "setDeltaT.H"
runTime++;
Info<< "Time = " << runTime.timeName() << nl << endl;
# include "rhoEqn.H"
# include "UEqn.H"
// --- PISO loop
for (int corr=0; corr<nCorr; corr++)
{
# include "hEqn.H"
# include "pEqn.H"
}
turbulence->correct();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
Folgende Zeilen müssen an der richtigen Zeile ergänzt werden:
# include "readTimeControls.H"
# include "setDeltaT.H"
Andere Solver sind ähnlich aufgebaut und müssen ebenfalls wie vor erweitert werden.
Viel Spass
TTB
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP