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