From 7841318b76a28442fd12cd62c16dd407d7e68c0a Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Mon, 19 Mar 2012 11:55:48 +0000
Subject: [PATCH] twoPhaseEulerFoam: Add MRF support and remove
 MRFTwoPhaseEulerFoam

---
 .../multiphase/twoPhaseEulerFoam/Allwclean    |   1 -
 .../multiphase/twoPhaseEulerFoam/Allwmake     |   1 -
 .../MRFTwoPhaseEulerFoam.C                    | 119 ------------------
 .../MRFtwoPhaseEulerFoam/Make/files           |   3 -
 .../MRFtwoPhaseEulerFoam/Make/options         |  17 ---
 .../MRFtwoPhaseEulerFoam/UEqns.H              |  99 ---------------
 .../MRFtwoPhaseEulerFoam/createMRFZones.H     |   4 -
 .../MRFtwoPhaseEulerFoam/pEqn.H               | 118 -----------------
 .../multiphase/twoPhaseEulerFoam/UEqns.H      |   4 +-
 .../twoPhaseEulerFoam/createFields.H          |   6 +
 .../multiphase/twoPhaseEulerFoam/pEqn.H       |  20 ++-
 .../twoPhaseEulerFoam/twoPhaseEulerFoam.C     |   4 +-
 12 files changed, 25 insertions(+), 371 deletions(-)
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/MRFTwoPhaseEulerFoam.C
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/files
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/options
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/UEqns.H
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/createMRFZones.H
 delete mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/pEqn.H

diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/Allwclean b/applications/solvers/multiphase/twoPhaseEulerFoam/Allwclean
index 63db39ff056..cc138bc068e 100755
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/Allwclean
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/Allwclean
@@ -6,6 +6,5 @@ wclean libso phaseModel
 wclean libso interfacialModels
 wclean libso kineticTheoryModels
 wclean
-wclean MRFtwoPhaseEulerFoam
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/Allwmake b/applications/solvers/multiphase/twoPhaseEulerFoam/Allwmake
index faf438d0bdd..29294d166a9 100755
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/Allwmake
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/Allwmake
@@ -6,6 +6,5 @@ wmake libso phaseModel
 wmake libso interfacialModels
 wmake libso kineticTheoryModels
 wmake
