ENH: Added relaxation factor to cloud explicit calcs

This commit is contained in:
andy
2011-03-17 09:58:33 +00:00
parent 06f2882b53
commit 5b10d3c3fa
2 changed files with 11 additions and 6 deletions

View File

@ -127,17 +127,19 @@ void Foam::cloudSolution::read()
schemes_.setSize(vars.size()); schemes_.setSize(vars.size());
forAll(vars, i) forAll(vars, i)
{ {
// read solution variable name
schemes_[i].first() = vars[i]; schemes_[i].first() = vars[i];
// set semi-implicit (1) explicit (0) flag
Istream& is = schemesDict.lookup(vars[i]); Istream& is = schemesDict.lookup(vars[i]);
const word scheme(is); const word scheme(is);
if (scheme == "semiImplicit") if (scheme == "semiImplicit")
{ {
is >> schemes_[i].second(); schemes_[i].second().first() = true;
} }
else if (scheme == "explicit") else if (scheme == "explicit")
{ {
schemes_[i].second() = -1; schemes_[i].second().first() = false;
} }
else else
{ {
@ -145,6 +147,9 @@ void Foam::cloudSolution::read()
<< "Invalid scheme " << scheme << ". Valid schemes are " << "Invalid scheme " << scheme << ". Valid schemes are "
<< "explicit and semiImplicit" << exit(FatalError); << "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()) 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()) if (fieldName == schemes_[i].first())
{ {
return schemes_[i].second() >= 0; return schemes_[i].second().first();
} }
} }

View File

@ -25,7 +25,7 @@ Class
Foam::cloudSolution Foam::cloudSolution
Description Description
- Stores all relevant solution info Stores all relevant solution info for cloud
SourceFiles SourceFiles
cloudSolutionI.H cloudSolutionI.H
@ -100,7 +100,7 @@ class cloudSolution
Switch resetSourcesOnStartup_; Switch resetSourcesOnStartup_;
//- List schemes, e.g. U semiImplicit 1 //- List schemes, e.g. U semiImplicit 1
List<Tuple2<word, scalar> > schemes_; List<Tuple2<word, Tuple2<bool, scalar> > > schemes_;
// Private Member Functions // Private Member Functions