diff --git a/applications/solvers/compressible/rhoCentralFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/Make/options
index 4714ca611c784d57fd6b598ba1f3b148a36dbcce..b3be16a505ba404ffae656a60cf07afc128b55c6 100644
--- a/applications/solvers/compressible/rhoCentralFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/Make/options
@@ -1,11 +1,18 @@
 EXE_INC = \
+    -IBCs/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -IBCs/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude
+    -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
+    -I$(LIB_SRC)/dynamicMesh/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
+
 EXE_LIBS = \
     -lfiniteVolume \
     -lbasicThermophysicalModels \
     -lspecie \
-    -lrhoCentralFoam
+    -lrhoCentralFoam \
+    -lcompressibleTurbulenceModel \
+    -lcompressibleRASModels \
+    -lcompressibleLESModels \
+    -lmeshTools
diff --git a/applications/solvers/compressible/rhoCentralFoam/createFields.H b/applications/solvers/compressible/rhoCentralFoam/createFields.H
index fc65b3e5b40b3fdc54e58dc8100707aa4fece3d6..60b40db1d13e40147e14a45ebf35524ebd0774cb 100644
--- a/applications/solvers/compressible/rhoCentralFoam/createFields.H
+++ b/applications/solvers/compressible/rhoCentralFoam/createFields.H
@@ -96,3 +96,18 @@ surfaceScalarField neg
     mesh,
     dimensionedScalar("neg", dimless, -1.0)
 );
+
+
+surfaceScalarField phi("phi", mesh.Sf() & fvc::interpolate(rhoU));
+
+Info<< "Creating turbulence model\n" << endl;
+autoPtr<compressible::turbulenceModel> turbulence
+(
+    compressible::turbulenceModel::New
+    (
+        rho,
+        U,
+        phi,
+        thermo
+    )
+);
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
index 403ffc1eef3be02d2f84ff0f41299128927bdc0e..250effbee28f0d9ffbe9f1abe7d75f4ea7dd8be3 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/Make/options
@@ -1,10 +1,10 @@
 EXE_INC = \
     -I.. \
+    -I../BCs/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I../BCs/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude \
+    -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
@@ -13,5 +13,8 @@ EXE_LIBS = \
     -lbasicThermophysicalModels \
     -lspecie \
     -lrhoCentralFoam \
+    -lcompressibleTurbulenceModel \
+    -lcompressibleRASModels \
+    -lcompressibleLESModels \
     -ldynamicMesh \
     -lmeshTools
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 64b5fb5d8721a5f592cc9f9494e51ebe84fef635..8005a77aa7017f949627457587315f27affd72a1 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,7 +22,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Application
-    rhoCentralFoam
+    rhoCentralDyMFoam
 
 Description
     Density-based compressible flow solver based on central-upwind schemes of
@@ -32,6 +32,7 @@ Description
 
 #include "fvCFD.H"
 #include "basicPsiThermo.H"
+#include "turbulenceModel.H"
 #include "zeroGradientFvPatchFields.H"
 #include "fixedRhoFvPatchScalarField.H"
 #include "motionSolver.H"
@@ -185,12 +186,11 @@ int main(int argc, char *argv[])
           + aSf*p_pos - aSf*p_neg
         );
 
-        volTensorField tauMC("tauMC", mu*dev2(Foam::T(fvc::grad(U))));
+        volScalarField muEff(turbulence->muEff());
+        volTensorField tauMC("tauMC", muEff*dev2(Foam::T(fvc::grad(U))));
 
         // --- Solve density
-        Info<< max(rho) << " " << min(rho) << endl;
         solve(fvm::ddt(rho) + fvc::div(phi));
-        Info<< max(rho) << " " << min(rho) << endl;
 
         // --- Solve momentum
         solve(fvm::ddt(rhoU) + fvc::div(phiUp));
@@ -206,7 +206,7 @@ int main(int argc, char *argv[])
             solve
             (
                 fvm::ddt(rho, U) - fvc::ddt(rho, U)
-              - fvm::laplacian(mu, U)
+              - fvm::laplacian(muEff, U)
               - fvc::div(tauMC)
             );
             rhoU = rho*U;
