40 active_(dict.
lookup(
"active")),
47 cellValueSourceCorrection_(
false),
49 resetSourcesOnStartup_(
true),
67 transient_(cs.transient_),
68 calcFrequency_(cs.calcFrequency_),
71 trackTime_(cs.trackTime_),
72 coupled_(cs.coupled_),
73 cellValueSourceCorrection_(cs.cellValueSourceCorrection_),
74 maxTrackTime_(cs.maxTrackTime_),
75 resetSourcesOnStartup_(cs.resetSourcesOnStartup_),
86 dict_(dictionary::null),
94 cellValueSourceCorrection_(
false),
96 resetSourcesOnStartup_(
false),
120 <<
"Transient tracking is not supported for LTS" 121 " simulations, switching to steady state tracking." 129 <<
"Transient tracking is not supported for steady-state" 130 " simulations, switching to steady state tracking." 136 dict_.
lookup(
"coupled") >> coupled_;
137 dict_.
lookup(
"cellValueSourceCorrection") >> cellValueSourceCorrection_;
142 dict_.
lookup(
"calcFrequency") >> calcFrequency_;
143 dict_.
lookup(
"maxTrackTime") >> maxTrackTime_;
148 >> resetSourcesOnStartup_;
158 schemes_.setSize(vars.size());
162 schemes_[i].first() = vars[i];
165 Istream& is = schemesDict.lookup(vars[i]);
167 if (scheme ==
"semiImplicit")
169 schemes_[i].second().first() =
true;
171 else if (scheme ==
"explicit")
173 schemes_[i].second().first() =
false;
178 <<
"Invalid scheme " << scheme <<
". Valid schemes are " 183 is >> schemes_[i].second().second();
193 if (fieldName == schemes_[i].first())
195 return schemes_[i].second().second();
200 <<
"Field name " << fieldName <<
" not found in schemes" 211 if (fieldName == schemes_[i].first())
213 return schemes_[i].second().first();
218 <<
"Field name " << fieldName <<
" not found in schemes" 227 return active_ && (mesh_.
time().
timeIndex() % calcFrequency_ == 0);
239 trackTime_ = maxTrackTime_;
virtual ~cloudSolution()
Destructor.
cloudSolution(const fvMesh &mesh)
Construct null from mesh reference.
#define forAll(list, i)
Loop across all elements in list.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
scalar relaxCoeff(const word &fieldName) const
Return relaxation coefficient for field.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
static tmp< surfaceInterpolationScheme< Type > > scheme(const surfaceScalarField &faceFlux, Istream &schemeData)
Return weighting factors for scheme given from Istream.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const Time & time() const
Return the top-level database.
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
bool writeTime() const
Return true if this is a write time.
bool semiImplicit(const word &fieldName) const
Return semi-implicit flag coefficient for field.
static bool enabled(const fvMesh &mesh)
Return true if LTS is enabled.
A class for handling words, derived from string.
scalar deltaTValue() const
Return time step value.
bool readIfPresent(const word &, T &, bool recursive=false, bool patternMatch=true) const
Find an entry if present, and assign to T.
errorManip< error > abort(error &err)
bool solveThisStep() const
Returns true if performing a cloud iteration this calc step.
label timeIndex() const
Return current time index.
Stores all relevant solution info for cloud.
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
const Switch steadyState() const
Return const access to the steady flag.
Mesh data needed to do the Finite Volume discretisation.
bool steady() const
Return true if the default ddtScheme is steadyState.
#define IOWarningInFunction(ios)
Report an IO warning using Foam::Warning.
void read()
Read properties from dictionary.
bool output() const
Returns true if writing this step.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
bool canEvolve()
Returns true if possible to evolve the cloud and sets timestep.