From a622a9a0ece568c2b6b5a24416c407b68d7f9d0c Mon Sep 17 00:00:00 2001 From: henry <Henry Weller h.weller@opencfd.co.uk> Date: Fri, 14 Nov 2008 16:02:47 +0000 Subject: [PATCH] Changed the function name "cofactors" to "cof" and propagated the function through the field algebra. --- .../dimensionedSymmTensor.C | 11 ++++++++++ .../dimensionedSymmTensor.H | 1 + .../dimensionedTensor/dimensionedTensor.C | 11 ++++++++++ .../dimensionedTensor/dimensionedTensor.H | 1 + .../DimensionedSymmTensorField.C | 1 + .../DimensionedSymmTensorField.H | 1 + .../DimensionedTensorField.C | 1 + .../DimensionedTensorField.H | 1 + .../symmTensorFieldField.C | 1 + .../symmTensorFieldField.H | 1 + .../tensorFieldField/tensorFieldField.C | 1 + .../tensorFieldField/tensorFieldField.H | 1 + .../Fields/symmTensorField/symmTensorField.C | 1 + .../Fields/symmTensorField/symmTensorField.H | 1 + .../fields/Fields/tensorField/tensorField.C | 1 + .../fields/Fields/tensorField/tensorField.H | 1 + .../GeometricSymmTensorField.C | 1 + .../GeometricSymmTensorField.H | 1 + .../GeometricTensorField.C | 1 + .../GeometricTensorField.H | 1 + .../primitives/SymmTensor/SymmTensorI.H | 15 +++---------- src/OpenFOAM/primitives/Tensor/TensorI.H | 2 +- src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H | 22 +++++++++++-------- 23 files changed, 57 insertions(+), 22 deletions(-) diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C b/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C index 21686f302b8..77b73f00435 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C @@ -125,6 +125,17 @@ dimensionedScalar det(const dimensionedSymmTensor& dt) } +dimensionedSymmTensor cof(const dimensionedSymmTensor& dt) +{ + return dimensionedSymmTensor + ( + "cof("+dt.name()+')', + dt.dimensions(), + cof(dt.value()) + ); +} + + dimensionedSymmTensor inv(const dimensionedSymmTensor& dt) { return dimensionedSymmTensor diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.H b/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.H index 4299c3ff1ae..5c03879af86 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.H +++ b/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.H @@ -59,6 +59,7 @@ dimensionedSymmTensor twoSymm(const dimensionedSymmTensor&); dimensionedSymmTensor dev(const dimensionedSymmTensor&); dimensionedSymmTensor dev2(const dimensionedSymmTensor&); dimensionedScalar det(const dimensionedSymmTensor&); +dimensionedSymmTensor cof(const dimensionedSymmTensor&); dimensionedSymmTensor inv(const dimensionedSymmTensor&); diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.C b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.C index 319dee9d29a..ba4c2d92606 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.C +++ b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.C @@ -92,6 +92,17 @@ dimensionedScalar det(const dimensionedTensor& dt) } +dimensionedTensor cof(const dimensionedTensor& dt) +{ + return dimensionedTensor + ( + "cof("+dt.name()+')', + dt.dimensions(), + cof(dt.value()) + ); +} + + dimensionedTensor inv(const dimensionedTensor& dt) { return dimensionedTensor diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H index cb20601ef6a..854c58f953b 100644 --- a/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H +++ b/src/OpenFOAM/dimensionedTypes/dimensionedTensor/dimensionedTensor.H @@ -56,6 +56,7 @@ dimensionedScalar tr(const dimensionedTensor&); dimensionedTensor dev(const dimensionedTensor&); dimensionedTensor dev2(const dimensionedTensor&); dimensionedScalar det(const dimensionedTensor&); +dimensionedTensor cof(const dimensionedTensor&); dimensionedTensor inv(const dimensionedTensor&); dimensionedSymmTensor symm(const dimensionedTensor&); dimensionedSymmTensor twoSymm(const dimensionedTensor&); diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C index 60b89638d70..b63d227c056 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C @@ -46,6 +46,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) +UNARY_FUNCTION(symmTensor, symmTensor, cof, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv, inv) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H index 4c2ff482855..9966c01e2f9 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) +UNARY_FUNCTION(symmTensor, symmTensor, cof, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv, inv) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C index bdf4edb5fd0..36cb451ca7a 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C @@ -45,6 +45,7 @@ UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) UNARY_FUNCTION(scalar, tensor, det, transform) +UNARY_FUNCTION(tensor, tensor, cof, cof) UNARY_FUNCTION(tensor, tensor, inv, inv) UNARY_FUNCTION(vector, tensor, eigenValues, sign) UNARY_FUNCTION(tensor, tensor, eigenVectors, transform) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H index 736628e1daf..628b44547a9 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) UNARY_FUNCTION(scalar, tensor, det, transform) +UNARY_FUNCTION(tensor, tensor, cof, cof) UNARY_FUNCTION(tensor, tensor, inv, inv) UNARY_FUNCTION(vector, tensor, eigenValues, sign) UNARY_FUNCTION(tensor, tensor, eigenVectors, transform) diff --git a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C index de6cb835070..0349bf933f2 100644 --- a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C +++ b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C @@ -48,6 +48,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) +UNARY_FUNCTION(symmTensor, symmTensor, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv) diff --git a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H index 0b73d558050..bfa043aecec 100644 --- a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H +++ b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) +UNARY_FUNCTION(symmTensor, symmTensor, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv) diff --git a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C index 793691bf667..2286b908f7f 100644 --- a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C +++ b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C @@ -47,6 +47,7 @@ UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) UNARY_FUNCTION(scalar, tensor, det) +UNARY_FUNCTION(tensor, tensor, cof) UNARY_FUNCTION(tensor, tensor, inv) UNARY_FUNCTION(vector, tensor, eigenValues) UNARY_FUNCTION(tensor, tensor, eigenVectors) diff --git a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H index 52804804de3..7dbb90c5985 100644 --- a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H +++ b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) UNARY_FUNCTION(scalar, tensor, det) +UNARY_FUNCTION(tensor, tensor, cof) UNARY_FUNCTION(tensor, tensor, inv) UNARY_FUNCTION(vector, tensor, eigenValues) UNARY_FUNCTION(tensor, tensor, eigenVectors) diff --git a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.C b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.C index 9ed36ba9f1b..c3c8ded87c6 100644 --- a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.C +++ b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.C @@ -46,6 +46,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) +UNARY_FUNCTION(symmTensor, symmTensor, cof) void inv(Field<symmTensor>& tf, const UList<symmTensor>& tf1) { diff --git a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H index dc0ace7e9f8..024e2ce683b 100644 --- a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H +++ b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H @@ -62,6 +62,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) +UNARY_FUNCTION(symmTensor, symmTensor, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv) diff --git a/src/OpenFOAM/fields/Fields/tensorField/tensorField.C b/src/OpenFOAM/fields/Fields/tensorField/tensorField.C index d1bbaff82d7..f2394fcc761 100644 --- a/src/OpenFOAM/fields/Fields/tensorField/tensorField.C +++ b/src/OpenFOAM/fields/Fields/tensorField/tensorField.C @@ -45,6 +45,7 @@ UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) UNARY_FUNCTION(scalar, tensor, det) +UNARY_FUNCTION(tensor, tensor, cof) void inv(Field<tensor>& tf, const UList<tensor>& tf1) { diff --git a/src/OpenFOAM/fields/Fields/tensorField/tensorField.H b/src/OpenFOAM/fields/Fields/tensorField/tensorField.H index 847745d01a7..d916678006d 100644 --- a/src/OpenFOAM/fields/Fields/tensorField/tensorField.H +++ b/src/OpenFOAM/fields/Fields/tensorField/tensorField.H @@ -62,6 +62,7 @@ UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) UNARY_FUNCTION(scalar, tensor, det) +UNARY_FUNCTION(tensor, tensor, cof) UNARY_FUNCTION(tensor, tensor, inv) UNARY_FUNCTION(vector, tensor, eigenValues) UNARY_FUNCTION(tensor, tensor, eigenVectors) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C index 33156431984..737f59c7a0d 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C @@ -46,6 +46,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) +UNARY_FUNCTION(symmTensor, symmTensor, cof, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv, inv) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H index b2bdfe46c61..a415b21a143 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) +UNARY_FUNCTION(symmTensor, symmTensor, cof, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv, inv) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C index eb1663d0654..9347d061195 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C @@ -45,6 +45,7 @@ UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) UNARY_FUNCTION(scalar, tensor, det, transform) +UNARY_FUNCTION(tensor, tensor, cof, cof) UNARY_FUNCTION(tensor, tensor, inv, inv) UNARY_FUNCTION(vector, tensor, eigenValues, sign) UNARY_FUNCTION(tensor, tensor, eigenVectors, transform) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H index eaf3be0d427..8de34482725 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H @@ -58,6 +58,7 @@ UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) UNARY_FUNCTION(scalar, tensor, det, transform) +UNARY_FUNCTION(tensor, tensor, cof, cof) UNARY_FUNCTION(tensor, tensor, inv, inv) UNARY_FUNCTION(vector, tensor, eigenValues, sign) UNARY_FUNCTION(tensor, tensor, eigenVectors, transform) diff --git a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H index 8e041f4158d..fd0f6e37c57 100644 --- a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H +++ b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H @@ -33,13 +33,11 @@ namespace Foam // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -//- Construct null template <class Cmpt> inline SymmTensor<Cmpt>::SymmTensor() {} -//- Construct given VectorSpace template <class Cmpt> inline SymmTensor<Cmpt>::SymmTensor ( @@ -50,7 +48,6 @@ inline SymmTensor<Cmpt>::SymmTensor {} -//- Construct given SphericalTensor template <class Cmpt> inline SymmTensor<Cmpt>::SymmTensor(const SphericalTensor<Cmpt>& st) { @@ -60,7 +57,6 @@ inline SymmTensor<Cmpt>::SymmTensor(const SphericalTensor<Cmpt>& st) } -//- Construct from components template <class Cmpt> inline SymmTensor<Cmpt>::SymmTensor ( @@ -75,7 +71,6 @@ inline SymmTensor<Cmpt>::SymmTensor } -//- Construct from Istream template <class Cmpt> inline SymmTensor<Cmpt>::SymmTensor(Istream& is) : @@ -159,7 +154,6 @@ inline Cmpt& SymmTensor<Cmpt>::zz() } -//- Return symmetric tensor transpose template <class Cmpt> inline const SymmTensor<Cmpt>& SymmTensor<Cmpt>::T() const { @@ -323,22 +317,19 @@ inline Cmpt det(const SymmTensor<Cmpt>& st) } -//- Return the cofactor tensor of a symmetric tensor +//- Return the cofactor symmetric tensor of a symmetric tensor template <class Cmpt> -inline SymmTensor<Cmpt> cofactors(const SymmTensor<Cmpt>& st) +inline SymmTensor<Cmpt> cof(const SymmTensor<Cmpt>& st) { return SymmTensor<Cmpt> ( st.yy()*st.zz() - st.yz()*st.yz(), st.xz()*st.yz() - st.xy()*st.zz(), - st.xy()*st.yz() - st.yy()*st.xz(), + st.xy()*st.yz() - st.xz()*st.yy(), - st.xz()*st.yz() - st.xy()*st.zz(), st.xx()*st.zz() - st.xz()*st.xz(), st.xy()*st.xz() - st.xx()*st.yz(), - st.xy()*st.yz() - st.xz()*st.yy(), - st.xy()*st.xz() - st.xx()*st.yz(), st.xx()*st.yy() - st.xy()*st.xy() ); } diff --git a/src/OpenFOAM/primitives/Tensor/TensorI.H b/src/OpenFOAM/primitives/Tensor/TensorI.H index 63d74483e65..99aa6f260f1 100644 --- a/src/OpenFOAM/primitives/Tensor/TensorI.H +++ b/src/OpenFOAM/primitives/Tensor/TensorI.H @@ -467,7 +467,7 @@ inline Cmpt det(const Tensor<Cmpt>& t) //- Return the cofactor tensor of a tensor template <class Cmpt> -inline Tensor<Cmpt> cofactors(const Tensor<Cmpt>& t) +inline Tensor<Cmpt> cof(const Tensor<Cmpt>& t) { return Tensor<Cmpt> ( diff --git a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H index f98d472f927..da278da8198 100644 --- a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H +++ b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H @@ -31,13 +31,11 @@ namespace Foam // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -//- Construct null template <class Cmpt> inline Tensor2D<Cmpt>::Tensor2D() {} -//- Construct given VectorSpace template <class Cmpt> inline Tensor2D<Cmpt>::Tensor2D(const VectorSpace<Tensor2D<Cmpt>, Cmpt, 4>& vs) : @@ -45,7 +43,6 @@ inline Tensor2D<Cmpt>::Tensor2D(const VectorSpace<Tensor2D<Cmpt>, Cmpt, 4>& vs) {} -//- Construct given SphericalTensor2D template <class Cmpt> inline Tensor2D<Cmpt>::Tensor2D(const SphericalTensor2D<Cmpt>& st) { @@ -54,7 +51,6 @@ inline Tensor2D<Cmpt>::Tensor2D(const SphericalTensor2D<Cmpt>& st) } -//- Construct from components template <class Cmpt> inline Tensor2D<Cmpt>::Tensor2D ( @@ -67,7 +63,6 @@ inline Tensor2D<Cmpt>::Tensor2D } -//- Construct from Istream template <class Cmpt> inline Tensor2D<Cmpt>::Tensor2D(Istream& is) : @@ -153,7 +148,6 @@ inline Cmpt& Tensor2D<Cmpt>::yy() } -//- Return tensor transpose template <class Cmpt> inline Tensor2D<Cmpt> Tensor2D<Cmpt>::T() const { @@ -303,17 +297,27 @@ inline Cmpt det(const Tensor2D<Cmpt>& t) return(t.xx()*t.yy() - t.xy()*t.yx()); } -//- Return the inverse of a tensor give the determinant + +//- Return the cofactor tensor of a tensor template <class Cmpt> -inline Tensor2D<Cmpt> inv(const Tensor2D<Cmpt>& t, const Cmpt dett) +inline Tensor2D<Cmpt> cof(const Tensor2D<Cmpt>& t) { return Tensor2D<Cmpt> ( t.yy(), -t.xy(), -t.yx(), t.xx() - )/dett; + ); +} + + +//- Return the inverse of a tensor given the determinant +template <class Cmpt> +inline Tensor2D<Cmpt> inv(const Tensor2D<Cmpt>& t, const Cmpt dett) +{ + return cof(t)/dett; } + //- Return the inverse of a tensor template <class Cmpt> inline Tensor2D<Cmpt> inv(const Tensor2D<Cmpt>& t) -- GitLab