From 8e3e1808ec0ef83ed1229a8af70b6a3c46ab8258 Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Mon, 16 Apr 2012 11:47:28 +0100
Subject: [PATCH] compressibleInterFoam: Added thermal support

---
 .../compressibleInterFoam/Make/files          |   1 +
 .../multiphase/compressibleInterFoam/TEqn.H   |  20 ++
 .../compressibleInterDyMFoam.C                |   8 +-
 .../compressibleInterDyMFoam/pEqn.H           |  88 --------
 .../compressibleInterFoam.C                   |   5 +-
 .../compressibleInterFoam/createFields.H      | 105 ++++++++--
 .../wallHeatTransferFvPatchScalarField.C      | 184 +++++++++++++++++
 .../wallHeatTransferFvPatchScalarField.H      | 194 ++++++++++++++++++
 .../multiphase/compressibleInterFoam/pEqn.H   |  61 +++---
 .../les/depthCharge2D/0/T.org                 |  34 +++
 .../0/{alpha1.org => alphawater.org}          |   2 +-
 .../les/depthCharge2D/Allclean                |   3 +-
 .../les/depthCharge2D/Allrun                  |   3 +-
 .../constant/polyMesh/blockMeshDict           |  34 ++-
 .../constant/transportProperties              |  14 +-
 .../les/depthCharge2D/system/controlDict      |   2 +-
 .../les/depthCharge2D/system/fvSchemes        |   5 +-
 .../les/depthCharge2D/system/fvSolution       |   2 +-
 .../les/depthCharge2D/system/setFieldsDict    |   8 +-
 .../les/depthCharge3D/0/T.org                 |  29 +++
 .../0/{alpha1.org => alphawater.org}          |   2 +-
 .../les/depthCharge3D/Allclean                |   2 +-
 .../les/depthCharge3D/Allrun                  |   3 +-
 .../constant/transportProperties              |  14 +-
 .../les/depthCharge3D/system/fvSchemes        |   5 +-
 .../les/depthCharge3D/system/fvSolution       |   2 +-
 .../les/depthCharge3D/system/setFieldsDict    |   8 +-
 27 files changed, 651 insertions(+), 187 deletions(-)
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/TEqn.H
 delete mode 100644 applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
 create mode 100644 tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/T.org
 rename tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/{alpha1.org => alphawater.org} (97%)
 create mode 100644 tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/T.org
 rename tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/{alpha1.org => alphawater.org} (97%)

diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/files b/applications/solvers/multiphase/compressibleInterFoam/Make/files
index de5437219c0..0e009f09bcd 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/files
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/files
@@ -1,3 +1,4 @@
+derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
 compressibleInterFoam.C
 
 EXE = $(FOAM_APPBIN)/compressibleInterFoam
diff --git a/applications/solvers/multiphase/compressibleInterFoam/TEqn.H b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
new file mode 100644
index 00000000000..34b6bd35dd5
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/TEqn.H
@@ -0,0 +1,20 @@
+{
+    volScalarField kByCv
+    (
+        "kByCv",
+        (alpha1*k1/Cv1 + alpha2*k2/Cv2)
+      + (alpha1*rho1 + alpha2*rho2)*turbulence->nut()
+    );
+
+    solve
+    (
+        fvm::ddt(rho, T)
+      + fvm::div(rhoPhi, T)
+      - fvm::laplacian(kByCv, T)
+      + p*fvc::div(phi)*(alpha1/Cv1 + alpha2/Cv2)
+    );
+
+    // Update compressibilities
+    psi1 = 1.0/(R1*T);
+    psi2 = 1.0/(R2*T);
+}
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 1ac1596c4db..a4cfc215fcc 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.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
@@ -25,7 +25,7 @@ Application
     compressibleInterDyMFoam
 
 Description
-    Solver for 2 compressible, isothermal immiscible fluids using a VOF
+    Solver for 2 compressible, non-isothermal immiscible fluids using a VOF
     (volume of fluid) phase-fraction based interface capturing approach,
     with optional mesh motion and mesh topology changes including adaptive
     re-meshing.
