Coordinate systems
As described in the release notes, coordinate systems received a significant overhaul. The potential code-breaking points are listed here.
Cylindrical coordinate systems are now radians only.
The base-level rotation tensor and the transform/invTransform methods are now directly located in the coordinate system.
Old code:
tensor rot = cs.R().R();
cs.R().transform(...);
New code:
tensor rot = cs.R();
cs.transform(...);
Some naming inconsistencies were eliminated in the coordinate systems
-
transformVector()
becomestransformPrincipal()
-
transformTensor()
is now simplytransform()
The new methods transformPoint/invTransformPoint provide transformations with an origin offset using Cartesian for both local and global points. These can be used to determine the local position based on the origin/rotation without interpreting it as a r-theta-z value, for example.
Coordinate system namespaces
For better code isolation, dedicated Foam::coordSystem
and
Foam::coordinateRotations
namespaces have been introduced.
For convenience and compatibility with older code, typedefs are also
provided. For example,
//- Compatibility typedef 1806
typedef coordSystem::cartesian cartesianCS;
//- Compatibility typedef 1806
typedef coordinateRotations::euler EulerCoordinateRotation;