From 07041365cca1a3d5c8be667e5bfc07503c384e4b Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Thu, 17 Mar 2016 18:09:04 +0000 Subject: [PATCH] primitives/transform: Added functios to generate rotation tensor about the given axis --- src/OpenFOAM/primitives/transform/transform.H | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/OpenFOAM/primitives/transform/transform.H b/src/OpenFOAM/primitives/transform/transform.H index 646ba7734f8..9fd1318acc7 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; -- GitLab