v2206: New and improved usability
- Added new make rules for ARM64 Nvidia compilers
- Dropped wmake rules for the PGI compiler (defunct)
-
Optional control to use clang lld and the mold linkers, e.g.:
export WM_COMPILER=Clang140 export WM_COMPILE_CONTROL="version=14.0 +lld"
-
Improved flexibility of local debug builds. When developing code, it can be useful to combine with FULLDEBUG and possibly with different optimisation levels. Can now conveniently combine both directly from the wmake call, without editing any files, e.g.:
wmake -debug-O1 src/OpenFOAM
- The FOAM_EXTRA_CXXFLAGS are now added last in the compile line for easier overrides.
It is now possible to specify the rotation type using an inline definition for more readability and less typing, e.g.:
transform
{
origin (0 0 0);
rotation axisAngle;
axis (0 0 1);
angle 45;
}
As well as the longer form:
transform
{
origin (0 0 0);
rotation
{
type axisAngle;
axis (0 0 1);
angle 45;
}
}
The old coordinateRotation keyword (OpenFOAM-v1806 and earlier) is now verbosely deprecated in favour of rotation.
For some applications roll-pitch-yaw is a natural representation for orientation so it is now directly supported as part of the Euler specification, e.g.:
rotation
{
type euler;
order rollPitchYaw;
angles (0 20 45);
}
Very simple rotations (-rotate-x, -rotate-y, -rotate-z) are now accepted directly for transformPoints and surfaceTransformPoints.
In many cases, the most natural way to specify a plane is by a reference point and its normal. The dictionary entry planeType has thus become optional. If not specified, the point/normal definition is assumed and the pointAndNormalDict sub-entry is optional.
This change makes is possible to specify more naturally. For example, for a sampled cutting plane:
slice
{
type cuttingPlane;
point (0 0 0);
normal (0 0 1);
interpolate true;
}
instead of
slice
{
type cuttingPlane;
planeType pointAndNormal;
pointAndNormalDict
{
point (0 0 0);
normal (0 0 1);
}
interpolate true;
}