@@ -216,7 +216,7 @@ int main(int argc, char *argv[])
         surfaceScalarField sigmaDotU
         (
             (
-                fvc::interpolate(mu)*mesh.magSf()*fvc::snGrad(U)
+                fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
               + (mesh.Sf() & fvc::interpolate(tauMC))
             )
             & (a_pos*U_pos + a_neg*U_neg)
@@ -240,12 +240,12 @@ int main(int argc, char *argv[])
 
         if (!inviscid)
         {
-            volScalarField k("k", thermo.Cp()*mu/Pr);
+            volScalarField k("k", thermo.Cp()*muEff/Pr);
             solve
             (
                 fvm::ddt(rho, e) - fvc::ddt(rho, e)
-              - fvm::laplacian(thermo.alpha(), e)
-              + fvc::laplacian(thermo.alpha(), e)
+              - fvm::laplacian(turbulence->alphaEff(), e)
+              + fvc::laplacian(turbulence->alpha(), e)
               - fvc::laplacian(k, T)
             );
             thermo.correct();
@@ -258,6 +258,8 @@ int main(int argc, char *argv[])
         p.correctBoundaryConditions();
         rho.boundaryField() = psi.boundaryField()*p.boundaryField();
 
+        turbulence->correct();
+
         runTime.write();
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index 71ce4c218791a38c7adced5b374d6f454284f3aa..dd0f4ee4a507f0b851e157868fa7f825e66e4d4d 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,6 +32,7 @@ Description
 
 #include "fvCFD.H"
 #include "basicPsiThermo.H"
+#include "turbulenceModel.H"
 #include "zeroGradientFvPatchFields.H"
 #include "fixedRhoFvPatchScalarField.H"
 
@@ -51,7 +52,7 @@ int main(int argc, char *argv[])
 
     #include "readFluxScheme.H"
 
-    dimensionedScalar v_zero("v_zero",dimVolume/dimTime, 0.0);
+    dimensionedScalar v_zero("v_zero", dimVolume/dimTime, 0.0);
 
     Info<< "\nStarting time loop\n" << endl;
 
@@ -128,14 +129,6 @@ int main(int argc, char *argv[])
 
         surfaceScalarField amaxSf("amaxSf", max(mag(am), mag(ap)));
 
-        #include "compressibleCourantNo.H"
-        #include "readTimeControls.H"
-        #include "setDeltaT.H"
-
-        runTime++;
-
-        Info<< "Time = " << runTime.timeName() << nl << endl;
-
         surfaceScalarField aSf(am*a_pos);
 
         if (fluxScheme == "Tadmor")
@@ -152,6 +145,18 @@ int main(int argc, char *argv[])
         surfaceScalarField aphiv_pos(phiv_pos - aSf);
         surfaceScalarField aphiv_neg(phiv_neg + aSf);
 
+        // Reuse amaxSf for the maximum positive and negative fluxes
+        // estimated by the central scheme
+        amaxSf = max(mag(aphiv_pos), mag(aphiv_neg));
+
+        #include "compressibleCourantNo.H"
+        #include "readTimeControls.H"
+        #include "setDeltaT.H"
+
+        runTime++;
+
+        Info<< "Time = " << runTime.timeName() << nl << endl;
+
         surfaceScalarField phi("phi", aphiv_pos*rho_pos + aphiv_neg*rho_neg);
 
         surfaceVectorField phiUp
@@ -167,7 +172,8 @@ int main(int argc, char *argv[])
           + aSf*p_pos - aSf*p_neg
         );
 
-        volTensorField tauMC("tauMC", mu*dev2(Foam::T(fvc::grad(U))));
+        volScalarField muEff(turbulence->muEff());
+        volTensorField tauMC("tauMC", muEff*dev2(Foam::T(fvc::grad(U))));
 
         // --- Solve density
         solve(fvm::ddt(rho) + fvc::div(phi));
@@ -188,7 +194,7 @@ int main(int argc, char *argv[])
             solve
             (
                 fvm::ddt(rho, U) - fvc::ddt(rho, U)
-              - fvm::laplacian(mu, U)
+              - fvm::laplacian(muEff, U)
               - fvc::div(tauMC)
             );
             rhoU = rho*U;
@@ -198,7 +204,7 @@ int main(int argc, char *argv[])
         surfaceScalarField sigmaDotU
         (
             (
-                fvc::interpolate(mu)*mesh.magSf()*fvc::snGrad(U)
+                fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
               + (mesh.Sf() & fvc::interpolate(tauMC))
             )
             & (a_pos*U_pos + a_neg*U_neg)
@@ -222,12 +228,12 @@ int main(int argc, char *argv[])
 
         if (!inviscid)
         {
-            volScalarField k("k", thermo.Cp()*mu/Pr);
+            volScalarField k("k", thermo.Cp()*muEff/Pr);
             solve
             (
                 fvm::ddt(rho, e) - fvc::ddt(rho, e)
-              - fvm::laplacian(thermo.alpha(), e)
-              + fvc::laplacian(thermo.alpha(), e)
+              - fvm::laplacian(turbulence->alphaEff(), e)
+              + fvc::laplacian(turbulence->alpha(), e)
               - fvc::laplacian(k, T)
             );
             thermo.correct();
@@ -240,6 +246,8 @@ int main(int argc, char *argv[])
         p.correctBoundaryConditions();
         rho.boundaryField() = psi.boundaryField()*p.boundaryField();
 
+        turbulence->correct();
+
         runTime.write();
 
         Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/Allwmake b/applications/solvers/compressible/rhoPimpleFoam/Allwmake
new file mode 100755
index 0000000000000000000000000000000000000000..29bc918085481fa710a95e1f48eeb37f74e16c55
--- /dev/null
+++ b/applications/solvers/compressible/rhoPimpleFoam/Allwmake
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+set -x
+
+wmake
+wmake rhoPorousMRFPimpleFoam
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
index 3c29a987d3617a7cddccdbb8de031d6107f10141..d1ade4b457277fa1a0c35dfa3dd135c7b6b9917c 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
@@ -39,6 +39,16 @@
 
     #include "compressibleCreatePhi.H"
 
+    dimensionedScalar rhoMax
+    (
+        mesh.solutionDict().subDict("PIMPLE").lookup("rhoMax")
+    );
+
+    dimensionedScalar rhoMin
+    (
+        mesh.solutionDict().subDict("PIMPLE").lookup("rhoMin")
+    );
+
     Info<< "Creating turbulence model\n" << endl;
     autoPtr<compressible::turbulenceModel> turbulence
     (
diff --git a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
index 84e64518900e2e470c8b78bee74b52314ef88485..29ceb721c7269a89c6fa584d3d03874f96b4a17e 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/pEqn.H
@@ -1,4 +1,7 @@
 rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
 
 U = rAU*UEqn().H();
 
@@ -98,6 +101,9 @@ p.relax();
 
 // Recalculate density from the relaxed pressure
 rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
 Info<< "rho max/min : " << max(rho).value()
     << " " << min(rho).value() << endl;
 
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index be0e09ee28bdd07346fd372454a68256f31a67c4..b91675f761da4763764b6756a335cd9ce643f148 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -75,6 +75,7 @@ int main(int argc, char *argv[])
             if (nOuterCorr != 1)
             {
                 p.storePrevIter();
+                rho.storePrevIter();
             }
 
             #include "UEqn.H"
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/Make/files b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/files
similarity index 100%
rename from applications/solvers/compressible/rhoPorousMRFPimpleFoam/Make/files
rename to applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/files
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options
similarity index 94%
rename from applications/solvers/compressible/rhoPorousMRFPimpleFoam/Make/options
rename to applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options
index 809b4a63a1679782436d9ffd26c7e05d45c7d9fa..4067875fbc6f02fa0ca80cc96e289e6d8e33a894 100644
--- a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I../rhoPimpleFoam \
+    -I.. \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
     -I$(LIB_SRC)/finiteVolume/cfdTools \
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/UEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H
similarity index 100%
rename from applications/solvers/compressible/rhoPorousMRFPimpleFoam/UEqn.H
rename to applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/UEqn.H
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H
new file mode 100644
index 0000000000000000000000000000000000000000..487a55d8eddc44a6fe987ec15b06165ed4b4008e
--- /dev/null
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/createZones.H
@@ -0,0 +1,5 @@
+    MRFZones mrfZones(mesh);
+    mrfZones.correctBoundaryVelocity(U);
+
+    porousZones pZones(mesh);
+    Switch pressureImplicitPorosity(false);
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H
similarity index 80%
rename from applications/solvers/compressible/rhoPorousMRFPimpleFoam/pEqn.H
rename to applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H
index 3802c9298a6fb7d2495d0a680513db62a0e3943b..87794f8a47661622e2e03b4e0deaf0edd2d068cd 100644
--- a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/pEqn.H
@@ -1,4 +1,7 @@
 rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
 
 volScalarField rAU(1.0/UEqn().A());
 U = rAU*UEqn().H();
@@ -96,30 +99,17 @@ else
 #include "rhoEqn.H"
 #include "compressibleContinuityErrs.H"
 
-//if (oCorr != nOuterCorr-1)
-{
-    // Explicitly relax pressure for momentum corrector
-    p.relax();
+// Explicitly relax pressure for momentum corrector
+p.relax();
 
-    rho = thermo.rho();
-    rho = max(rho, rhoMin);
-    rho = min(rho, rhoMax);
-    rho.relax();
-    Info<< "rho max/min : " << max(rho).value()
-        << " " << min(rho).value() << endl;
-}
+rho = thermo.rho();
+rho = max(rho, rhoMin);
+rho = min(rho, rhoMax);
+rho.relax();
+Info<< "rho max/min : " << max(rho).value()
+    << " " << min(rho).value() << endl;
 
 U -= rAU*fvc::grad(p);
 U.correctBoundaryConditions();
 
 DpDt = fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
-
-// For closed-volume cases adjust the pressure and density levels
-// to obey overall mass continuity
-/*
-if (closedVolume)
-{
-    p += (initialMass - fvc::domainIntegrate(psi*p))
-        /fvc::domainIntegrate(psi);
-}
-*/
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C
similarity index 99%
rename from applications/solvers/compressible/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C
rename to applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C
index 0a3a89982133044997cf562a0b4891e72f9b0f86..d72ff3af5a22b3d16d9773cffccdbffbe6ac815e 100644
--- a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C
@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createMesh.H"
     #include "createFields.H"
+    #include "createZones.H"
     #include "initContinuityErrs.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPorousMRFPimpleFoam/createFields.H
deleted file mode 100644
index 9dd30f53cfe865194b2b8f6119e2e1f38148127b..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/rhoPorousMRFPimpleFoam/createFields.H
+++ /dev/null
@@ -1,77 +0,0 @@
-    Info<< "Reading thermophysical properties\n" << endl;
-
-    autoPtr<basicPsiThermo> pThermo
-    (
-        basicPsiThermo::New(mesh)
-    );
-    basicPsiThermo& thermo = pThermo();
-
-    volScalarField& p = thermo.p();
-    volScalarField& h = thermo.h();
-    const volScalarField& psi = thermo.psi();
-
-    volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
-        ),
-        thermo.rho()
-    );
-
-    Info<< "Reading field U\n" << endl;
-    volVectorField U
-    (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    #include "compressibleCreatePhi.H"
-
-    dimensionedScalar rhoMax
-    (
-        mesh.solutionDict().subDict("PIMPLE").lookup("rhoMax")
-    );
-
-    dimensionedScalar rhoMin
-    (
-        mesh.solutionDict().subDict("PIMPLE").lookup("rhoMin")
-    );
-
-    Info<< "Creating turbulence model\n" << endl;
-    autoPtr<compressible::turbulenceModel> turbulence
-    (
-        compressible::turbulenceModel::New
-        (
-            rho,
-            U,
-            phi,
-            thermo
-        )
-    );
-
-    //dimensionedScalar initialMass = fvc::domainIntegrate(rho);
-
-
-    Info<< "Creating field DpDt\n" << endl;
-    volScalarField DpDt
-    (
-        fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
-    );
-
-    MRFZones mrfZones(mesh);
-    mrfZones.correctBoundaryVelocity(U);
-
-    porousZones pZones(mesh);
-    Switch pressureImplicitPorosity(false);
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoPorousSimpleFoam/createFields.H
deleted file mode 100644
index 1a242bdfffa4f2174e0235841cbc7ee702d79105..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/rhoPorousSimpleFoam/createFields.H
+++ /dev/null
@@ -1,98 +0,0 @@
-    Info<< "Reading thermophysical properties\n" << endl;
-
-    autoPtr<basicPsiThermo> pThermo
-    (
-        basicPsiThermo::New(mesh)
-    );
-    basicPsiThermo& thermo = pThermo();
-
-    volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            runTime.timeName(),
-            mesh,
-            IOobject::READ_IF_PRESENT,
-            IOobject::AUTO_WRITE
-        ),
-        thermo.rho()
-    );
-
-    volScalarField& p = thermo.p();
-    volScalarField& h = thermo.h();
-    const volScalarField& psi = thermo.psi();
-
-
-    Info<< "Reading field U\n" << endl;
-    volVectorField U
-    (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    #include "compressibleCreatePhi.H"
-
-
-    label pRefCell = 0;
-    scalar pRefValue = 0.0;
-    setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue);
-
-    dimensionedScalar rhoMax
-    (
-        mesh.solutionDict().subDict("SIMPLE").lookup("rhoMax")
-    );
-
-    dimensionedScalar rhoMin
-    (
-        mesh.solutionDict().subDict("SIMPLE").lookup("rhoMin")
-    );
-
-    Info<< "Creating turbulence model\n" << endl;
-    autoPtr<compressible::RASModel> turbulence
-    (
-        compressible::RASModel::New
-        (
-            rho,
-            U,
-            phi,
-            thermo
-        )
-    );
-
-    dimensionedScalar initialMass = fvc::domainIntegrate(rho);
-
-    thermalPorousZones pZones(mesh);
-    Switch pressureImplicitPorosity(false);
-
-    // nUCorrectors used for pressureImplicitPorosity
-    int nUCorr = 0;
-    if (pZones.size())
-    {
-        // nUCorrectors for pressureImplicitPorosity
-        if (mesh.solutionDict().subDict("SIMPLE").found("nUCorrectors"))
-        {
-            nUCorr = readInt
-            (
-                mesh.solutionDict().subDict("SIMPLE").lookup("nUCorrectors")
-            );
-        }
-
-        if (nUCorr > 0)
-        {
-            pressureImplicitPorosity = true;
-            Info<< "Using pressure implicit porosity" << endl;
-        }
-        else
-        {
-            Info<< "Using pressure explicit porosity" << endl;
-        }
-    }
-
diff --git a/applications/solvers/compressible/rhoSimpleFoam/Allwmake b/applications/solvers/compressible/rhoSimpleFoam/Allwmake
new file mode 100755
index 0000000000000000000000000000000000000000..d4c5bc282827d9be51b47f46630cac5edc022b9e
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimpleFoam/Allwmake
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+set -x
+
+wmake
+wmake rhoPorousSimpleFoam
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/Make/files b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files
similarity index 100%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/Make/files
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/files
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
similarity index 98%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/Make/options
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
index a4cdecf368a7e68d64f9e46a3eda99672647142f..14e73bf2a5c70655050bcbf6bdb1a45f326d8365 100644
--- a/applications/solvers/compressible/rhoPorousSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I.. \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/thermalPorousZone/lnInclude \
     -I$(LIB_SRC)/turbulenceModels \
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H
similarity index 100%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/UEqn.H
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H
new file mode 100644
index 0000000000000000000000000000000000000000..8640b360e086df19dc8c7408872772ce5adfd2d8
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createPorousZones.H
@@ -0,0 +1,27 @@
+    thermalPorousZones pZones(mesh);
+    Switch pressureImplicitPorosity(false);
+
+    // nUCorrectors used for pressureImplicitPorosity
+    int nUCorr = 0;
+    if (pZones.size())
+    {
+        // nUCorrectors for pressureImplicitPorosity
+        if (mesh.solutionDict().subDict("SIMPLE").found("nUCorrectors"))
+        {
+            nUCorr = readInt
+            (
+                mesh.solutionDict().subDict("SIMPLE").lookup("nUCorrectors")
+            );
+        }
+
+        if (nUCorr > 0)
+        {
+            pressureImplicitPorosity = true;
+            Info<< "Using pressure implicit porosity" << endl;
+        }
+        else
+        {
+            Info<< "Using pressure explicit porosity" << endl;
+        }
+    }
+
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/hEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/hEqn.H
similarity index 68%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/hEqn.H
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/hEqn.H
index 9e5138de8ad858455caa6a8d165a6b281ce6f8cc..ff0b91bcb7aa71baafec4132306043b07b6ffd04 100644
--- a/applications/solvers/compressible/rhoPorousSimpleFoam/hEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/hEqn.H
@@ -5,8 +5,8 @@
       - fvm::Sp(fvc::div(phi), h)
       - fvm::laplacian(turbulence->alphaEff(), h)
      ==
-        fvc::div(phi/fvc::interpolate(rho)*fvc::interpolate(p, "div(U,p)"))
-      - p*fvc::div(phi/fvc::interpolate(rho))
+        fvc::div(phi/fvc::interpolate(rho), rho/psi, "div(U,p)")
+      - (rho/psi)*fvc::div(phi/fvc::interpolate(rho))
     );
 
     pZones.addEnthalpySource(thermo, rho, hEqn);
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
similarity index 100%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/pEqn.H
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/pEqn.H
diff --git a/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
similarity index 98%
rename from applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
rename to applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
index 2b77cf6265c8d2a767d993460eef87c5522c1d45..005e27b4a5aacf4d59dd6df25fc2841011b8646e 100644
--- a/applications/solvers/compressible/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
@@ -43,6 +43,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createMesh.H"
     #include "createFields.H"