-wmake MRFtwoPhaseEulerFoam
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/MRFTwoPhaseEulerFoam.C b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/MRFTwoPhaseEulerFoam.C
deleted file mode 100644
index 357c7e413ab..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/MRFTwoPhaseEulerFoam.C
+++ /dev/null
@@ -1,119 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-Application
-    twoPhaseEulerFoam
-
-Description
-    Solver for a system of 2 incompressible fluid phases with one phase
-    dispersed, e.g. gas bubbles in a liquid or solid particles in a gas.
-
-\*---------------------------------------------------------------------------*/
-
-#include "fvCFD.H"
-#include "nearWallDist.H"
-#include "wallFvPatch.H"
-#include "Switch.H"
-
-#include "IFstream.H"
-#include "OFstream.H"
-
-#include "dragModel.H"
-#include "phaseModel.H"
-#include "kineticTheoryModel.H"
-
-#include "pimpleControl.H"
-#include "MRFZones.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-int main(int argc, char *argv[])
-{
-    #include "setRootCase.H"
-
-    #include "createTime.H"
-    #include "createMesh.H"
-    #include "readGravitationalAcceleration.H"
-    #include "createFields.H"
-    #include "readPPProperties.H"
-    #include "initContinuityErrs.H"
-    #include "createMRFZones.H"
-    #include "readTimeControls.H"
-    #include "CourantNo.H"
-    #include "setInitialDeltaT.H"
-
-    pimpleControl pimple(mesh);
-
-    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-    Info<< "\nStarting time loop\n" << endl;
-
-    while (runTime.run())
-    {
-        #include "readTwoPhaseEulerFoamControls.H"
-        #include "CourantNos.H"
-        #include "setDeltaT.H"
-
-        runTime++;
-        Info<< "Time = " << runTime.timeName() << nl << endl;
-
-        // --- Pressure-velocity PIMPLE corrector loop
-        while (pimple.loop())
-        {
-            #include "alphaEqn.H"
-            #include "liftDragCoeffs.H"
-            #include "UEqns.H"
-
-            // --- Pressure corrector loop
-            while (pimple.correct())
-            {
-                #include "pEqn.H"
-
-                if (correctAlpha && !pimple.finalIter())
-                {
-                    #include "alphaEqn.H"
-                }
-            }
-
-            #include "DDtU.H"
-
-            if (pimple.turbCorr())
-            {
-                #include "kEpsilon.H"
-            }
-        }
-
-        #include "write.H"
-
-        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
-            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
-            << nl << endl;
-    }
-
-    Info<< "End\n" << endl;
-
-    return 0;
-}
-
-
-// ************************************************************************* //
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/files b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/files
deleted file mode 100644
index 45960722aef..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-MRFTwoPhaseEulerFoam.C
-
-EXE = $(FOAM_APPBIN)/MRFTwoPhaseEulerFoam
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/options
deleted file mode 100644
index b9b19059da6..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/Make/options
+++ /dev/null
@@ -1,17 +0,0 @@
-EXE_INC = \
-    -I.. \
-    -I../../bubbleFoam \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/transportModels/incompressible/lnInclude \
-    -IturbulenceModel \
-    -I../kineticTheoryModels/lnInclude \
-    -I../interfacialModels/lnInclude \
-    -I../phaseModel/lnInclude \
-
-EXE_LIBS = \
-    -lEulerianInterfacialModels \
-    -lfiniteVolume \
-    -lmeshTools \
-    -lincompressibleTransportModels \
-    -lphaseModel \
-    -lkineticTheoryModel
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/UEqns.H b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/UEqns.H
deleted file mode 100644
index 0c0cc1543a7..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/UEqns.H
+++ /dev/null
@@ -1,99 +0,0 @@
-fvVectorMatrix U1Eqn(U1, U1.dimensions()*dimVol/dimTime);
-fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
-
-{
-    {
-        volTensorField gradU1T(T(fvc::grad(U1)));
-
-        if (kineticTheory.on())
-        {
-            kineticTheory.solve(gradU1T);
-            nuEff1 = kineticTheory.mu1()/rho1;
-        }
-        else // If not using kinetic theory is using Ct model
-        {
-            nuEff1 = sqr(Ct)*nut2 + nu1;
-        }
-
-        volTensorField Rc1
-        (
-            "Rc1",
-            (((2.0/3.0)*I)*nuEff1)*tr(gradU1T) - nuEff1*gradU1T
-        );
-
-        if (kineticTheory.on())
-        {
-            Rc1 -= ((kineticTheory.lambda()/rho1)*tr(gradU1T))*tensor(I);
-        }
-
-        surfaceScalarField phiR1
-        (
-            -fvc::interpolate(nuEff1)*mesh.magSf()*fvc::snGrad(alpha1)
-            /fvc::interpolate(alpha1 + scalar(0.001))
-        );
-
-        U1Eqn =
-        (
-            (scalar(1) + Cvm*rho2*alpha2/rho1)*
-            (
-                fvm::ddt(U1)
-              + fvm::div(phi1, U1, "div(phi1,U1)")
-              - fvm::Sp(fvc::div(phi1), U1)
-            )
-
-          - fvm::laplacian(nuEff1, U1)
-          + fvc::div(Rc1)
-
-          + fvm::div(phiR1, U1, "div(phi1,U1)")
-          - fvm::Sp(fvc::div(phiR1), U1)
-          + (fvc::grad(alpha1)/(fvc::average(alpha1) + scalar(0.001)) & Rc1)
-         ==
-        //  g                          // Buoyancy term transfered to p-equation
-          - fvm::Sp(alpha2/rho1*K, U1)
-        //+ alpha2/rho1*K*U2           // Explicit drag transfered to p-equation
-          - alpha2/rho1*(liftCoeff - Cvm*rho2*DDtU2)
-        );
-        mrfZones.addCoriolis(U1Eqn);
-        U1Eqn.relax();
-    }
-
-    {
-        volTensorField gradU2T(T(fvc::grad(U2)));
-        volTensorField Rc2
-        (
-            "Rc2",
-            (((2.0/3.0)*I)*nuEff2)*tr(gradU2T) - nuEff2*gradU2T
-        );
-
-        surfaceScalarField phiR2
-        (
-            -fvc::interpolate(nuEff2)*mesh.magSf()*fvc::snGrad(alpha2)
-            /fvc::interpolate(alpha2 + scalar(0.001))
-        );
-
-        U2Eqn =
-        (
-            (scalar(1) + Cvm*rho2*alpha1/rho2)*
-            (
-                fvm::ddt(U2)
-              + fvm::div(phi2, U2, "div(phi2,U2)")
-              - fvm::Sp(fvc::div(phi2), U2)
-            )
-
-          - fvm::laplacian(nuEff2, U2)
-          + fvc::div(Rc2)
-
-          + fvm::div(phiR2, U2, "div(phi2,U2)")
-          - fvm::Sp(fvc::div(phiR2), U2)
-
-          + (fvc::grad(alpha2)/(fvc::average(alpha2) + scalar(0.001)) & Rc2)
-         ==
-        //  g                          // Buoyancy term transfered to p-equation
-          - fvm::Sp(alpha1/rho2*K, U2)
-        //+ alpha1/rho2*K*U1           // Explicit drag transfered to p-equation
-          + alpha1/rho2*(liftCoeff + Cvm*rho2*DDtU1)
-        );
-        mrfZones.addCoriolis(U2Eqn);
-        U2Eqn.relax();
-    }
-}
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/createMRFZones.H b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/createMRFZones.H
deleted file mode 100644
index 4d5c2bab723..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/createMRFZones.H
+++ /dev/null
@@ -1,4 +0,0 @@
-    MRFZones mrfZones(mesh);
-    mrfZones.correctBoundaryVelocity(U1);
-    mrfZones.correctBoundaryVelocity(U2);
-    mrfZones.correctBoundaryVelocity(U);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/pEqn.H
deleted file mode 100644
index 348cc847d71..00000000000
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/MRFtwoPhaseEulerFoam/pEqn.H
+++ /dev/null
@@ -1,118 +0,0 @@
-{
-    surfaceScalarField alpha1f(fvc::interpolate(alpha1));
-    surfaceScalarField alpha2f(scalar(1) - alpha1f);
-
-    volScalarField rAU1(1.0/U1Eqn.A());
-    volScalarField rAU2(1.0/U2Eqn.A());
-
-    rAU1f = fvc::interpolate(rAU1);
-    surfaceScalarField rAU2f(fvc::interpolate(rAU2));
-
-    volVectorField HbyA1("HbyA1", U1);
-    HbyA1 = rAU1*U1Eqn.H();
-
-    volVectorField HbyA2("HbyA2", U2);
-    HbyA2 = rAU2*U2Eqn.H();
-
-    mrfZones.absoluteFlux(phi1.oldTime());
-    mrfZones.absoluteFlux(phi1);
-
-    mrfZones.absoluteFlux(phi2.oldTime());
-    mrfZones.absoluteFlux(phi2);
-
-    surfaceScalarField phiDrag1
-    (
-        fvc::interpolate(alpha2/rho1*K*rAU1)*phi2 + rAU1f*(g & mesh.Sf())
-    );
-
-    if (g0.value() > 0.0)
-    {
-        phiDrag1 -= ppMagf*fvc::snGrad(alpha1)*mesh.magSf();
-    }
-
-    if (kineticTheory.on())
-    {
-        phiDrag1 -= rAU1f*fvc::snGrad(kineticTheory.pa()/rho1)*mesh.magSf();
-    }
-
-
-    surfaceScalarField phiDrag2
-    (
-        fvc::interpolate(alpha1/rho2*K*rAU2)*phi1 + rAU2f*(g & mesh.Sf())
-    );
-
-    // Fix for gravity on outlet boundary.
-    forAll(p.boundaryField(), patchi)
-    {
-        if (isA<zeroGradientFvPatchScalarField>(p.boundaryField()[patchi]))
-        {
-            phiDrag1.boundaryField()[patchi] = 0.0;
-            phiDrag2.boundaryField()[patchi] = 0.0;
-        }
-    }
-
-    surfaceScalarField phiHbyA1
-    (
-        "phiHbyA1",
-        (fvc::interpolate(HbyA1) & mesh.Sf())
-      + fvc::ddtPhiCorr(rAU1, U1, phi1)
-      + phiDrag1
-    );
-    mrfZones.relativeFlux(phiHbyA1);
-
-    surfaceScalarField phiHbyA2
-    (
-        "phiHbyA2",
-        (fvc::interpolate(HbyA2) & mesh.Sf())
-      + fvc::ddtPhiCorr(rAU2, U2, phi2)
-      + phiDrag2
-    );
-    mrfZones.relativeFlux(phiHbyA2);
-
-    mrfZones.relativeFlux(phi1.oldTime());
-    mrfZones.relativeFlux(phi1);
-    mrfZones.relativeFlux(phi2.oldTime());
-    mrfZones.relativeFlux(phi2);
-
-    surfaceScalarField phiHbyA("phiHbyA", alpha1f*phiHbyA1 + alpha2f*phiHbyA2);
-
-    surfaceScalarField Dp
-    (
-        "Dp",
-        alpha1f*rAU1f/rho1 + alpha2f*rAU2f/rho2
-    );
-
-    while (pimple.correctNonOrthogonal())
-    {
-        fvScalarMatrix pEqn
-        (
-            fvm::laplacian(Dp, p) == fvc::div(phiHbyA)
-        );
-
-        pEqn.setReference(pRefCell, pRefValue);
-
-        pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
-
-        if (pimple.finalNonOrthogonalIter())
-        {
-            surfaceScalarField SfGradp(pEqn.flux()/Dp);
-
-            phi1 = phiHbyA1 - rAU1f*SfGradp/rho1;
-            phi2 = phiHbyA2 - rAU2f*SfGradp/rho2;
-            phi = alpha1f*phi1 + alpha2f*phi2;
-
-            p.relax();
-            SfGradp = pEqn.flux()/Dp;
-
-            U1 = HbyA1 + fvc::reconstruct(phiDrag1 - rAU1f*SfGradp/rho1);
-            U1.correctBoundaryConditions();
-
-            U2 = HbyA2 + fvc::reconstruct(phiDrag2 - rAU2f*SfGradp/rho2);
-            U2.correctBoundaryConditions();
-
-            U = alpha1*U1 + alpha2*U2;
-        }
-    }
-}
-
-#include "continuityErrs.H"
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H b/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H
index 8d09ccd3ef0..0c0cc1543a7 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/UEqns.H
@@ -53,7 +53,7 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
         //+ alpha2/rho1*K*U2           // Explicit drag transfered to p-equation
           - alpha2/rho1*(liftCoeff - Cvm*rho2*DDtU2)
         );
