From ab81dffe4eb6e4eafd64a68942ad80b3f748a5c6 Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Tue, 17 Apr 2018 15:30:11 +0100 Subject: [PATCH] vectorTensorTransform: Primitive transformations --- .../vectorTensorTransform.H | 8 ++++++ .../vectorTensorTransformTemplates.C | 28 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H index 5627c4a9c..8fe74b71b 100644 --- a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H +++ b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H @@ -145,10 +145,18 @@ public: //- Inverse transform the given pointField inline pointField invTransformPosition(const pointField& pts) const; + //- Transform the given type + template + Type transform(const Type&) const; + //- Transform the given field template tmp> transform(const Field&) const; + //- Inverse transform the given type + template + Type invTransform(const Type&) const; + //- Inverse transform the given field template tmp> invTransform(const Field&) const; diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C index 6558cd19f..444a36203 100644 --- a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C +++ b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C @@ -25,6 +25,20 @@ License // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +Type Foam::vectorTensorTransform::transform(const Type& x) const +{ + if (hasR_) + { + return Foam::transform(R(), x); + } + else + { + return x; + } +} + + template Foam::tmp> Foam::vectorTensorTransform::transform ( @@ -42,6 +56,20 @@ Foam::tmp> Foam::vectorTensorTransform::transform } +template +Type Foam::vectorTensorTransform::invTransform(const Type& x) const +{ + if (hasR_) + { + return Foam::transform(R().T(), x); + } + else + { + return x; + } +} + + template Foam::tmp> Foam::vectorTensorTransform::invTransform (