+    #include "createPorousZones.H"
     #include "initContinuityErrs.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C
index fa6c9f3594f8da9c2c5c1f01c68b2dbe04889781..c804e4e45d89044bf48d5efd99e5f654003e0a27 100644
--- a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C
+++ b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2010-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/compressible/sonicDyMFoam/compressibleContinuityErrs.H b/applications/solvers/compressible/sonicDyMFoam/compressibleContinuityErrs.H
deleted file mode 100644
index 1d869cc58dae738d345b2448f7dfdcf7a63c36cb..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicDyMFoam/compressibleContinuityErrs.H
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    #include "rhoEqn.H"
-}
-{
-    scalar sumLocalContErr =
-        sum
-        (
-            mag(rho.internalField() - (psi*p)().internalField())
-        )/sum(rho.internalField());
-
-    scalar globalContErr =
-        sum(rho.internalField() - (psi*p)().internalField())
-       /sum(rho.internalField());
-
-    cumulativeContErr += globalContErr;
-
-    Info<< "time step continuity errors : sum local = " << sumLocalContErr
-         << ", global = " << globalContErr
-         << ", cumulative = " << cumulativeContErr << endl;
-}
diff --git a/applications/solvers/compressible/sonicDyMFoam/createFields.H b/applications/solvers/compressible/sonicDyMFoam/createFields.H
deleted file mode 100644
index 8367d7e3311f745026c65d2cc607757afef02825..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicDyMFoam/createFields.H
+++ /dev/null
@@ -1,57 +0,0 @@
-    Info<< "Reading thermophysical properties\n" << endl;
-
-    autoPtr<basicPsiThermo> pThermo
-    (
-        basicPsiThermo::New(mesh)
-    );
-    basicPsiThermo& thermo = pThermo();
-
-    volScalarField& p = thermo.p();
-    volScalarField& e = thermo.e();
-    const volScalarField& psi = thermo.psi();
-
-    volScalarField rho
-    (
-        IOobject
-        (
-            "rho",
-            runTime.timeName(),
-            mesh
-        ),
-        thermo.rho()
-    );
-
-    Info<< "Reading field U\n" << endl;
-    volVectorField U
-    (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-#   include "compressibleCreatePhi.H"
-
-
-    Info<< "Creating turbulence model\n" << endl;
-    autoPtr<compressible::turbulenceModel> turbulence
-    (
-        compressible::turbulenceModel::New
-        (
-            rho,
-            U,
-            phi,
-            thermo
-        )
-    );
-
-    Info<< "Creating field DpDt\n" << endl;
-    volScalarField DpDt
-    (
-        fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p)
-    );
diff --git a/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H
deleted file mode 100644
index 4e19adaae48e5d432cde086746bd2472899eab33..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H
+++ /dev/null
@@ -1,23 +0,0 @@
-    Info<< "Reading thermodynamicProperties\n" << endl;
-
-    IOdictionary thermodynamicProperties
-    (
-        IOobject
-        (
-            "thermodynamicProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE
-        )
-    );
-
-    dimensionedScalar R
-    (
-        thermodynamicProperties.lookup("R")
-    );
-
-    dimensionedScalar Cv
-    (
-        thermodynamicProperties.lookup("Cv")
-    );
diff --git a/applications/solvers/compressible/sonicFoam/Allwmake b/applications/solvers/compressible/sonicFoam/Allwmake
new file mode 100755
index 0000000000000000000000000000000000000000..27c1194eaf6d808901fdc6412a81b6bb18d73145
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/Allwmake
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+set -x
+
+wmake
+wmake sonicDyMFoam
+wmake sonicLiquidFoam
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/solvers/compressible/sonicFoam/UEqn.H b/applications/solvers/compressible/sonicFoam/UEqn.H
index 25506783aee86c36049d916b0bc349469a6510d4..27edbece47f8dc336fc17db7de91ff5c442f2d38 100644
--- a/applications/solvers/compressible/sonicFoam/UEqn.H
+++ b/applications/solvers/compressible/sonicFoam/UEqn.H
@@ -1,8 +1,8 @@
 fvVectorMatrix UEqn
 (
     fvm::ddt(rho, U)
-    + fvm::div(phi, U)
-    + turbulence->divDevRhoReff(U)
+  + fvm::div(phi, U)
+  + turbulence->divDevRhoReff(U)
 );
 
 solve(UEqn == -fvc::grad(p));
