Input Dictionaries
#message
directive
New The new #message
dictionary directive allows reporting of expanded
string content to stderr. This can be useful to add extract
information into log files, or when debugging more complicated
dictionaries. For example,
T
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-10;
relTol 0;
#message "Using solver: $solver"
}
#word
directive
New The #word
dictionary directive can be used as a simple means to
create dictionary names or other entries based on other dictionary
elements. The content is expanded as a string and added as a validated
word into the dictionary. Some examples:
#word "some_prefix_solverInfo_${application}"
{
type solverInfo;
libs (utilityFunctionObjects);
...
}
Or as a multi-line entry (since it automatically squeezes out non-word characters):
#word {
some_prefix_solverInfo
/* Appended with application name (if defined) */
${application:+_} // Use '_' separator
${application} // The application
}
{
type solverInfo;
libs (utilityFunctionObjects);
...
}
Extended embedded prefix for regular expressions
In addition to the (?i)
prefix for regular expressions to ignore
upper/lower case when matching, it is now also possible to have a
(?!)
prefix to negate the matching. Both can also be combined
together. Here are a few examples:
// Anything that does not contain "processor":
"(?!).*processor.*"
// Anything that does not start with "wall" or "Wall" etc (ignoring case):
"(?!i)wall.*"
Function Objects
reference function object
The reference
function object has been extended to accept any
Function1 input as its reference value with refValue
as a
mandatory entry. To recover previous behaviour:
- Without a reference value, simply specify a zero no-op:
refValue zero;
- With a reference value at a given position, use the new
sample
function object:
refValue sample;
position (x y z);
Configuration
-
The
WM_COMPILE_CONTROL
environment can now be used to direct which compiler variant to use. See building tuning for some examples. -
The command-line specification of
-opt-switch
now properly handles floating point values too. For example,decomposePar -opt-switch maxThreadFileBufferSize=2e10 -fileHandler collated
Environment
The ordering of library paths has been modified. Previously OpenFOAM library paths were set before adding in MPI-specific elements. However, this was found to mask some libraries.
For the unexpected chance that this updated order negatively affects a particular installation, here is a side by side of the different orders.
New library order | Old library order |
---|---|
user-lib (serial) | various 3rd-party |
site-lib (serial) | foam-lib (mpi) |
foam-lib (mpi) | ext-lib (mpi) |
foam-lib (serial) | system mpi-libs |
ext-lib (mpi) | user-lib (serial) |
ext-lib (serial) | site-lib (serial) |
various 3rd-party | foam-lib (serial) |
system mpi-libs | ext-lib (serial) |
dummy | dummy |
Other Changes
Handle min/span as alternative to min/max for box selections (searchable box, boxToCell, boxToFace, boxToPoint).