From 076cf421f397a18f7a78a557111402af598c4fae Mon Sep 17 00:00:00 2001
From: Henry Weller <http://openfoam.org>
Date: Tue, 22 Aug 2017 13:58:25 +0100
Subject: [PATCH] cloudSolution: Check consistency between the transient option

and the continuous-phase simulation type

For LTS and steady-state simulations the transient option does not need to be
provided as only steady-state tracking is appropriate.  For transient running
the Lagrangian tracking may be steady or transient.
---
 .../cloudSolution/cloudSolution.C             | 29 +++++++++++++++++--
 .../constant/reactingCloud1Properties         |  1 -
 .../constant/reactingCloud1Properties         |  1 -
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
index ca9e1fb0a82..cc5ad7063d8 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,6 +25,7 @@ License
 
 #include "cloudSolution.H"
 #include "Time.H"
+#include "localEulerDdtScheme.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -119,7 +120,31 @@ Foam::cloudSolution::~cloudSolution()
 
 void Foam::cloudSolution::read()
 {
-    dict_.lookup("transient") >> transient_;
+    // For transient runs the Lagrangian tracking may be transient or steady
+    transient_ = dict_.lookupOrDefault("transient", false);
+
+    // For LTS and steady-state runs the Lagrangian tracking cannot be transient
+    if (transient_)
+    {
+        if (fv::localEulerDdt::enabled(mesh_))
+        {
+            IOWarningInFunction(dict_)
+                << "Transient tracking is not supported for LTS"
+                   " simulations, switching to steady state tracking."
+                << endl;
+            transient_ = false;
+        }
+
+        if (mesh_.steady())
+        {
+            IOWarningInFunction(dict_)
+                << "Transient tracking is not supported for steady-state"
+                   " simulations, switching to steady state tracking."
+                << endl;
+            transient_ = false;
+        }
+    }
+
     dict_.lookup("coupled") >> coupled_;
     dict_.lookup("cellValueSourceCorrection") >> cellValueSourceCorrection_;
     dict_.readIfPresent("maxCo", maxCo_);
diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/reactingCloud1Properties
index e6e16bed972..3a3baac3617 100644
--- a/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannelLTS/constant/reactingCloud1Properties
@@ -19,7 +19,6 @@ solution
 {
     active          yes;
 
-    transient       no; // yes;
     calcFrequency   10;
     maxTrackTime    5.0;
     maxCo           0.3;
diff --git a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
index e6e16bed972..3a3baac3617 100644
--- a/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
@@ -19,7 +19,6 @@ solution
 {
     active          yes;
 
-    transient       no; // yes;
     calcFrequency   10;
     maxTrackTime    5.0;
     maxCo           0.3;
-- 
GitLab