From 32d46dc30c1f5509b859e061667f6e4ec2ced527 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Tue, 8 Jul 2008 14:45:31 +0200
Subject: [PATCH] add in UEqn.H, pEqn.H for simpleFoam as well

---
 .../solvers/incompressible/simpleFoam/UEqn.H  | 11 ++++
 .../solvers/incompressible/simpleFoam/pEqn.H  | 34 ++++++++++++
 .../incompressible/simpleFoam/simpleFoam.C    | 52 ++-----------------
 3 files changed, 48 insertions(+), 49 deletions(-)
 create mode 100644 applications/solvers/incompressible/simpleFoam/UEqn.H
 create mode 100644 applications/solvers/incompressible/simpleFoam/pEqn.H

diff --git a/applications/solvers/incompressible/simpleFoam/UEqn.H b/applications/solvers/incompressible/simpleFoam/UEqn.H
new file mode 100644
index 00000000000..e6fb6bf89ed
--- /dev/null
+++ b/applications/solvers/incompressible/simpleFoam/UEqn.H
@@ -0,0 +1,11 @@
+    // Solve the Momentum equation
+
+    tmp<fvVectorMatrix> UEqn
+    (
+        fvm::div(phi, U)
+      + turbulence->divDevReff(U)
+    );
+
+    UEqn().relax();
+
+    solve(UEqn() == -fvc::grad(p));
diff --git a/applications/solvers/incompressible/simpleFoam/pEqn.H b/applications/solvers/incompressible/simpleFoam/pEqn.H
new file mode 100644
index 00000000000..abdfaff3fcd
--- /dev/null
+++ b/applications/solvers/incompressible/simpleFoam/pEqn.H
@@ -0,0 +1,34 @@
+    p.boundaryField().updateCoeffs();
+
+    volScalarField AU = UEqn().A();
+    U = UEqn().H()/AU;
+    UEqn.clear();
+    phi = fvc::interpolate(U) & mesh.Sf();
+    adjustPhi(phi, U, p);
+
+    // Non-orthogonal pressure corrector loop
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    {
+        fvScalarMatrix pEqn
+        (
+            fvm::laplacian(1.0/AU, p) == fvc::div(phi)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+        pEqn.solve();
+
+        if (nonOrth == nNonOrthCorr)
+        {
+            phi -= pEqn.flux();
+        }
+    }
+
+#   include "continuityErrs.H"
+
+    // Explicitly relax pressure for momentum corrector
+    p.relax();
+
+    // Momentum corrector
+    U -= fvc::grad(p)/AU;
+    U.correctBoundaryConditions();
+
diff --git a/applications/solvers/incompressible/simpleFoam/simpleFoam.C b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
index c604d958706..6fb4f3312d0 100644
--- a/applications/solvers/incompressible/simpleFoam/simpleFoam.C
+++ b/applications/solvers/incompressible/simpleFoam/simpleFoam.C
@@ -26,8 +26,7 @@ Application
     simpleFoam
 
 Description
-    Steady-state solver for incompressible, turbulent flow of non-Newtonian
-    fluids.
+    Steady-state solver for incompressible, turbulent flow
 
 \*---------------------------------------------------------------------------*/
 
@@ -41,14 +40,11 @@ int main(int argc, char *argv[])
 {
 
 #   include "setRootCase.H"
-
 #   include "createTime.H"
 #   include "createMesh.H"
 #   include "createFields.H"
 #   include "initContinuityErrs.H"
 
-    //mesh.clearPrimitives();
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
@@ -63,50 +59,8 @@ int main(int argc, char *argv[])
 
         // Pressure-velocity SIMPLE corrector
         {
-            // Momentum predictor
-
-            tmp<fvVectorMatrix> UEqn
-            (
-                fvm::div(phi, U)
-              + turbulence->divDevReff(U)
-            );
-
-            UEqn().relax();
-
-            solve(UEqn() == -fvc::grad(p));
-
-            p.boundaryField().updateCoeffs();
-            volScalarField AU = UEqn().A();
-            U = UEqn().H()/AU;
-            UEqn.clear();
-            phi = fvc::interpolate(U) & mesh.Sf();
-            adjustPhi(phi, U, p);
-
-            // Non-orthogonal pressure corrector loop
-            for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
-            {
-                fvScalarMatrix pEqn
-                (
-                    fvm::laplacian(1.0/AU, p) == fvc::div(phi)
-                );
-
-                pEqn.setReference(pRefCell, pRefValue);
-                pEqn.solve();
-
-                if (nonOrth == nNonOrthCorr)
-                {
-                    phi -= pEqn.flux();
-                }
-            }
-
-#           include "continuityErrs.H"
-
-            // Explicitly relax pressure for momentum corrector
-            p.relax();
-
-            // Momentum corrector
-            U -= fvc::grad(p)/AU;
-            U.correctBoundaryConditions();
+#           include "UEqn.H"
+#           include "pEqn.H"
         }
 
         turbulence->correct();
-- 
GitLab