-
+        mrfZones.addCoriolis(U1Eqn);
         U1Eqn.relax();
     }
 
@@ -93,7 +93,7 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime);
         //+ alpha1/rho2*K*U1           // Explicit drag transfered to p-equation
           + alpha1/rho2*(liftCoeff + Cvm*rho2*DDtU1)
         );
-
+        mrfZones.addCoriolis(U2Eqn);
         U2Eqn.relax();
     }
 }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
index b71c7849e5b..314d9b55ea6 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
@@ -93,16 +93,22 @@
 
     dimensionedScalar Cvm
     (
+        "Cvm",
+        dimless,
         transportProperties.lookup("Cvm")
     );
 
     dimensionedScalar Cl
     (
+        "Cl",
+        dimless,
         transportProperties.lookup("Cl")
     );
 
     dimensionedScalar Ct
     (
+        "Ct",
+        dimless,
         transportProperties.lookup("Ct")
     );
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
index 91f8302d7ff..348cc847d71 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
@@ -14,6 +14,12 @@
     volVectorField HbyA2("HbyA2", U2);
     HbyA2 = rAU2*U2Eqn.H();
 
+    mrfZones.absoluteFlux(phi1.oldTime());
+    mrfZones.absoluteFlux(phi1);
+
+    mrfZones.absoluteFlux(phi2.oldTime());
+    mrfZones.absoluteFlux(phi2);
+
     surfaceScalarField phiDrag1
     (
         fvc::interpolate(alpha2/rho1*K*rAU1)*phi2 + rAU1f*(g & mesh.Sf())
@@ -29,6 +35,7 @@
         phiDrag1 -= rAU1f*fvc::snGrad(kineticTheory.pa()/rho1)*mesh.magSf();
     }
 
