From e7bac07e141088a8d32198b477861e2cc7b88882 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Sun, 6 Mar 2016 19:05:14 +0000 Subject: [PATCH] Tensor: Added operator&= --- src/OpenFOAM/primitives/Tensor/Tensor.H | 3 +++ src/OpenFOAM/primitives/Tensor/TensorI.H | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/OpenFOAM/primitives/Tensor/Tensor.H b/src/OpenFOAM/primitives/Tensor/Tensor.H index 046ebfba194..45906cdd0c2 100644 --- a/src/OpenFOAM/primitives/Tensor/Tensor.H +++ b/src/OpenFOAM/primitives/Tensor/Tensor.H @@ -164,6 +164,9 @@ public: // Member Operators + //- Inner-product with a Tensor + inline void operator&=(const Tensor<Cmpt>&); + //- Assign to a SphericalTensor inline void operator=(const SphericalTensor<Cmpt>&); diff --git a/src/OpenFOAM/primitives/Tensor/TensorI.H b/src/OpenFOAM/primitives/Tensor/TensorI.H index b128d0eebd0..d08d91a969e 100644 --- a/src/OpenFOAM/primitives/Tensor/TensorI.H +++ b/src/OpenFOAM/primitives/Tensor/TensorI.H @@ -296,6 +296,29 @@ inline Tensor<Cmpt> Tensor<Cmpt>::T() const // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template<class Cmpt> +inline void Tensor<Cmpt>::operator&=(const Tensor<Cmpt>& t) +{ + *this = + ( + Tensor<Cmpt> + ( + this->xx()*t.xx() + this->xy()*t.yx() + this->xz()*t.zx(), + this->xx()*t.xy() + this->xy()*t.yy() + this->xz()*t.zy(), + this->xx()*t.xz() + this->xy()*t.yz() + this->xz()*t.zz(), + + this->yx()*t.xx() + this->yy()*t.yx() + this->yz()*t.zx(), + this->yx()*t.xy() + this->yy()*t.yy() + this->yz()*t.zy(), + this->yx()*t.xz() + this->yy()*t.yz() + this->yz()*t.zz(), + + this->zx()*t.xx() + this->zy()*t.yx() + this->zz()*t.zx(), + this->zx()*t.xy() + this->zy()*t.yy() + this->zz()*t.zy(), + this->zx()*t.xz() + this->zy()*t.yz() + this->zz()*t.zz() + ) + ); +} + + template<class Cmpt> inline void Tensor<Cmpt>::operator=(const SphericalTensor<Cmpt>& st) { -- GitLab