diff --git a/applications/solvers/compressible/sonicDyMFoam/Make/files b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/files
similarity index 100%
rename from applications/solvers/compressible/sonicDyMFoam/Make/files
rename to applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/files
diff --git a/applications/solvers/compressible/sonicDyMFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
similarity index 95%
rename from applications/solvers/compressible/sonicDyMFoam/Make/options
rename to applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
index 81495fb1f65aa9f1d4bfb84be4ce4be23017b8ee..73e3e02dc4acbb2d18afafaa48863c59d5e2f3e3 100644
--- a/applications/solvers/compressible/sonicDyMFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I../sonicFoam \
+    -I.. \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..98cc22d15a50bec727f9b81389bc3a80404efcbb
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/pEqn.H
@@ -0,0 +1,33 @@
+rho = thermo.rho();
+
+volScalarField rAU(1.0/UEqn.A());
+U = UEqn.H()/UEqn.A();
+
+surfaceScalarField phid
+(
+    "phid",
+    fvc::interpolate(psi)
+   *(
+        (fvc::interpolate(U) & mesh.Sf())
+      - fvc::meshPhi(rho, U)
+    )
+);
+
+for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+{
+    fvScalarMatrix pEqn
+    (
+        fvm::ddt(psi, p)
+      + fvm::div(phid, p)
+      - fvm::laplacian(rho*rAU, p)
+    );
+
+    pEqn.solve();
+
+    phi = pEqn.flux();
+}
+
+#include "compressibleContinuityErrs.H"
+
+U -= rAU*fvc::grad(p);
+U.correctBoundaryConditions();
diff --git a/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
similarity index 66%
rename from applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C
rename to applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
index 453a84b9a3fc606be52c6c07b2c7f59ee32f6901..dd870e9a311c5650efe4a2307e984f882d38169f 100644
--- a/applications/solvers/compressible/sonicDyMFoam/sonicDyMFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -62,14 +62,7 @@ int main(int argc, char *argv[])
 
         #include "rhoEqn.H"
 
