The characteristics of the base scheme are recovered by applying an
explicit correction to the upwind scheme weights.
Usage
Example of the \c deferredCorrection scheme applied to the \c linear
scheme:
\verbatim
divSchemes
{
.
.
div(phi,U) Gauss deferredCorrection linear;
.
.
}
\endverbatim
Based on a generalised form of a deferred correction linear scheme
supplied by CFD Software E+F GmbH
Based on the reference:
Spalart, P. R. and Rumsey, C. L. (2007).
Effective Inflow Conditions for Turbulence Models in Aerodynamic
Calculations
AIAA Journal, 45(10), 2544 - 2553.
The decay control default is off for backwards compatibility. To enable
it, add the following to the coefficients dictionary
// Optional decay control
decayControl yes;
kInf \<far-field k value\>;
omegaInf \<far-field omega value\>;
- regression introduced by part of commit 2787a8664d.
Specifically the way that scalarRanges is written, it parses through
until it hits invalid input. This works fine with an IStringStream,
but the ITstream is pickier and reports this as being an error.
So revert to IStringStream and be less picky about argList parsing.
in the longer-term, should fix scalarRanges instead.
heat rejection
The new optional entry targetQdot can be used to specify a target heat
rejection. This is additionally controlled using the
targetQdotCalcInterval and targetQdotRelax entries which default to
values of 5 and 0.5, respectively.
- label-size 64 build, compiler warnings, unused template argument,
faMatrix::clone() method
STYLE: faScalarMatrix - moved info message to within a debug scope
- allows changing the format of the sending OPstream at an arbitrary
point in the transmission. The information is passed through the
buffer and the receiving IPstream changes its format accordingly.
This allows a temporary toggling of ASCII/BINARY mid-stream.
- the return value signals if this method handled this particular type
of token. This minor change allows this method to be used as a succinct
prefilter an output token stream. It also provides better encapsulation
of what the particular output stream handles.
Eg,
bool ok = os.write(tok);
if (!ok) // or if (!ok && os.good())
{
os << tok;
}
instead of
if (tok.type() == typeA || tok.type() == typeB || ...)
{
os.write(tok);
}
else
{
os << tok;
}
- when dictionary keywords change between versions, the programmer
can use these compatibility methods to help with migration.
* csearchCompat, foundCompat, lookupEntryPtrCompat, lookupEntryCompat,
lookupCompat, lookupOrDefaultCompat, readIfPresentCompat, ...
They behave like their similarly named base versions, but accept an
additional list of older keyword names augmented by a version number.
For example,
dict.readIfPresentCompat
(
"key", {{"olderName", 1612}, {"veryOld", 240}},
myscalar
);
where 1612=OpenFOAM-v1612, 240=OpenFOAM-v2.4.x, etc.
- If the entry could be directly inserted: a pointer to the inserted entry.
- If a dictionary merge was required: a pointer to the dictionary that
received the entry.
- Return nullptr on any type of insertion failure.
This change is code compatible with existing code since it only alters
a bool return value to be a pointer return value.