From 66835ba9a9d6a2631b52b51bf9b84353016076ef Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Wed, 28 Feb 2024 10:40:41 +0000 Subject: [PATCH] functionObjects::cylindrical: Corrected normalisation of axes Resolves bug report https://bugs.openfoam.org/view.php?id=4058 --- .../field/cylindrical/cylindricalFunctionObject.C | 9 ++++----- .../coordinateSystems/coordinateRotation/cylindrical.C | 8 ++------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/functionObjects/field/cylindrical/cylindricalFunctionObject.C b/src/functionObjects/field/cylindrical/cylindricalFunctionObject.C index 54829d7e69..65fde2471a 100644 --- a/src/functionObjects/field/cylindrical/cylindricalFunctionObject.C +++ b/src/functionObjects/field/cylindrical/cylindricalFunctionObject.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2020-2024 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,13 +49,12 @@ namespace functionObjects Foam::tensor Foam::functionObjects::cylindrical::R(const vector& p) const { - vector dir = p - origin_; - dir /= mag(dir) + vSmall; + const vector dir = normalised(p - origin_); - const vector axis = axis_/mag(axis_); + const vector axis = normalised(axis_); const vector r = dir - (dir & axis)*axis; - return tensor(r, axis^r, axis); + return tensor(normalised(r), normalised(axis^r), axis); } diff --git a/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C index 3630a8db98..76f08e344d 100644 --- a/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C +++ b/src/meshTools/coordinateSystems/coordinateRotation/cylindrical.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2024 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -53,12 +53,8 @@ Foam::tensor Foam::cylindrical::R(const vector& p) const // If the point is on the axis choose any radial direction return axesRotation(axis, perpendicular(axis)).R(); } - else - { - return axesRotation(axis, dir).R(); - } - return tensor(r, axis^r, axis); + return axesRotation(axis, dir).R(); }