-        fvVectorMatrix UEqn
-        (
-            fvm::ddt(rho, U)
-          + fvm::div(phi, U)
-          + turbulence->divDevRhoReff(U)
-        );
-
-        solve(UEqn == -fvc::grad(p));
+        #include "UEqn.H"
 
         #include "eEqn.H"
 
@@ -78,50 +71,12 @@ int main(int argc, char *argv[])
 
         for (int corr=0; corr<nCorr; corr++)
         {
-            U = UEqn.H()/UEqn.A();
-
-            surfaceScalarField phid
-            (
-                "phid",
-                fvc::interpolate(psi)
-               *(
-                    (fvc::interpolate(U) & mesh.Sf()) - fvc::meshPhi(rho, U)
-                )
-            );
-
-            for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
-            {
-                fvScalarMatrix pEqn
-                (
-                    fvm::ddt(psi, p)
-                  + fvm::div(phid, p)
-                  - fvm::laplacian(rho/UEqn.A(), p)
-                );
-
-                pEqn.solve();
-
-                phi = pEqn.flux();
-            }
-
-            #include "compressibleContinuityErrs.H"
-
-            U -= fvc::grad(p)/UEqn.A();
-            U.correctBoundaryConditions();
+            #include "pEqn.H"
         }
 
-        DpDt = fvc::DDt
-        (
-            surfaceScalarField
-            (
-                "phiU",
-                phi/fvc::interpolate(rho) + fvc::meshPhi(rho, U)
-            ),
-            p
-        );
-
         turbulence->correct();
 
