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