- consistent with FOAM_SIGFPE etc.
- centralize code as error::useAbort() static function to avoid
scattering the logic throughout the code.
ENH: also accept "0" and "1" string values for Switch
- not the normal path for Switch input (eg, from a dictionary), but
consistent with bool definitions and simplifies string parsing.
This means that `FOAM_SIGFPE=1 application` will now also work.
- use refPtr to simplify some logic.
- avoid copying field if an average will be used
- initialize geometric fields with a uniform value instead of Zero
- minor tweak of method names
- apply bugfix #1889 (longer description elsewhere)
- had calculated boundaries (default) for the evaluated variables,
which meant they retained their initialized values (usually Zero).
This normally goes unnoticed, since the boundary values are largely
irrelevant in the volField expressions. However, when applying
functions that balk at a zero value - eg, log() - this raises a
floating point exception.
These boundary should be zeroGradient, since the evaluated variables
correspond to the internalField only. Could continue to use
calculated, but then need to set the calculated boundary values from
the patch internal field manually.
Allows specification of extrusion path using blockMesh 'edges' syntax.
See tutorials/mesh/extrudeMesh/polyline
Contribution by Ivor Clifford/Paul Scherrer Institut
ENH: add some scalar constants for .org compatibility (#1881)
Although it can very much be a moving target, it can prove partly
useful to have some compatibility constants/methods.
- The wholesale change of 'GREAT' -> 'great' etc (JAN-2018), makes
user coding for multiple versions problematic. When
COMPAT_OPENFOAM_ORG is defined, now define constants (aliases) named
as per the openfoam.org version. Values, however, remain identical.
- For type-safe dictionary value retrieval, we have the templated
get<> methods added around NOV-2018 and deprecated the lookupType
method.
The .org version followed suit in NOV-2019, but opted for renaming
the templated lookupType method as a templated 'lookup' method.
Using this is discouraged, but allowed when COMPAT_OPENFOAM_ORG is
defined.
- flips state while preserving the textual representation.
Eg, OFF <-> ON, YES <-> NO etc.
- fix test case to avoid triggering abort(), which we cannot try/catch
- provides a more direct means of generating a compound token without
an Istream
- add transferCompoundToken() without Istream reference
- mark more token methods as noexcept
- was marked as transitional/deprecated (2018-02), now deleted.
- avoids unexpected stealing of the pointer.
Use the move assignment it that is the intention.
- support construct face from subset of labels.
- additional cellModel face() method to return a single face.
- reduce some allocations in cellModel centre/mag methods
STYLE: mark old cellModeller methods as compile-time deprecated
- deprecated in 2017, but not marked as such
STYLE: indentation, spacing in some headers
- The arc will frequently enclose an angle less than 180 degrees.
For the case, it is possible to define the arc by its endpoints
and its centre (origin) point. For example,
arc 0 1 origin (0 0 0);
When defined in the way, any discrepancy in the arc radius for the
endpoints is resolved by adjusting the origin to ensure that the
average radius is satisfied.
It is also possible to specify a \em flatness factor as a multiplier
of the radius. For example,
arc 0 1 origin 1.1 (0 0 0);
ENH: minor code cleanup for block edges
ENH: expose point appending as polyList::concat
- contents to be filled with a later assignment.
This can help avoid deduction issues when populating from a list of
tokens, and the templated version is selected:
```
template<class T>
primitiveEntry(const keyType&, const T&);
```
ENH: support construct empty ITstream with given name
- populate contents later by assigment
- provides consistency with identity(label, label) and looks more
familiar than using labelRange::labels()
- relocates labelRange IO operators to IntRange
ENH: make sliceRange interators random access
STYLE: scalarRanges::match() instead of predicate operator
- returns a range of `int` values that can be iterated across.
For example,
for (const int proci : Pstream::subProcs()) { ... }
instead of
for
(
int proci = Pstream::firstSlave();
proci <= Pstream::lastSlave();
++proci
)
{
...
}
- returns a range of `int` values that can be iterated across.
For example,
for (const int proci : Pstream::allProcs()) { ... }
instead of
for (label proci = 0; proci < Pstream::nProcs(); ++proci) { ... }
- timeVaryingUniformFixedValue -> uniformFixedValue
- allows a variety of functions (eg, coded, expressions, tables, ...)
- more similarity to finiteVolume patch type
STYLE: remove unused timeVarying... from etc/controlDict
- specifying gradientExpr without a valueExpr, a missing fractionExpr
should be treated as 0 (gradient only), not as 1 (value only)
ENH: improve sanity checks + evaluation short-cuts in exprMixedFvPatchField
- add reverse iterators and replace std::iterator
(deprecated in C++17) with full definitions
- simplify construction of iterators
- construct labelRange from a single single parameter.
This creates a (0,len) range.
- make basic constructors forms constexpr.
Remove unused size checks.
- Derive labelRange from new IntRange template class.
Allows reuse of base functionality with different integral sizes.
Deprecations:
- deprecate labelRange::valid() in favour of using
labelRange::empty() or the bool operator.
For example,
if (range) ... vs older if (range.valid()) ...
DEFEATURE: drop labelRange::null, scalarRange::null static variables
- turned out to be not particularly useful.
Can simply use constexpr contructor forms
DEFEATURE: drop labelRange::identity static method
- simply use the single-parameter constructor