From c36677f1d98cf7d1b46f7456dadf5a3cb491a305 Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Wed, 28 May 2014 11:54:42 +0100 Subject: [PATCH] rotatingMotion: Corrected construction of quaternion for non-coordinate axis rotation Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1306 --- .../rotatingMotion/rotatingMotion.C | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion/rotatingMotion.C b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion/rotatingMotion.C index 7d716e687a7..0ce2b8dbe84 100644 --- a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion/rotatingMotion.C +++ b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion/rotatingMotion.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -75,9 +75,9 @@ Foam::solidBodyMotionFunctions::rotatingMotion::transformation() const scalar t = time_.value(); // Rotation around axis - vector eulerAngles = omega_->integrate(0, t)*axis_; + scalar angle = omega_->integrate(0, t); - quaternion R(eulerAngles.x(), eulerAngles.y(), eulerAngles.z()); + quaternion R(axis_, angle); septernion TR(septernion(origin_)*R*septernion(-origin_)); Info<< "solidBodyMotionFunctions::rotatingMotion::transformation(): " -- GitLab