mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Added relaxation factor to cloud explicit calcs
This commit is contained in:
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user