From 6fc7b06b19394b97e590bd2db5ac35b314199b87 Mon Sep 17 00:00:00 2001
From: henry <Henry Weller h.weller@opencfd.co.uk>
Date: Fri, 9 May 2008 12:48:45 +0100
Subject: [PATCH] Made ddtPhiCorr optional in moving-mesh solvers. Controlled
 via the "ddtPhiCorr" switch in the PISO sub-dict, defaults to false.

---
 .../solvers/incompressible/icoDyMFoam/icoDyMFoam.C   | 11 +++++++++--
 applications/solvers/multiphase/interDyMFoam/pEqn.H  | 12 ++++++------
 .../cfdTools/general/include/readPISOControls.H      |  6 ++++++
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C b/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C
index 54f64497f4b..39774a3373f 100644
--- a/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C
+++ b/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C
@@ -75,6 +75,9 @@ int main(int argc, char *argv[])
 #           include "correctPhi.H"
         }
 
+        // Keep the absolute fluxes for use in ddtPhiCorr
+        surfaceScalarField phiAbs("phiAbs", phi);
+
         // Make the fluxes relative to the mesh motion
         fvc::makeRelative(phi, U);
 
@@ -95,7 +98,11 @@ int main(int argc, char *argv[])
 
                 U = rAU*UEqn.H();
                 phi = (fvc::interpolate(U) & mesh.Sf());
-                    //+ fvc::ddtPhiCorr(rAU, U, phi);
+
+                if (ddtPhiCorr)
+                {
+                    phi += fvc::ddtPhiCorr(rAU, U, phiAbs);
+                }
 
                 adjustPhi(phi, U, p);
 
@@ -116,7 +123,7 @@ int main(int argc, char *argv[])
                     {
                         pEqn.solve(mesh.solver(p.name()));
                     }
-                
+
                     if (nonOrth == nNonOrthCorr)
                     {
                         phi -= pEqn.flux();
diff --git a/applications/solvers/multiphase/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interDyMFoam/pEqn.H
index 5bd1a98d40a..d4afbae6f49 100644
--- a/applications/solvers/multiphase/interDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interDyMFoam/pEqn.H
@@ -5,12 +5,12 @@
     volVectorField HU = UEqn.H();
     U = rAU*HU;
 
-    surfaceScalarField phiU
-    (
-        "phiU",
-        (fvc::interpolate(U) & mesh.Sf())
-      + fvc::ddtPhiCorr(rAU, rho, U, phiAbs)
-    );
+    surfaceScalarField phiU("phiU", (fvc::interpolate(U) & mesh.Sf()));
+
+    if (ddtPhiCorr)
+    {
+        phiU += fvc::ddtPhiCorr(rAU, rho, U, phiAbs);
+    }
 
     phi = phiU +
         (
diff --git a/src/finiteVolume/cfdTools/general/include/readPISOControls.H b/src/finiteVolume/cfdTools/general/include/readPISOControls.H
index d29a60785ad..e51ecdbb8bc 100644
--- a/src/finiteVolume/cfdTools/general/include/readPISOControls.H
+++ b/src/finiteVolume/cfdTools/general/include/readPISOControls.H
@@ -25,3 +25,9 @@
     {
         nOuterCorr = readInt(piso.lookup("nOuterCorrectors"));
     }
+
+    bool ddtPhiCorr = false;
+    if (piso.found("ddtPhiCorr"))
+    {
+        ddtPhiCorr = Switch(piso.lookup("ddtPhiCorr"));
+    }
-- 
GitLab