From 5b10d3c3fa3fbd696607ce941a2bb1dd17b493bb Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 17 Mar 2011 09:58:33 +0000 Subject: [PATCH] ENH: Added relaxation factor to cloud explicit calcs --- .../KinematicCloud/cloudSolution/cloudSolution.C | 13 +++++++++---- .../KinematicCloud/cloudSolution/cloudSolution.H | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C index 2d726f45e8a..165a7be0b6c 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C @@ -127,17 +127,19 @@ void Foam::cloudSolution::read() schemes_.setSize(vars.size()); forAll(vars, i) { + // read solution variable name schemes_[i].first() = vars[i]; + // set semi-implicit (1) explicit (0) flag Istream& is = schemesDict.lookup(vars[i]); const word scheme(is); if (scheme == "semiImplicit") { - is >> schemes_[i].second(); + schemes_[i].second().first() = true; } else if (scheme == "explicit") { - schemes_[i].second() = -1; + schemes_[i].second().first() = false; } else { @@ -145,6 +147,9 @@ void Foam::cloudSolution::read() << "Invalid scheme " << scheme << ". Valid schemes are " << "explicit and semiImplicit" << exit(FatalError); } + + // read under-relaxation factor + is >> schemes_[i].second().second(); } } @@ -155,7 +160,7 @@ Foam::scalar Foam::cloudSolution::relaxCoeff(const word& fieldName) const { if (fieldName == schemes_[i].first()) { - return schemes_[i].second(); + return schemes_[i].second().second(); } } @@ -173,7 +178,7 @@ bool Foam::cloudSolution::semiImplicit(const word& fieldName) const { if (fieldName == schemes_[i].first()) { - return schemes_[i].second() >= 0; + return schemes_[i].second().first(); } } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H index 6c2430e4089..5f0fdb1cee0 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H @@ -25,7 +25,7 @@ Class Foam::cloudSolution Description - - Stores all relevant solution info + Stores all relevant solution info for cloud SourceFiles cloudSolutionI.H @@ -100,7 +100,7 @@ class cloudSolution Switch resetSourcesOnStartup_; //- List schemes, e.g. U semiImplicit 1 - List<Tuple2<word, scalar> > schemes_; + List<Tuple2<word, Tuple2<bool, scalar> > > schemes_; // Private Member Functions -- GitLab