@@ -124,11 +124,15 @@ int main(int argc, char *argv[])
             solve(fvm::ddt(rho) + fvc::div(rhoPhi));
 
             #include "UEqn.H"
+            #include "TEqn.H"
 
             // --- Pressure corrector loop
             while (pimple.correct())
             {
                 #include "pEqn.H"
+
+                // Make the fluxes relative to the mesh motion
+                fvc::makeRelative(phi, U);
             }
         }
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
deleted file mode 100644
index 26666c41203..00000000000
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/pEqn.H
+++ /dev/null
@@ -1,88 +0,0 @@
-{
-    volScalarField rAU(1.0/UEqn.A());
-    surfaceScalarField rAUf(fvc::interpolate(rAU));
-
-    tmp<fvScalarMatrix> p_rghEqnComp;
-
-    if (pimple.transonic())
-    {
-        p_rghEqnComp =
-        (
-            fvm::ddt(p_rgh)
-          + fvm::div(phi, p_rgh)
-          - fvm::Sp(fvc::div(phi), p_rgh)
-        );
-    }
-    else
-    {
-        p_rghEqnComp =
-        (
-            fvm::ddt(p_rgh)
-          + fvc::div(phi, p_rgh)
-          - fvc::Sp(fvc::div(phi), p_rgh)
-        );
-    }
-
-
-    U = rAU*UEqn.H();
-
-    surfaceScalarField phiU
-    (
-        "phiU",
-        (fvc::interpolate(U) & mesh.Sf())
-      + fvc::ddtPhiCorr(rAU, rho, U, phi)
-    );
-
-    phi = phiU +
-        (
-            fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)
-          - ghf*fvc::snGrad(rho)
-        )*rAUf*mesh.magSf();
-
-    while (pimple.correctNonOrthogonal())
-    {
-        fvScalarMatrix p_rghEqnIncomp
-        (
-            fvc::div(phi)
-          - fvm::laplacian(rAUf, p_rgh)
-        );
-
-        solve
-        (
-            (
-                max(alpha1, scalar(0))*(psi1/rho1)
-              + max(alpha2, scalar(0))*(psi2/rho2)
-            )
-           *p_rghEqnComp()
-          + p_rghEqnIncomp,
-            mesh.solver(p_rgh.select(pimple.finalInnerIter()))
-        );
-
-        if (pimple.finalNonOrthogonalIter())
-        {
-            dgdt =
-                (pos(alpha2)*(psi2/rho2) - pos(alpha1)*(psi1/rho1))
-               *(p_rghEqnComp & p_rgh);
-            phi += p_rghEqnIncomp.flux();
-        }
-    }
-
-    U += rAU*fvc::reconstruct((phi - phiU)/rAUf);
-    U.correctBoundaryConditions();
-
-    p = max
-    (
-        (p_rgh + gh*(alpha1*rho10 + alpha2*rho20))
-       /(1.0 - gh*(alpha1*psi1 + alpha2*psi2)),
-        pMin
-    );
-
-    rho1 = rho10 + psi1*p;
-    rho2 = rho20 + psi2*p;
-
-    Info<< "max(U) " << max(mag(U)).value() << endl;
-    Info<< "min(p_rgh) " << min(p_rgh).value() << endl;
-
-    // Make the fluxes relative to the mesh motion
-    fvc::makeRelative(phi, U);
-}
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index 4ad1b3d01da..58dd7e68669 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.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
@@ -25,7 +25,7 @@ Application
     compressibleInterFoam
 
 Description
-    Solver for 2 compressible, isothermal immiscible fluids using a VOF
+    Solver for 2 compressible, non-isothermal immiscible fluids using a VOF
     (volume of fluid) phase-fraction based interface capturing approach.
 
     The momentum and other fluid properties are of the "mixture" and a single
@@ -82,6 +82,7 @@ int main(int argc, char *argv[])
             solve(fvm::ddt(rho) + fvc::div(rhoPhi));
 
             #include "UEqn.H"
