functionObjects::cylindrical: Corrected normalisation of axes

Resolves bug report https://bugs.openfoam.org/view.php?id=4058
This commit is contained in:
Will Bainbridge
2024-02-28 10:40:41 +00:00
parent da16a1b0a9
commit 66835ba9a9
2 changed files with 6 additions and 11 deletions

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org \\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation \\ / A nd | Copyright (C) 2020-2024 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -49,13 +49,12 @@ namespace functionObjects
Foam::tensor Foam::functionObjects::cylindrical::R(const vector& p) const Foam::tensor Foam::functionObjects::cylindrical::R(const vector& p) const
{ {
vector dir = p - origin_; const vector dir = normalised(p - origin_);
dir /= mag(dir) + vSmall;
const vector axis = axis_/mag(axis_); const vector axis = normalised(axis_);
const vector r = dir - (dir & axis)*axis; const vector r = dir - (dir & axis)*axis;
return tensor(r, axis^r, axis); return tensor(normalised(r), normalised(axis^r), axis);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org \\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2024 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License 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 // If the point is on the axis choose any radial direction
return axesRotation(axis, perpendicular(axis)).R(); return axesRotation(axis, perpendicular(axis)).R();
} }
else
{
return axesRotation(axis, dir).R();
}
return tensor(r, axis^r, axis); return axesRotation(axis, dir).R();
} }