+
     surfaceScalarField phiDrag2
     (
         fvc::interpolate(alpha1/rho2*K*rAU2)*phi1 + rAU2f*(g & mesh.Sf())
@@ -51,6 +58,7 @@
       + fvc::ddtPhiCorr(rAU1, U1, phi1)
       + phiDrag1
     );
+    mrfZones.relativeFlux(phiHbyA1);
 
     surfaceScalarField phiHbyA2
     (
@@ -59,6 +67,12 @@
       + fvc::ddtPhiCorr(rAU2, U2, phi2)
       + phiDrag2
     );
+    mrfZones.relativeFlux(phiHbyA2);
+
+    mrfZones.relativeFlux(phi1.oldTime());
+    mrfZones.relativeFlux(phi1);
+    mrfZones.relativeFlux(phi2.oldTime());
+    mrfZones.relativeFlux(phi2);
 
     surfaceScalarField phiHbyA("phiHbyA", alpha1f*phiHbyA1 + alpha2f*phiHbyA2);
 
@@ -83,14 +97,8 @@
         {
             surfaceScalarField SfGradp(pEqn.flux()/Dp);
 
-            phi1.boundaryField() ==
-                (fvc::interpolate(U1) & mesh.Sf())().boundaryField();
             phi1 = phiHbyA1 - rAU1f*SfGradp/rho1;
-
-            phi2.boundaryField() ==
-                (fvc::interpolate(U2) & mesh.Sf())().boundaryField();
             phi2 = phiHbyA2 - rAU2f*SfGradp/rho2;
-
             phi = alpha1f*phi1 + alpha2f*phi2;
 
             p.relax();
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
index 19810a15f19..357c7e413ab 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,7 @@ Description
 #include "kineticTheoryModel.H"
 
 #include "pimpleControl.H"
+#include "MRFZones.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -56,6 +57,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "readPPProperties.H"
     #include "initContinuityErrs.H"
+    #include "createMRFZones.H"
     #include "readTimeControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
-- 
GitLab