-        rho = psi*p;
+        rho = thermo.rho();
 
         runTime.write();
 
diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C
index 820945edeac15a03a586e8278ac686e2f36aec30..2923446e2fcf7056a6ef4de7ac116148475e31cd 100644
--- a/applications/solvers/compressible/sonicFoam/sonicFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/compressible/sonicLiquidFoam/Make/files b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/files
similarity index 100%
rename from applications/solvers/compressible/sonicLiquidFoam/Make/files
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/files
diff --git a/applications/solvers/compressible/sonicLiquidFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options
similarity index 100%
rename from applications/solvers/compressible/sonicLiquidFoam/Make/options
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/Make/options
diff --git a/applications/solvers/compressible/sonicLiquidFoam/compressibleContinuityErrs.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H
similarity index 100%
rename from applications/solvers/compressible/sonicLiquidFoam/compressibleContinuityErrs.H
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/compressibleContinuityErrs.H
diff --git a/applications/solvers/compressible/sonicLiquidFoam/createFields.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H
similarity index 100%
rename from applications/solvers/compressible/sonicLiquidFoam/createFields.H
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H
diff --git a/applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H
similarity index 100%
rename from applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readThermodynamicProperties.H
diff --git a/applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readTransportProperties.H
similarity index 100%
rename from applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/readTransportProperties.H
diff --git a/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
similarity index 98%
rename from applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C
rename to applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
index 86987d92c91d503e8f8b0625cfcb1a8056eb515d..c948d4737ce39cc4b86753f0d6d5f10e678a5197 100644
--- a/applications/solvers/compressible/sonicLiquidFoam/sonicLiquidFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H b/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H
deleted file mode 100644
index c30f65b445886d784d88d0f421f99865fcd423cc..0000000000000000000000000000000000000000
--- a/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H
+++ /dev/null
@@ -1,18 +0,0 @@
-    Info<< "Reading transportProperties\n" << endl;
-
-    IOdictionary transportProperties
-    (
-        IOobject
-        (
-            "transportProperties",
-            runTime.constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE
-        )
-    );
-
-    dimensionedScalar mu
-    (
-        transportProperties.lookup("mu")
-    );
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh b/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh
index 1e165b9bbfb5ba75b7c6f4221d74ab1c1399d485..356077d324385f02aacf3d5da573554326a70c62 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh
+++ b/tutorials/combustion/fireFoam/les/smallPoolFire2D/0/p_rgh
@@ -24,12 +24,17 @@ boundaryField
     outlet
     {
         type            buoyantPressure;
-        value           uniform 101325;
+        value           $internalField;
     }
