From 267f5cf0f537e84e3c31f466bb614e8c49088169 Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Tue, 17 Dec 2013 14:59:13 +0000 Subject: [PATCH] interDyMFoam, interPhaseChangeDyMFoam : Use 1/A from the previous time-step rather than 1 in the pcorr equation This provides better convergence and consistency between p_rgh and pcorr --- .../interFoam/interDyMFoam/correctPhi.H | 3 ++- .../interFoam/interDyMFoam/interDyMFoam.C | 15 +++++++++++++++ .../multiphase/interFoam/interDyMFoam/pEqn.H | 2 +- .../interPhaseChangeDyMFoam.C | 15 +++++++++++++++ .../interPhaseChangeDyMFoam/pEqn.H | 2 +- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H b/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H index 53d04d827f1..699d789adb1 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/correctPhi.H @@ -37,7 +37,8 @@ if (mesh.changing()) pcorrTypes ); - dimensionedScalar rAUf("rAUf", dimTime/rho.dimensions(), 1.0); + // dimensionedScalar rAUf("rAUf", dimTime/rho.dimensions(), 1.0); + surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); while (pimple.correctNonOrthogonal()) { diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C index ba7b4efa9ae..83398509e78 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C @@ -57,6 +57,21 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "readTimeControls.H" #include "createPrghCorrTypes.H" + + volScalarField rAU + ( + IOobject + ( + "rAU", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1.0) + ); + #include "correctPhi.H" #include "createUf.H" #include "CourantNo.H" diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H index 76441207919..ec99a638838 100644 --- a/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/interDyMFoam/pEqn.H @@ -1,5 +1,5 @@ { - volScalarField rAU("rAU", 1.0/UEqn.A()); + rAU = 1.0/UEqn.A(); surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); volVectorField HbyA("HbyA", U); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C index 810edeff308..8bd19845397 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C @@ -67,6 +67,21 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "readTimeControls.H" #include "createPcorrTypes.H" + + volScalarField rAU + ( + IOobject + ( + "rAU", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1.0) + ); + #include "../interFoam/interDyMFoam/correctPhi.H" #include "createUf.H" #include "CourantNo.H" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H index 6fac1df95c2..5915b680359 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H @@ -1,5 +1,5 @@ { - volScalarField rAU("rAU", 1.0/UEqn.A()); + rAU = 1.0/UEqn.A(); surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); volVectorField HbyA("HbyA", U); -- GitLab