+            #include "TEqn.H"
 
             // --- Pressure corrector loop
             while (pimple.correct())
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index c598cb75ce6..4930743887e 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -12,23 +12,6 @@
         mesh
     );
 
-    Info<< "Reading field alpha1\n" << endl;
-    volScalarField alpha1
-    (
-        IOobject
-        (
-            "alpha1",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    Info<< "Calculating field alpha1\n" << endl;
-    volScalarField alpha2("alpha2", scalar(1) - alpha1);
-
     Info<< "Reading field U\n" << endl;
     volVectorField U
     (
@@ -45,10 +28,19 @@
 
     #include "createPhi.H"
 
-
     Info<< "Reading transportProperties\n" << endl;
     twoPhaseMixture twoPhaseProperties(U, phi);
 
+    volScalarField& alpha1(twoPhaseProperties.alpha1());
+
+    Info<< "Calculating phase-fraction alpha" << twoPhaseProperties.phase2Name()
+        << nl << endl;
+    volScalarField alpha2
+    (
+        "alpha" + twoPhaseProperties.phase2Name(),
+        scalar(1) - alpha1
+    );
+
     dimensionedScalar rho10
     (
         twoPhaseProperties.subDict
@@ -65,21 +57,90 @@
         ).lookup("rho0")
     );
 
-    dimensionedScalar psi1
+    dimensionedScalar k1
+    (
+        twoPhaseProperties.subDict
+        (
+            twoPhaseProperties.phase1Name()
+        ).lookup("k")
+    );
+
+    dimensionedScalar k2
+    (
+        twoPhaseProperties.subDict
+        (
+            twoPhaseProperties.phase2Name()
+        ).lookup("k")
+    );
+
+    dimensionedScalar Cv1
+    (
+        twoPhaseProperties.subDict
+        (
+            twoPhaseProperties.phase1Name()
+        ).lookup("Cv")
+    );
+
+    dimensionedScalar Cv2
+    (
+        twoPhaseProperties.subDict
+        (
+            twoPhaseProperties.phase2Name()
+        ).lookup("Cv")
+    );
+
+    dimensionedScalar R1
     (
         twoPhaseProperties.subDict
         (
             twoPhaseProperties.phase1Name()
-        ).lookup("psi")
+        ).lookup("R")
     );
 
-    dimensionedScalar psi2
+    dimensionedScalar R2
     (
         twoPhaseProperties.subDict
         (
             twoPhaseProperties.phase2Name()
-        ).lookup("psi")
+        ).lookup("R")
+    );
+
+    Info<< "Reading field T\n" << endl;
+    volScalarField T
+    (
+        IOobject
+        (
+            "T",
+            runTime.timeName(),
+            mesh,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh
+    );
+
+    volScalarField psi1
+    (
+        IOobject
+        (
+            "psi1",
+            runTime.timeName(),
+            mesh
+        ),
+        1.0/(R1*T)
+    );
+
+    volScalarField psi2
+    (
+        IOobject
+        (
+            "psi2",
+            runTime.timeName(),
+            mesh
+        ),
+        1.0/(R2*T)
     );
+    psi2.oldTime();
 
     dimensionedScalar pMin(twoPhaseProperties.lookup("pMin"));
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C b/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
new file mode 100644
index 00000000000..e6782e8b3a9
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
@@ -0,0 +1,184 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "wallHeatTransferFvPatchScalarField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    mixedFvPatchScalarField(p, iF),
+    Tinf_(p.size(), 0.0),
+    alphaWall_(p.size(), 0.0)
+{
+    refValue() = 0.0;
+    refGrad() = 0.0;
+    valueFraction() = 0.0;
+}
+
+
+Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
+(
+    const wallHeatTransferFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    Tinf_(ptf.Tinf_, mapper),
+    alphaWall_(ptf.alphaWall_, mapper)
+{}
+
+
+Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    mixedFvPatchScalarField(p, iF),
+    Tinf_("Tinf", dict, p.size()),
+    alphaWall_("alphaWall", dict, p.size())
+{
+    refValue() = Tinf_;
+    refGrad() = 0.0;
+    valueFraction() = 0.0;
+
+    if (dict.found("value"))
+    {
+        fvPatchField<scalar>::operator=
+        (
+            scalarField("value", dict, p.size())
+        );
+    }
+    else
+    {
+        evaluate();
+    }
+}
+
+
+Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
+(
+    const wallHeatTransferFvPatchScalarField& tppsf
+)
+:
+    mixedFvPatchScalarField(tppsf),
+    Tinf_(tppsf.Tinf_),
+    alphaWall_(tppsf.alphaWall_)
+{}
+
+
+Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
+(
+    const wallHeatTransferFvPatchScalarField& tppsf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    mixedFvPatchScalarField(tppsf, iF),
+    Tinf_(tppsf.Tinf_),
+    alphaWall_(tppsf.alphaWall_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::wallHeatTransferFvPatchScalarField::autoMap
+(
+    const fvPatchFieldMapper& m
+)
+{
+    scalarField::autoMap(m);
+    Tinf_.autoMap(m);
+    alphaWall_.autoMap(m);
+}
+
+
+void Foam::wallHeatTransferFvPatchScalarField::rmap
+(
+    const fvPatchScalarField& ptf,
+    const labelList& addr
+)
+{
+    mixedFvPatchScalarField::rmap(ptf, addr);
+
+    const wallHeatTransferFvPatchScalarField& tiptf =
+        refCast<const wallHeatTransferFvPatchScalarField>(ptf);
+
+    Tinf_.rmap(tiptf.Tinf_, addr);
+    alphaWall_.rmap(tiptf.alphaWall_, addr);
+}
+
+
+void Foam::wallHeatTransferFvPatchScalarField::updateCoeffs()
+{
+    if (updated())
+    {
+        return;
+    }
+
+    const fvPatchScalarField& Cpw =
+        patch().lookupPatchField<volScalarField, scalar>("Cp");
+
+    const fvPatchScalarField& kByCpw =
+        patch().lookupPatchField<volScalarField, scalar>("kByCp");
+
+    valueFraction() =
+        1.0/
+        (
+            1.0
+          + Cpw*kByCpw*patch().deltaCoeffs()/alphaWall_
+        );
+
+    mixedFvPatchScalarField::updateCoeffs();
+}
+
+
+void Foam::wallHeatTransferFvPatchScalarField::write(Ostream& os) const
+{
+    fvPatchScalarField::write(os);
+    Tinf_.writeEntry("Tinf", os);
+    alphaWall_.writeEntry("alphaWall", os);
+    writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    makePatchTypeField(fvPatchScalarField, wallHeatTransferFvPatchScalarField);
+}
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H b/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
new file mode 100644
index 00000000000..cf5284a087d
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
@@ -0,0 +1,194 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 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/>.
+
+Class
+    Foam::wallHeatTransferFvPatchScalarField
+
+Description
+    Enthalpy boundary conditions for wall heat transfer
+
+SourceFiles
+    wallHeatTransferFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef wallHeatTransferFvPatchScalarField_H
+#define wallHeatTransferFvPatchScalarField_H
+
+#include "mixedFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                  Class wallHeatTransferFvPatch Declaration
+\*---------------------------------------------------------------------------*/
+
+class wallHeatTransferFvPatchScalarField
+:
+    public mixedFvPatchScalarField
+{
+    // Private data
+
+        //- Tinf
+        scalarField Tinf_;
+
+        //- alphaWall
+        scalarField alphaWall_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("wallHeatTransfer");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        wallHeatTransferFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        wallHeatTransferFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given wallHeatTransferFvPatchScalarField
+        // onto a new patch
+        wallHeatTransferFvPatchScalarField
+        (
+            const wallHeatTransferFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct as copy
+        wallHeatTransferFvPatchScalarField
+        (
+            const wallHeatTransferFvPatchScalarField&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new wallHeatTransferFvPatchScalarField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        wallHeatTransferFvPatchScalarField
+        (
+            const wallHeatTransferFvPatchScalarField&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct and return a clone setting internal field reference
+        virtual tmp<fvPatchScalarField> clone
+        (
+            const DimensionedField<scalar, volMesh>& iF
+        ) const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new wallHeatTransferFvPatchScalarField(*this, iF)
+            );
+        }
+
+
+    // Member functions
+
+        // Access
+
+            //- Return Tinf
+            const scalarField& Tinf() const
+            {
+                return Tinf_;
+            }
+
+            //- Return reference to Tinf to allow adjustment
+            scalarField& Tinf()
+            {
+                return Tinf_;
+            }
+
+            //- Return alphaWall
+            const scalarField& alphaWall() const
+            {
+                return alphaWall_;
+            }
+
+            //- Return reference to alphaWall to allow adjustment
+            scalarField& alphaWall()
+            {
+                return alphaWall_;
+            }
+
+
+        // Mapping functions
+
+            //- Map (and resize as needed) from self given a mapping object
+            virtual void autoMap
+            (
+                const fvPatchFieldMapper&
+            );
+
+            //- Reverse map the given fvPatchField onto this fvPatchField
+            virtual void rmap
+            (
+                const fvPatchScalarField&,
+                const labelList&
+            );
+
+
+        // Evaluation functions
+
+            //- Update the coefficients associated with the patch field
+            virtual void updateCoeffs();
+
+
+        //- Write
+        virtual void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index 035e8e237da..b803b1ac189 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -1,28 +1,31 @@
 {
-    volScalarField rAU(1.0/UEqn.A());
-    surfaceScalarField rAUf(fvc::interpolate(rAU));
+    rho1 = rho10 + psi1*p;
+    rho2 = rho20 + psi2*p;
 
-    tmp<fvScalarMatrix> p_rghEqnComp;
+    volScalarField rAU = 1.0/UEqn.A();
+    surfaceScalarField rAUf = fvc::interpolate(rAU);
 
-    if (pimple.transonic())
-    {
-        p_rghEqnComp =
-        (
-            fvm::ddt(p_rgh)
-          + fvm::div(phi, p_rgh)
-          - fvm::Sp(fvc::div(phi), p_rgh)
-        );
-    }
-    else
+    tmp<fvScalarMatrix> p_rghEqnComp1;
+    tmp<fvScalarMatrix> p_rghEqnComp2;
+
+    //if (transonic)
+    //{
+    //}
+    //else
     {
-        p_rghEqnComp =
-        (
-            fvm::ddt(p_rgh)
-          + fvc::div(phi, p_rgh)
-          - fvc::Sp(fvc::div(phi), p_rgh)
-        );
-    }
+        surfaceScalarField phid1("phid1", fvc::interpolate(psi1)*phi);
+        surfaceScalarField phid2("phid2", fvc::interpolate(psi2)*phi);
 
+        p_rghEqnComp1 =
+            fvc::ddt(rho1) + psi1*correction(fvm::ddt(p_rgh))
+          + fvc::div(phid1, p_rgh)
+          - fvc::Sp(fvc::div(phid1), p_rgh);
+
+        p_rghEqnComp2 =
+            fvc::ddt(rho2) + psi2*correction(fvm::ddt(p_rgh))
+          + fvc::div(phid2, p_rgh)
+          - fvc::Sp(fvc::div(phid2), p_rgh);
+    }
 
     U = rAU*UEqn.H();
 
@@ -39,6 +42,10 @@
           - ghf*fvc::snGrad(rho)
         )*rAUf*mesh.magSf();
 
+    // Thermodynamic density needs to be updated by psi*d(p) after the
+    // pressure solution - done in 2 parts. Part 1:
+    //thermo.rho() -= psi*p_rgh;
+
     while (pimple.correctNonOrthogonal())
     {
         fvScalarMatrix p_rghEqnIncomp
@@ -50,19 +57,23 @@
         solve
         (
             (
-                max(alpha1, scalar(0))*(psi1/rho1)
-              + max(alpha2, scalar(0))*(psi2/rho2)
+                (max(alpha1, scalar(0))/rho1)*p_rghEqnComp1()
+              + (max(alpha2, scalar(0))/rho2)*p_rghEqnComp2()
             )
-           *p_rghEqnComp()
           + p_rghEqnIncomp,
             mesh.solver(p_rgh.select(pimple.finalInnerIter()))
         );
 
         if (pimple.finalNonOrthogonalIter())
         {
+            // Second part of thermodynamic density update
+            //thermo.rho() += psi*p_rgh;
+
             dgdt =
-                (pos(alpha2)*(psi2/rho2) - pos(alpha1)*(psi1/rho1))
-               *(p_rghEqnComp & p_rgh);
+            (
+                pos(alpha2)*(p_rghEqnComp2 & p_rgh)/rho2
+              - pos(alpha1)*(p_rghEqnComp1 & p_rgh)/rho1
+            );
             phi += p_rghEqnIncomp.flux();
         }
     }
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/T.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/T.org
new file mode 100644
index 00000000000..e5ac2eeb27e
--- /dev/null
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/T.org
@@ -0,0 +1,34 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha1;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    walls
+    {
+        type            zeroGradient;
+    }
+
+    defaultFaces
+    {
+        type            empty;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alpha1.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alphawater.org
similarity index 97%
rename from tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alpha1.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alphawater.org
index b55820f9a97..d90b720092a 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alpha1.org
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/0/alphawater.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      alpha1;
+    object      alphawater;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allclean b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allclean
index 1f81d5f86a1..d6e8dce5df4 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allclean
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allclean
@@ -1,5 +1,6 @@
 #!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
 
 foamCleanTutorials cases
 rm -rf processor*
-rm -rf 0/p_rgh 0/p_rgh.gz 0/alpha1 0/alpha1.gz
+rm -rf 0/p_rgh.gz 0/alphawater.gz 0/T.gz
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
index 5fd844dc716..76547516b77 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/Allrun
@@ -8,8 +8,9 @@ cd ${0%/*} || exit 1    # run from this directory
 application=`getApplication`
 
 runApplication blockMesh
-cp 0/alpha1.org 0/alpha1
+cp 0/alphawater.org 0/alphawater
 cp 0/p_rgh.org 0/p_rgh
+cp 0/T.org 0/T
 runApplication setFields
 runApplication $application
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict
index 22d11441f9d..9ed9a630b55 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/polyMesh/blockMeshDict
@@ -33,28 +33,20 @@ blocks
     hex (0 1 2 3 4 5 6 7) (80 160 1) simpleGrading (1 1 1)
 );
 
-boundary
+patches
 (
-    walls
-    {
-        type wall;
-        faces
-        (
-            (3 7 6 2)
-            (0 4 7 3)
-            (2 6 5 1)
-            (1 5 4 0)
-        );
-    }
-    frontAndBack
-    {
-        type empty;
-        faces
-        (
-            (0 3 2 1)
-            (4 5 6 7)
-        );
-    }
+    wall walls
+    (
+        (3 7 6 2)
+        (0 4 7 3)
+        (2 6 5 1)
+        (1 5 4 0)
+    )
+    empty frontAndBack
+    (
+        (0 3 2 1)
+        (4 5 6 7)
+    )
 );
 
 // ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties
index 67e66cd27d1..1803697ff73 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/constant/transportProperties
@@ -15,22 +15,28 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-phase1
+phases (water air);
+
+water
 {
     transportModel  Newtonian;
     nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
+    k               k         [1 1 -3 -1 0 0 0] 0; //0.613;
     rho             rho [ 1 -3 0 0 0 0 0 ] 1000;
     rho0            rho0 [ 1 -3 0 0 0 0 0 ] 1000;
-    psi             psi [ 0 -2 2 0 0 ] 1e-05;
+    R               R         [0 2 -2 -1 0] 3000;
+    Cv              Cv        [0 2 -2 -1 0] 4179;
 }
 
-phase2
+air
 {
     transportModel  Newtonian;
     nu              nu [ 0 2 -1 0 0 0 0 ] 1.589e-05;
+    k               k         [1 1 -3 -1 0 0 0] 0; //2.63e-2;
     rho             rho [ 1 -3 0 0 0 0 0 ] 1;
     rho0            rho0 [ 1 -3 0 0 0 0 0 ] 0;
-    psi             psi [ 0 -2 2 0 0 ] 1e-05;
+    R               R         [0 2 -2 -1 0] 287;
+    Cv              Cv        [0 2 -2 -1 0] 721;
 }
 
 pMin            pMin [ 1 -1 -2 0 0 0 0 ] 10000;
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict
index 4c225df9c72..933d1de4506 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/controlDict
@@ -17,7 +17,7 @@ FoamFile
 
 application     compressibleInterFoam;
 
-startFrom       latestTime;
+startFrom       startTime;
 
 startTime       0;
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
index 5ab2bdc2fdd..c35af6cc4f1 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSchemes
@@ -30,7 +30,9 @@ divSchemes
     div(rho*phi,U)  Gauss upwind;
     div(phi,alpha)  Gauss vanLeer;
     div(phirb,alpha) Gauss interfaceCompression 1;
-    div(phi,p_rgh)  Gauss upwind;
+    div(phid1,p_rgh) Gauss upwind;
+    div(phid2,p_rgh) Gauss upwind;
+    div(rho*phi,T)  Gauss upwind;
     div(phi,k)      Gauss vanLeer;
     div((nuEff*dev(T(grad(U))))) Gauss linear;
 }
@@ -55,7 +57,6 @@ fluxRequired
     default         no;
     p_rgh;
     pcorr;
-    gamma;
 }
 
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
index 4a7f094cec5..46189745464 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/fvSolution
@@ -91,7 +91,7 @@ solvers
         nSweeps         1;
     }
 
-    "(k|B|nuTilda)"
+    "(T|k|B|nuTilda).*"
     {
         solver          PBiCG;
         preconditioner  DILU;
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
index 37f90fd1d58..88198a4d249 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge2D/system/setFieldsDict
@@ -17,8 +17,9 @@ FoamFile
 
 defaultFieldValues
 (
-    volScalarFieldValue alpha1 1
+    volScalarFieldValue alphawater 1
     volScalarFieldValue p_rgh 1e5
+    volScalarFieldValue T 300
 );
 
 regions
@@ -29,8 +30,9 @@ regions
         radius 0.1;
         fieldValues
         (
-            volScalarFieldValue alpha1 0
+            volScalarFieldValue alphawater 0
             volScalarFieldValue p_rgh 1e6
+            volScalarFieldValue T 578
         );
     }
     boxToCell
@@ -38,7 +40,7 @@ regions
         box (-10 1 -1) (10 10 1);
         fieldValues
         (
-            volScalarFieldValue alpha1 0
+            volScalarFieldValue alphawater 0
         );
     }
 );
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/T.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/T.org
new file mode 100644
index 00000000000..b40cb084786
--- /dev/null
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/T.org
@@ -0,0 +1,29 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha1;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 1 0 0 0];
+
+internalField   uniform 300;
+
+boundaryField
+{
+    walls
+    {
+        type            zeroGradient;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alpha1.org b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alphawater.org
similarity index 97%
rename from tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alpha1.org
rename to tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alphawater.org
index b15de21b75d..62be61f403a 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alpha1.org
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/0/alphawater.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      alpha1.org;
+    object      alphawater;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
index 902055c7f72..539c7721669 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allclean
@@ -3,6 +3,6 @@ cd ${0%/*} || exit 1    # run from this directory
 
 foamCleanTutorials cases
 rm -rf processor*
-rm -rf 0/p_rgh 0/p_rgh.gz 0/alpha1 0/alpha1.gz
+rm -rf 0/p_rgh 0/p_rgh.gz 0/alphawater 0/alphawater.gz 0/T.gz
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
index ac00d007bcf..0941ac4aa1a 100755
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/Allrun
@@ -8,8 +8,9 @@ cd ${0%/*} || exit 1    # run from this directory
 application=`getApplication`
 
 runApplication blockMesh
-cp 0/alpha1.org 0/alpha1
+cp 0/alphawater.org 0/alphawater
 cp 0/p_rgh.org 0/p_rgh
+cp 0/T.org 0/T
 runApplication setFields
 runApplication decomposePar
 runParallel $application 4
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties
index 67e66cd27d1..1803697ff73 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/constant/transportProperties
@@ -15,22 +15,28 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-phase1
+phases (water air);
+
+water
 {
     transportModel  Newtonian;
     nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
+    k               k         [1 1 -3 -1 0 0 0] 0; //0.613;
     rho             rho [ 1 -3 0 0 0 0 0 ] 1000;
     rho0            rho0 [ 1 -3 0 0 0 0 0 ] 1000;
-    psi             psi [ 0 -2 2 0 0 ] 1e-05;
+    R               R         [0 2 -2 -1 0] 3000;
+    Cv              Cv        [0 2 -2 -1 0] 4179;
 }
 
-phase2
+air
 {
     transportModel  Newtonian;
     nu              nu [ 0 2 -1 0 0 0 0 ] 1.589e-05;
+    k               k         [1 1 -3 -1 0 0 0] 0; //2.63e-2;
     rho             rho [ 1 -3 0 0 0 0 0 ] 1;
     rho0            rho0 [ 1 -3 0 0 0 0 0 ] 0;
-    psi             psi [ 0 -2 2 0 0 ] 1e-05;
+    R               R         [0 2 -2 -1 0] 287;
+    Cv              Cv        [0 2 -2 -1 0] 721;
 }
 
 pMin            pMin [ 1 -1 -2 0 0 0 0 ] 10000;
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
index 5ab2bdc2fdd..c35af6cc4f1 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSchemes
@@ -30,7 +30,9 @@ divSchemes
     div(rho*phi,U)  Gauss upwind;
     div(phi,alpha)  Gauss vanLeer;
     div(phirb,alpha) Gauss interfaceCompression 1;
-    div(phi,p_rgh)  Gauss upwind;
+    div(phid1,p_rgh) Gauss upwind;
+    div(phid2,p_rgh) Gauss upwind;
+    div(rho*phi,T)  Gauss upwind;
     div(phi,k)      Gauss vanLeer;
     div((nuEff*dev(T(grad(U))))) Gauss linear;
 }
@@ -55,7 +57,6 @@ fluxRequired
     default         no;
     p_rgh;
     pcorr;
-    gamma;
 }
 
 
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
index 4a7f094cec5..46189745464 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/fvSolution
@@ -91,7 +91,7 @@ solvers
         nSweeps         1;
     }
 
-    "(k|B|nuTilda)"
+    "(T|k|B|nuTilda).*"
     {
         solver          PBiCG;
         preconditioner  DILU;
diff --git a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
index 07f675b5de6..ec31deae034 100644
--- a/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
+++ b/tutorials/multiphase/compressibleInterFoam/les/depthCharge3D/system/setFieldsDict
@@ -17,8 +17,9 @@ FoamFile
 
 defaultFieldValues
 (
-    volScalarFieldValue alpha1 1
+    volScalarFieldValue alphawater 1
     volScalarFieldValue p_rgh 1e5
+    volScalarFieldValue T 300
 );
 
 regions
@@ -29,8 +30,9 @@ regions
         radius 0.1;
         fieldValues
         (
-            volScalarFieldValue alpha1 0
+            volScalarFieldValue alphawater 0
             volScalarFieldValue p_rgh 1e6
+            volScalarFieldValue T 578
         );
     }
     boxToCell
@@ -38,7 +40,7 @@ regions
         box (-10 1 -1) (10 10 1);
         fieldValues
         (
-            volScalarFieldValue alpha1 0
+            volScalarFieldValue alphawater 0
         );
     }
 );
-- 
GitLab