From 4b4ca3a247d873661f8970ecd00834945576c346 Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Mon, 16 Feb 2015 21:42:09 +0000 Subject: [PATCH] compressibleInterDyMFoam and interPhaseChangeDyMFoam: cache divU before time advancement to ensure the old-time meshPhi are used to make phi absolute Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1531 --- .../compressibleInterDyMFoam.C | 16 +++++++++------- .../interPhaseChangeDyMFoam.C | 9 ++++++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C index 8297cd691c7..7f225f4607a 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C @@ -73,17 +73,19 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "readControls.H" - #include "CourantNo.H" - #include "setDeltaT.H" + { + // Store divU from the previous mesh so that it can be mapped + // and used in correctPhi to ensure the corrected phi has the + // same divergence + volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U))); - runTime++; + #include "CourantNo.H" + #include "setDeltaT.H" - Info<< "Time = " << runTime.timeName() << nl << endl; + runTime++; - { - // Store divU from the previous mesh for the correctPhi - volScalarField divU(fvc::div(fvc::absolute(phi, U))); + Info<< "Time = " << runTime.timeName() << nl << endl; scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime(); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C index db6b7111d0b..5c05875e358 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C @@ -94,6 +94,12 @@ int main(int argc, char *argv[]) while (runTime.run()) { #include "../interFoam/interDyMFoam/readControls.H" + + // Store divU from the previous mesh so that it can be mapped + // and used in correctPhi to ensure the corrected phi has the + // same divergence + volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U))); + #include "CourantNo.H" #include "setDeltaT.H" @@ -106,9 +112,6 @@ int main(int argc, char *argv[]) { if (pimple.firstIter() || moveMeshOuterCorrectors) { - // Store divU from the previous mesh for the correctPhi - volScalarField divU("divU0", fvc::div(fvc::absolute(phi, U))); - scalar timeBeforeMeshUpdate = runTime.elapsedCpuTime(); mesh.update(); -- GitLab