41 void Foam::fvSchemes::clear()
44 defaultDdtScheme_.
clear();
45 d2dt2Schemes_.
clear();
46 defaultD2dt2Scheme_.
clear();
47 interpolationSchemes_.
clear();
48 defaultInterpolationScheme_.
clear();
50 defaultDivScheme_.
clear();
52 defaultGradScheme_.
clear();
53 snGradSchemes_.
clear();
54 defaultSnGradScheme_.
clear();
55 laplacianSchemes_.
clear();
56 defaultLaplacianScheme_.
clear();
61 void Foam::fvSchemes::readDict()
63 if (
found(
"ddtSchemes"))
65 ddtSchemes_ = subDict(
"ddtSchemes");
69 ddtSchemes_.set(
"default",
"none");
74 ddtSchemes_.found(
"default")
75 && word(ddtSchemes_.lookup(
"default")) !=
"none"
78 defaultDdtScheme_ = ddtSchemes_.lookup(
"default");
81 word(defaultDdtScheme_)
87 if (
found(
"d2dt2Schemes"))
89 d2dt2Schemes_ = subDict(
"d2dt2Schemes");
93 d2dt2Schemes_.set(
"default",
"none");
98 d2dt2Schemes_.found(
"default")
99 && word(d2dt2Schemes_.lookup(
"default")) !=
"none"
102 defaultD2dt2Scheme_ = d2dt2Schemes_.lookup(
"default");
105 word(defaultD2dt2Scheme_)
111 if (
found(
"interpolationSchemes"))
113 interpolationSchemes_ = subDict(
"interpolationSchemes");
115 else if (!interpolationSchemes_.found(
"default"))
117 interpolationSchemes_.add(
"default",
"linear");
122 interpolationSchemes_.found(
"default")
123 && word(interpolationSchemes_.lookup(
"default")) !=
"none"
126 defaultInterpolationScheme_ =
127 interpolationSchemes_.lookup(
"default");
131 divSchemes_ = subDict(
"divSchemes");
135 divSchemes_.found(
"default")
136 && word(divSchemes_.lookup(
"default")) !=
"none"
139 defaultDivScheme_ = divSchemes_.lookup(
"default");
143 gradSchemes_ = subDict(
"gradSchemes");
147 gradSchemes_.found(
"default")
148 && word(gradSchemes_.lookup(
"default")) !=
"none"
151 defaultGradScheme_ = gradSchemes_.lookup(
"default");
155 if (
found(
"snGradSchemes"))
157 snGradSchemes_ = subDict(
"snGradSchemes");
159 else if (!snGradSchemes_.found(
"default"))
161 snGradSchemes_.add(
"default",
"corrected");
166 snGradSchemes_.found(
"default")
167 && word(snGradSchemes_.lookup(
"default")) !=
"none"
170 defaultSnGradScheme_ = snGradSchemes_.lookup(
"default");
174 laplacianSchemes_ = subDict(
"laplacianSchemes");
178 laplacianSchemes_.found(
"default")
179 && word(laplacianSchemes_.lookup(
"default")) !=
"none"
182 defaultLaplacianScheme_ = laplacianSchemes_.lookup(
"default");
186 if (
found(
"fluxRequired"))
188 fluxRequired_.merge(subDict(
"fluxRequired"));
192 fluxRequired_.found(
"default")
193 && word(fluxRequired_.lookup(
"default")) !=
"none"
196 defaultFluxRequired_ = Switch(fluxRequired_.lookup(
"default"));
204 word filteredName(
name);
207 word::iterator iter2 = filteredName.begin();
213 word::const_iterator iter1 = filteredName.begin();
214 iter1 != filteredName.end();
218 const char c = *iter1;
224 else if (!
found || !isalnum(
c))
232 filteredName.resize(
n);
241 const dictionary& schemes,
242 const ITstream& defaultScheme
248 <<
" in dictionary " << schemes.name().caseName() <<
endl;
252 const entry* schemePtr = schemes.lookupEntryPtr(
name,
false,
true);
256 return schemePtr->stream();
261 bool filtered = (
name.find(
'.') != word::npos);
266 const entry* schemePtr =
267 schemes.lookupEntryPtr(filterGroup(
name),
false,
true);
271 return schemePtr->stream();
276 if (!defaultScheme.empty())
278 const_cast<ITstream&
>(defaultScheme).rewind();
279 return const_cast<ITstream&
>(defaultScheme);
286 <<
"Cannot find scheme for " <<
name;
294 <<
" in dictionary " << schemes.name().caseName()
296 return const_cast<ITstream&
>(defaultScheme);
317 ddtSchemes_(
"ddtSchemes", *this),
320 ddtSchemes_.
name() +
".default",
323 d2dt2Schemes_(
"d2dt2Schemes", *this),
326 d2dt2Schemes_.
name() +
".default",
329 interpolationSchemes_(
"interpolationSchemes", *this),
330 defaultInterpolationScheme_
332 interpolationSchemes_.
name() +
".default",
335 divSchemes_(
"divSchemes", *this),
338 divSchemes_.
name() +
".default",
341 gradSchemes_(
"gradSchemes", *this),
344 gradSchemes_.
name() +
".default",
347 snGradSchemes_(
"snGradSchemes", *this),
350 snGradSchemes_.
name() +
".default",
353 laplacianSchemes_(
"laplacianSchemes", *this),
354 defaultLaplacianScheme_
356 laplacianSchemes_.
name() +
".default",
359 fluxRequired_(
"fluxRequired", *this),
360 defaultFluxRequired_(false),
389 return lookupScheme(
name, ddtSchemes_, defaultDdtScheme_);
395 return lookupScheme(
name, d2dt2Schemes_, defaultD2dt2Scheme_);
404 interpolationSchemes_,
405 defaultInterpolationScheme_
412 return lookupScheme(
name, divSchemes_, defaultDivScheme_);
418 return lookupScheme(
name, gradSchemes_, defaultGradScheme_);
424 return lookupScheme(
name, snGradSchemes_, defaultSnGradScheme_);
430 return lookupScheme(
name, laplacianSchemes_, defaultLaplacianScheme_);
441 fluxRequired_.add(
name,
true,
true);
452 if (fluxRequired_.found(
name))
458 return defaultFluxRequired_;
graph_traits< Graph >::vertices_size_type size_type
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void clear()
Clear the list, i.e. set size to zero.
void clear()
Clear the dictionary.
Selector class for finite volume differencing schemes. fvMesh is derived from fvSchemes so that all f...
void setFluxRequired(const word &name) const
ITstream & interpolation(const word &name) const
ITstream & snGrad(const word &name) const
ITstream & grad(const word &name) const
ITstream & ddt(const word &name) const
fvSchemes(const objectRegistry &obr)
Construct for objectRegistry.
ITstream & laplacian(const word &name) const
ITstream & div(const word &name) const
ITstream & d2dt2(const word &name) const
bool read()
Read the fvSchemes.
bool fluxRequired(const word &name) const
Registry of regIOobjects.
virtual bool read()
Read object.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
const dimensionedScalar c
Speed of light in a vacuum.
errorManipArg< error, int > exit(error &err, const int errNo=1)
int system(const std::string &command)
Execute the specified command.
Ostream & endl(Ostream &os)
Add newline and flush stream.
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)