From 94f952ab04126c6ad2eb1e204b388fc4d3df5a7f Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 5 Oct 2015 22:42:12 +0100
Subject: [PATCH] reactingMultiphaseEulerFoam: Completed LTS support in
 multuphaseSystem

---
 .../multiphaseSystem/multiphaseSystem.C       | 63 +++++++++++++------
 1 file changed, 43 insertions(+), 20 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index d92368a8867..fe1e4d4a8dd 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -155,19 +155,43 @@ void Foam::multiphaseSystem::solveAlphas()
             }
         }
 
-        MULES::limit
-        (
-            1.0/mesh_.time().deltaT().value(), // ***HGW add support for LTS
-            geometricOneField(),
-            phase,
-            phi_,
-            alphaPhiCorr,
-            zeroField(),
-            zeroField(),
-            phase.alphaMax(),
-            0,
-            true
-        );
+        if (fv::localEulerDdt::enabled(mesh_))
+        {
+            const volScalarField& rDeltaT =
+                fv::localEulerDdt::localRDeltaT(mesh_);
+
+            MULES::limit
+            (
+                rDeltaT,
+                geometricOneField(),
+                phase,
+                phi_,
+                alphaPhiCorr,
+                zeroField(),
+                zeroField(),
+                phase.alphaMax(),
+                0,
+                true
+            );
+        }
+        else
+        {
+            const scalar rDeltaT = 1.0/mesh_.time().deltaTValue();
+
+            MULES::limit
+            (
+                rDeltaT,
+                geometricOneField(),
+                phase,
+                phi_,
+                alphaPhiCorr,
+                zeroField(),
+                zeroField(),
+                phase.alphaMax(),
+                0,
+                true
+            );
+        }
     }
 
     MULES::limitSum(alphaPhiCorrs);
@@ -481,7 +505,7 @@ Foam::multiphaseSystem::multiphaseSystem
         IOobject
         (
             "alphas",
-            mesh.time().timeName(),
+            mesh_.time().timeName(),
             mesh,
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
@@ -496,13 +520,13 @@ Foam::multiphaseSystem::multiphaseSystem
     deltaN_
     (
         "deltaN",
-        1e-8/pow(average(mesh.V()), 1.0/3.0)
+        1e-8/pow(average(mesh_.V()), 1.0/3.0)
     )
 {
     forAll(phases(), phasei)
     {
         volScalarField& alphai = phases()[phasei];
-        mesh.setFluxRequired(alphai.name());
+        mesh_.setFluxRequired(alphai.name());
     }
 }
 
@@ -599,13 +623,12 @@ Foam::multiphaseSystem::nearInterface() const
 
 void Foam::multiphaseSystem::solve()
 {
-    const fvMesh& mesh = this->mesh();
-    const Time& runTime = mesh.time();
+    const Time& runTime = mesh_.time();
 
     const dictionary& alphaControls = mesh_.solverDict("alpha");
     label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
 
-    bool LTS = fv::localEulerDdt::enabled(mesh);
+    bool LTS = fv::localEulerDdt::enabled(mesh_);
 
     if (nAlphaSubCycles > 1)
     {
@@ -614,7 +637,7 @@ void Foam::multiphaseSystem::solve()
         if (LTS)
         {
             trSubDeltaT =
-                fv::localEulerDdt::localRSubDeltaT(mesh, nAlphaSubCycles);
+                fv::localEulerDdt::localRSubDeltaT(mesh_, nAlphaSubCycles);
         }
 
         dimensionedScalar totalDeltaT = runTime.deltaT();
-- 
GitLab