- silently deprecate 'startsWith', 'endsWith' methods
(added in 2016: 2b14360662), in favour of
'starts_with', 'ends_with' methods, corresponding to C++20 and
allowing us to cull then in a few years.
- handle single character versions of starts_with, ends_with.
- add single character version of removeEnd and silently deprecate
removeTrailing which did the same thing.
- drop the const versions of removeRepeated, removeTrailing.
Unused and with potential confusion.
STYLE: use shrink_to_fit(), erase()
- use keyType::option enum to consolidate searching options.
These enumeration names should be more intuitive to use
and improve code readability.
Eg, lookupEntry(key, keyType::REGEX);
vs lookupEntry(key, false, true);
or
Eg, lookupEntry(key, keyType::LITERAL_RECURSIVE);
vs lookupEntry(key, true, false);
- new findEntry(), findDict(), findScoped() methods with consolidated
search options for shorter naming and access names more closely
aligned with other components. Behave simliarly to the
methods lookupEntryPtr(), subDictPtr(), lookupScopedEntryPtr(),
respectively. Default search parameters consistent with lookupEntry().
Eg, const entry* e = dict.findEntry(key);
vs const entry* e = dict.lookupEntryPtr(key, false, true);
- added '*' and '->' dereference operators to dictionary searchers.
- use the dictionary 'get' methods instead of readScalar for
additional checking
Unchecked: readScalar(dict.lookup("key"));
Checked: dict.get<scalar>("key");
- In templated classes that also inherit from a dictionary, an additional
'template' keyword will be required. Eg,
this->coeffsDict().template get<scalar>("key");
For this common use case, the predefined getXXX shortcuts may be
useful. Eg,
this->coeffsDict().getScalar("key");
- both versions handle the same input words.
Only need the <Switch> version when the destination variable is
also a Switch and we need to output the word later.
This is controlled by providing a list of the fields to be cached in the "cache"
sub-dictionary of fvSolution.
Debug information about the caching is printed when the solution::debug switch
is on.
There are still a couple of issues to do with the naming of gradients used in
corrected snGrads and limited interpolation schemes that need to be resolved
but these are no different to previously and hence not urgent.
- partial revert for commit d21869b580
* only add extra newlines for a top-level dictionary that is output as such
- make "#inputMode merge" the default instead of "#inputMode error"
* this corresponds to a very common usage case
equivalent to the 'none' entry in fvSchemes and relaxation factors must be
provided for all fields which might require one. If it is set to a value
between 0 and 1 this value is used as the default relaxation factor.
- can now use dictionary substitutions and regular expressions in
system/fvSolution
- foamUpgradeFvSolution application to convert system/fvSolution
(with -test option)
motion solver syntax left as-is.