-
     sides
     {
-        type            fixedValue;
+        type            totalPressure;
+        p0              $internalField;
+        U               U;
+        phi             phi;
+        rho             none;
+        psi             none;
+        gamma           1;
         value           $internalField;
     }
     base
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh b/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh
index 47b78e4c87fea035fb82147454c8d67729bed9fe..38b3c31d20bb09da42ba8cd68c635642a74d03f3 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh
+++ b/tutorials/combustion/fireFoam/les/smallPoolFire3D/0/p_rgh
@@ -26,10 +26,15 @@ boundaryField
         type            buoyantPressure;
         value           $internalField;
     }
-
     sides
     {
-        type            fixedValue;
+        type            totalPressure;
+        p0              $internalField;
+        U               U;
+        phi             phi;
+        rho             none;
+        psi             none;
+        gamma           1;
         value           $internalField;
     }
     base
diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution b/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution
index 8c855503fc9086bd9472a576a304743abc1b90c7..72c26cef38ea125f7534bbf1405b2529dd0c5e5a 100644
--- a/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution
+++ b/tutorials/combustion/fireFoam/les/smallPoolFire3D/system/fvSolution
@@ -18,18 +18,11 @@ FoamFile
 
 solvers
 {
-    rho
+    "(rho|rhoFinal)"
     {
         solver              PCG;
         preconditioner      DIC;
         tolerance           1e-7;
-        relTol              0.1;
-    };
-
-    rhoFinal
-    {
-        $rho;
-        tolerance           1e-7;
         relTol              0;
     };
 
@@ -69,7 +62,6 @@ solvers
         relTol          0;
     };
 
-
     Ii
     {
         solver              GAMG;
diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralFoam/forwardStep/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/forwardStep/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/obliqueShock/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralFoam/shockTube/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/shockTube/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/shockTube/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/turbulenceProperties b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..d0a0998654c0e013d16bc1b9e58e51ff26d40edc
--- /dev/null
+++ b/tutorials/compressible/rhoCentralFoam/wedge15Ma5/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  laminar;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution
index 0cfde23d3160ff33001154e5ef7d977d0b156910..739c8a48a6199811b1283e0ec03fcb08c1ca9ef3 100644
--- a/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/les/pitzDaily/system/fvSolution
@@ -52,6 +52,8 @@ PIMPLE
     nOuterCorrectors 2;
     nCorrectors     1;
     nNonOrthogonalCorrectors 0;
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.5;
+    rhoMax          rhoMax [ 1 -3 0 0 0 ] 2.0;
 }
 
 relaxationFactors
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution
index 58e0443d4685f0a3172c335feec5ebab5461c3b5..8c260da89ef0e232fd91b5dac1052490eda38f34 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/ras/angledDuct/system/fvSolution
@@ -55,6 +55,8 @@ PIMPLE
     nOuterCorrectors 50;
     nCorrectors     1;
     nNonOrthogonalCorrectors 0;
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.5;
+    rhoMax          rhoMax [ 1 -3 0 0 0 ] 2.0;
 }
 
 relaxationFactors
