From 9e943a20f95dd77337a9db8447114dfa768a67bb Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 25 Sep 2017 13:25:34 +0100
Subject: [PATCH] BUG: thermoFoam - corrected to enable restart and
 post-processing using thermoFoam -postProcess.  Fixes #598

---
 .../solvers/heatTransfer/thermoFoam/EEqn.H    |  6 ++-
 .../heatTransfer/thermoFoam/createFields.H    | 26 +++++++++-
 .../heatTransfer/thermoFoam/setAlphaEff.H     | 47 -------------------
 .../heatTransfer/thermoFoam/thermoFoam.C      |  2 -
 4 files changed, 30 insertions(+), 51 deletions(-)
 delete mode 100644 applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H

diff --git a/applications/solvers/heatTransfer/thermoFoam/EEqn.H b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
index 98a248ac35..5508829663 100644
--- a/applications/solvers/heatTransfer/thermoFoam/EEqn.H
+++ b/applications/solvers/heatTransfer/thermoFoam/EEqn.H
@@ -15,12 +15,16 @@
             )
           : -dpdt
         )
-      - fvm::laplacian(alphaEff, he)
      ==
         radiation->Sh(thermo, he)
       + fvOptions(rho, he)
     );
 
+    if (turbulence.valid())
+    {
+        EEqn -= fvm::laplacian(turbulence->alphaEff(), he);
+    }
+
     EEqn.relax();
 
     fvOptions.constrain(EEqn);
diff --git a/applications/solvers/heatTransfer/thermoFoam/createFields.H b/applications/solvers/heatTransfer/thermoFoam/createFields.H
index 90f25a89a3..2e09b43e59 100644
--- a/applications/solvers/heatTransfer/thermoFoam/createFields.H
+++ b/applications/solvers/heatTransfer/thermoFoam/createFields.H
@@ -35,7 +35,31 @@ volVectorField U
 
 #include "compressibleCreatePhi.H"
 
-#include "setAlphaEff.H"
+autoPtr<compressible::turbulenceModel> turbulence;
+
+IOobject turbulencePropertiesHeader
+(
+    "turbulenceProperties",
+    runTime.constant(),
+    mesh,
+    IOobject::MUST_READ_IF_MODIFIED,
+    IOobject::NO_WRITE,
+    false
+);
+
+if (turbulencePropertiesHeader.typeHeaderOk<IOdictionary>(false))
+{
+    Info<< "Creating turbulence model\n" << endl;
+
+    turbulence =
+        compressible::turbulenceModel::New
+        (
+            rho,
+            U,
+            phi,
+            thermo
+        );
+}
 
 #include "createDpdt.H"
 
diff --git a/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H b/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H
deleted file mode 100644
index c760349a6e..0000000000
--- a/applications/solvers/heatTransfer/thermoFoam/setAlphaEff.H
+++ /dev/null
@@ -1,47 +0,0 @@
-Info<< "Creating turbulence model\n" << endl;
-tmp<volScalarField> talphaEff;
-
-IOobject turbulencePropertiesHeader
-(
-    "turbulenceProperties",
-    runTime.constant(),
-    mesh,
-    IOobject::MUST_READ_IF_MODIFIED,
-    IOobject::NO_WRITE,
-    false
-);
-
-if (turbulencePropertiesHeader.typeHeaderOk<IOdictionary>(false))
-{
-    autoPtr<compressible::turbulenceModel> turbulence
-    (
-        compressible::turbulenceModel::New
-        (
-            rho,
-            U,
-            phi,
-            thermo
-        )
-    );
-
-    talphaEff = turbulence->alphaEff();
-}
-else
-{
-    talphaEff = tmp<volScalarField>
-    (
-        new volScalarField
-        (
-            IOobject
-            (
-                "alphaEff",
-                runTime.timeName(),
-                mesh,
-                IOobject::NO_READ,
-                IOobject::NO_WRITE
-            ),
-            mesh,
-            dimensionedScalar("0", dimMass/dimLength/dimTime, 0.0)
-        )
-    );
-}
diff --git a/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C b/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
index a8cbdf9f7e..ea5012e72e 100644
--- a/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
+++ b/applications/solvers/heatTransfer/thermoFoam/thermoFoam.C
@@ -54,8 +54,6 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createFvOptions.H"
 
-    const volScalarField& alphaEff = talphaEff();
-
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nEvolving thermodynamics\n" << endl;
-- 
GitLab