From a622a9a0ece568c2b6b5a24416c407b68d7f9d0c Mon Sep 17 00:00:00 2001 From: henry 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 21686f302b..77b73f0043 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 4299c3ff1a..5c03879af8 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 319dee9d29..ba4c2d9260 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 cb20601ef6..854c58f953 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 60b89638d7..b63d227c05 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 4c2ff48285..9966c01e2f 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 bdf4edb5fd..36cb451ca7 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 736628e1da..628b44547a 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 de6cb83507..0349bf933f 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 0b73d55805..bfa043aece 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 793691bf66..2286b908f7 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 52804804de..7dbb90c598 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 9ed36ba9f1..c3c8ded87c 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& tf, const UList& tf1) { diff --git a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H index dc0ace7e9f..024e2ce683 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 d1bbaff82d..f2394fcc76 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& tf, const UList& tf1) { diff --git a/src/OpenFOAM/fields/Fields/tensorField/tensorField.H b/src/OpenFOAM/fields/Fields/tensorField/tensorField.H index 847745d01a..d916678006 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 3315643198..737f59c7a0 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 b2bdfe46c6..a415b21a14 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 eb1663d065..9347d06119 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 eaf3be0d42..8de3448272 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 8e041f4158..fd0f6e37c5 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 inline SymmTensor::SymmTensor() {} -//- Construct given VectorSpace template inline SymmTensor::SymmTensor ( @@ -50,7 +48,6 @@ inline SymmTensor::SymmTensor {} -//- Construct given SphericalTensor template inline SymmTensor::SymmTensor(const SphericalTensor& st) { @@ -60,7 +57,6 @@ inline SymmTensor::SymmTensor(const SphericalTensor& st) } -//- Construct from components template inline SymmTensor::SymmTensor ( @@ -75,7 +71,6 @@ inline SymmTensor::SymmTensor } -//- Construct from Istream template inline SymmTensor::SymmTensor(Istream& is) : @@ -159,7 +154,6 @@ inline Cmpt& SymmTensor::zz() } -//- Return symmetric tensor transpose template inline const SymmTensor& SymmTensor::T() const { @@ -323,22 +317,19 @@ inline Cmpt det(const SymmTensor& st) } -//- Return the cofactor tensor of a symmetric tensor +//- Return the cofactor symmetric tensor of a symmetric tensor template -inline SymmTensor cofactors(const SymmTensor& st) +inline SymmTensor cof(const SymmTensor& st) { return SymmTensor ( 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 63d74483e6..99aa6f260f 100644 --- a/src/OpenFOAM/primitives/Tensor/TensorI.H +++ b/src/OpenFOAM/primitives/Tensor/TensorI.H @@ -467,7 +467,7 @@ inline Cmpt det(const Tensor& t) //- Return the cofactor tensor of a tensor template -inline Tensor cofactors(const Tensor& t) +inline Tensor cof(const Tensor& t) { return Tensor ( diff --git a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H index f98d472f92..da278da819 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 inline Tensor2D::Tensor2D() {} -//- Construct given VectorSpace template inline Tensor2D::Tensor2D(const VectorSpace, Cmpt, 4>& vs) : @@ -45,7 +43,6 @@ inline Tensor2D::Tensor2D(const VectorSpace, Cmpt, 4>& vs) {} -//- Construct given SphericalTensor2D template inline Tensor2D::Tensor2D(const SphericalTensor2D& st) { @@ -54,7 +51,6 @@ inline Tensor2D::Tensor2D(const SphericalTensor2D& st) } -//- Construct from components template inline Tensor2D::Tensor2D ( @@ -67,7 +63,6 @@ inline Tensor2D::Tensor2D } -//- Construct from Istream template inline Tensor2D::Tensor2D(Istream& is) : @@ -153,7 +148,6 @@ inline Cmpt& Tensor2D::yy() } -//- Return tensor transpose template inline Tensor2D Tensor2D::T() const { @@ -303,17 +297,27 @@ inline Cmpt det(const Tensor2D& 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 -inline Tensor2D inv(const Tensor2D& t, const Cmpt dett) +inline Tensor2D cof(const Tensor2D& t) { return Tensor2D ( t.yy(), -t.xy(), -t.yx(), t.xx() - )/dett; + ); } + +//- Return the inverse of a tensor given the determinant +template +inline Tensor2D inv(const Tensor2D& t, const Cmpt dett) +{ + return cof(t)/dett; +} + + //- Return the inverse of a tensor template inline Tensor2D inv(const Tensor2D& t)