diff --git a/src/OpenFOAM/primitives/transform/transform.H b/src/OpenFOAM/primitives/transform/transform.H index 646ba7734f811fafa5795707dcc8837ede46f89c..9fd1318acc76db78e02592ebe11305867b6448b9 100644 --- a/src/OpenFOAM/primitives/transform/transform.H +++ b/src/OpenFOAM/primitives/transform/transform.H @@ -119,6 +119,29 @@ inline tensor Rz(const scalar& omega) } +//- Rotational transformation tensor about axis a by omega radians +inline tensor Ra(const vector& a, const scalar omega) +{ + const scalar s = sin(omega); + const scalar c = cos(omega); + + return tensor + ( + sqr(a.x())*(1 - c) + c, + a.y()*a.x()*(1 - c) + a.z()*s, + a.x()*a.z()*(1 - c) - a.y()*s, + + a.x()*a.y()*(1 - c) - a.z()*s, + sqr(a.y())*(1 - c) + c, + a.y()*a.z()*(1 - c) + a.x()*s, + + a.x()*a.z()*(1 - c) + a.y()*s, + a.y()*a.z()*(1 - c) - a.x()*s, + sqr(a.z())*(1 - c) + c + ); +} + + inline label transform(const tensor&, const bool i) { return i;