diff --git a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution b/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution
index 80bab234da9c9f0d3af980fe0af691e27b89622d..197228f4bceee6e824e47f13cb165d6842a9a408 100644
--- a/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution
+++ b/tutorials/compressible/rhoPimpleFoam/ras/cavity/system/fvSolution
@@ -59,6 +59,8 @@ PIMPLE
     nOuterCorrectors 1;
     nCorrectors     2;
     nNonOrthogonalCorrectors 0;
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.5;
+    rhoMax          rhoMax [ 1 -3 0 0 0 ] 2.0;
 }
 
 
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes
index 184f6b4d1b28b46389552c5643da817b67e2abb5..8792a00a157e416a49f41d4ca3143e01ee9d01fe 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSchemes
@@ -23,8 +23,6 @@ ddtSchemes
 gradSchemes
 {
     default         Gauss linear;
-    grad(U)         Gauss linear;
-    grad(p)         Gauss linear;
 }
 
 divSchemes
@@ -34,6 +32,7 @@ divSchemes
     div(phi,h)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
     div(phi,k)      Gauss upwind;
+    div(U,p)        Gauss upwind;
 }
 
 laplacianSchemes
@@ -50,7 +49,6 @@ laplacianSchemes
 interpolationSchemes
 {
     default         linear;
-    div(U,p)        upwind phi;
 }
 
 snGradSchemes
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
index f9e889652c763cf0db7553fe8c6c15502a7ec1b8..e6b7b5ec15bfad96ef7e51808e8dc102a742d17d 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctExplicit/system/fvSolution
@@ -57,7 +57,7 @@ solvers
 SIMPLE
 {
     nNonOrthogonalCorrectors 0;
-    rhoMin          rhoMin [ 1 -3 0 0 0 ] 1.0;
+    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.5;
     rhoMax          rhoMax [ 1 -3 0 0 0 ] 1.5;
 }
 
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary
index dc9ecffb7b801511bd4073b501bb3c346fb6a8aa..117139f5052922888ebdd7cdd4ce23fc1237f4bd 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/constant/polyMesh/boundary
@@ -8,7 +8,7 @@
 FoamFile
 {
     version     2.0;
-    format      ascii;
+    format      binary;
     class       polyBoundaryMesh;
     location    "constant/polyMesh";
     object      boundary;
diff --git a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes
index 92ad9e0855944ca9448da16d0a2687ed192ae659..a5f9ea99ddaf1fe58620732d1f4f0f66489b3269 100644
--- a/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes
+++ b/tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit/system/fvSchemes
@@ -23,8 +23,6 @@ ddtSchemes
 gradSchemes
 {
     default         Gauss linear;
-    grad(U)         Gauss linear;
-    grad(p)         Gauss linear;
 }
 
 divSchemes
@@ -34,6 +32,7 @@ divSchemes
     div(phi,h)      Gauss upwind;
     div(phi,epsilon) Gauss upwind;
     div(phi,k)      Gauss upwind;
+    div(U,p)        Gauss upwind;
 }
 
 laplacianSchemes
@@ -49,7 +48,6 @@ laplacianSchemes
 interpolationSchemes
 {
     default         linear;
-    div(U,p)        upwind phi;
 }
 
 snGradSchemes
diff --git a/tutorials/compressible/sonicFoam/laminar/shockTube/system/sampleDict b/tutorials/compressible/sonicFoam/laminar/shockTube/system/sampleDict
index 5c511b54cb2e180525e2e3a3067f2ef2dc59efc5..2e59f91be1f4b9f4c03010958998d9df94d5e5cd 100644
--- a/tutorials/compressible/sonicFoam/laminar/shockTube/system/sampleDict
+++ b/tutorials/compressible/sonicFoam/laminar/shockTube/system/sampleDict
@@ -19,21 +19,22 @@ interpolationScheme cellPoint;
 
 setFormat       raw;
 
+surfaceFormat   dx;
+surfaces        ();
+
 sets
 (
     data
     {
         type    uniform;
         axis    x;
-        start   ( -4.995 0 0 );
-        end     ( 4.995 0 0 );
+        start   (-4.995 0 0);
+        end     (4.995 0 0);
         nPoints 1000;
     }
 );
 
-surfaces        ();
-
-fields          ( T magU p );
+fields          (T magU p);
 
 
 // ************************************************************************* //