36 void Foam::fvSchemes::clear()
39 defaultDdtScheme_.
clear();
40 d2dt2Schemes_.
clear();
41 defaultD2dt2Scheme_.
clear();
42 interpolationSchemes_.
clear();
43 defaultInterpolationScheme_.
clear();
45 defaultDivScheme_.
clear();
47 defaultGradScheme_.
clear();
48 snGradSchemes_.
clear();
49 defaultSnGradScheme_.
clear();
50 laplacianSchemes_.
clear();
51 defaultLaplacianScheme_.
clear();
52 fluxRequired_.
clear();
53 defaultFluxRequired_ =
false;
76 objectPath() +
"::ddtSchemes",
82 ddtSchemes_.
name() +
"::default",
89 objectPath() +
"::d2dt2Schemes",
95 d2dt2Schemes_.
name() +
"::default",
102 objectPath() +
"::interpolationSchemes",
106 defaultInterpolationScheme_
108 interpolationSchemes_.
name() +
"::default",
115 objectPath() +
"::divSchemes",
121 divSchemes_.
name() +
"::default",
128 objectPath() +
"::gradSchemes",
134 gradSchemes_.
name() +
"::default",
141 objectPath() +
"::snGradSchemes",
147 snGradSchemes_.
name() +
"::default",
154 objectPath() +
"::laplacianSchemes",
158 defaultLaplacianScheme_
160 laplacianSchemes_.
name() +
"::default",
167 objectPath() +
"::fluxRequired",
171 defaultFluxRequired_(false),
176 objectPath() +
"::cacheFields",
196 if (dict.
found(
"ddtSchemes"))
198 ddtSchemes_ = dict.
subDict(
"ddtSchemes");
200 else if (dict.
found(
"timeScheme"))
205 <<
"Using deprecated 'timeScheme' instead of 'ddtSchemes'"
210 if (schemeName ==
"EulerImplicit")
212 schemeName =
"Euler";
214 else if (schemeName ==
"BackwardDifferencing")
216 schemeName =
"backward";
218 else if (schemeName ==
"SteadyState")
220 schemeName =
"steadyState";
225 <<
"\n Only EulerImplicit, BackwardDifferencing and "
226 "SteadyState\n are supported by the old timeScheme "
227 "specification.\n Please use ddtSchemes instead."
231 ddtSchemes_.set(
"default", schemeName);
233 ddtSchemes_.lookup(
"default")[0].lineNumber() =
238 ddtSchemes_.set(
"default",
"none");
243 ddtSchemes_.found(
"default")
244 &&
word(ddtSchemes_.lookup(
"default")) !=
"none"
247 defaultDdtScheme_ = ddtSchemes_.lookup(
"default");
251 if (dict.
found(
"d2dt2Schemes"))
253 d2dt2Schemes_ = dict.
subDict(
"d2dt2Schemes");
255 else if (dict.
found(
"timeScheme"))
260 <<
"Using deprecated 'timeScheme' instead of 'd2dt2Schemes'"
265 if (schemeName ==
"EulerImplicit")
267 schemeName =
"Euler";
269 else if (schemeName ==
"SteadyState")
271 schemeName =
"steadyState";
274 d2dt2Schemes_.set(
"default", schemeName);
276 d2dt2Schemes_.lookup(
"default")[0].lineNumber() =
281 d2dt2Schemes_.set(
"default",
"none");
286 d2dt2Schemes_.found(
"default")
287 &&
word(d2dt2Schemes_.lookup(
"default")) !=
"none"
290 defaultD2dt2Scheme_ = d2dt2Schemes_.lookup(
"default");
294 if (dict.
found(
"interpolationSchemes"))
296 interpolationSchemes_ = dict.
subDict(
"interpolationSchemes");
298 else if (!interpolationSchemes_.found(
"default"))
300 interpolationSchemes_.
add(
"default",
"linear");
305 interpolationSchemes_.found(
"default")
306 &&
word(interpolationSchemes_.lookup(
"default")) !=
"none"
309 defaultInterpolationScheme_ =
310 interpolationSchemes_.lookup(
"default");
314 divSchemes_ = dict.
subDict(
"divSchemes");
318 divSchemes_.found(
"default")
319 &&
word(divSchemes_.lookup(
"default")) !=
"none"
322 defaultDivScheme_ = divSchemes_.
lookup(
"default");
326 gradSchemes_ = dict.
subDict(
"gradSchemes");
330 gradSchemes_.found(
"default")
331 &&
word(gradSchemes_.lookup(
"default")) !=
"none"
334 defaultGradScheme_ = gradSchemes_.
lookup(
"default");
338 if (dict.
found(
"snGradSchemes"))
340 snGradSchemes_ = dict.
subDict(
"snGradSchemes");
342 else if (!snGradSchemes_.found(
"default"))
344 snGradSchemes_.
add(
"default",
"corrected");
349 snGradSchemes_.found(
"default")
350 &&
word(snGradSchemes_.lookup(
"default")) !=
"none"
353 defaultSnGradScheme_ = snGradSchemes_.lookup(
"default");
357 laplacianSchemes_ = dict.
subDict(
"laplacianSchemes");
361 laplacianSchemes_.found(
"default")
362 &&
word(laplacianSchemes_.lookup(
"default")) !=
"none"
365 defaultLaplacianScheme_ = laplacianSchemes_.
lookup(
"default");
369 if (dict.
found(
"fluxRequired"))
371 fluxRequired_ = dict.
subDict(
"fluxRequired");
375 fluxRequired_.found(
"default")
376 &&
word(fluxRequired_.lookup(
"default")) !=
"none"
379 defaultFluxRequired_ =
Switch(fluxRequired_.lookup(
"default"));
383 if (dict.
found(
"cacheFields"))
385 cacheFields_ = dict.
subDict(
"cacheFields");
401 return subDict(
word(lookup(
"select")));
414 Info<<
"Lookup ddtScheme for " << name <<
endl;
417 if (ddtSchemes_.found(name) || defaultDdtScheme_.empty())
419 return ddtSchemes_.lookup(name);
423 const_cast<ITstream&
>(defaultDdtScheme_).rewind();
424 return const_cast<ITstream&
>(defaultDdtScheme_);
433 Info<<
"Lookup d2dt2Scheme for " << name <<
endl;
436 if (d2dt2Schemes_.found(name) || defaultD2dt2Scheme_.empty())
438 return d2dt2Schemes_.lookup(name);
442 const_cast<ITstream&
>(defaultD2dt2Scheme_).rewind();
443 return const_cast<ITstream&
>(defaultD2dt2Scheme_);
452 Info<<
"Lookup interpolationScheme for " << name <<
endl;
457 interpolationSchemes_.found(name)
458 || defaultInterpolationScheme_.empty()
461 return interpolationSchemes_.lookup(name);
465 const_cast<ITstream&
>(defaultInterpolationScheme_).rewind();
466 return const_cast<ITstream&
>(defaultInterpolationScheme_);
475 Info<<
"Lookup divScheme for " << name <<
endl;
478 if (divSchemes_.found(name) || defaultDivScheme_.empty())
480 return divSchemes_.lookup(name);
484 const_cast<ITstream&
>(defaultDivScheme_).rewind();
485 return const_cast<ITstream&
>(defaultDivScheme_);
494 Info<<
"Lookup gradScheme for " << name <<
endl;
497 if (gradSchemes_.found(name) || defaultGradScheme_.empty())
499 return gradSchemes_.lookup(name);
503 const_cast<ITstream&
>(defaultGradScheme_).rewind();
504 return const_cast<ITstream&
>(defaultGradScheme_);
513 Info<<
"Lookup snGradScheme for " << name <<
endl;
516 if (snGradSchemes_.found(name) || defaultSnGradScheme_.empty())
518 return snGradSchemes_.lookup(name);
522 const_cast<ITstream&
>(defaultSnGradScheme_).rewind();
523 return const_cast<ITstream&
>(defaultSnGradScheme_);
532 Info<<
"Lookup laplacianScheme for " << name <<
endl;
535 if (laplacianSchemes_.found(name) || defaultLaplacianScheme_.empty())
537 return laplacianSchemes_.lookup(name);
541 const_cast<ITstream&
>(defaultLaplacianScheme_).rewind();
542 return const_cast<ITstream&
>(defaultLaplacianScheme_);
551 Info<<
"Lookup fluxRequired for " << name <<
endl;
554 if (fluxRequired_.found(name))
560 return defaultFluxRequired_;
569 Info<<
"Lookup cache for " << name <<
endl;
572 if (cacheFields_.found(name))