diff --git a/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C b/src/OpenFOAM/dimensionedTypes/dimensionedSymmTensor/dimensionedSymmTensor.C index 21686f302b8af7858a472c63c2d6df5609f61b92..77b73f00435c600f636d74ca55edf132ae884d16 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 4299c3ff1ae368709b90ed9c285c8089eca5a129..5c03879af864d22461e1e4545ef3898dda3022da 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 319dee9d29a264e058132f87ed80b34dfc45d076..ba4c2d92606bcf32955ed13303d2f6b015d6d8ac 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 cb20601ef6aa8c581dc2bc91a418e34243cec9f3..854c58f953b103365d05f3a2a32896dfecd1d42f 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 60b89638d7091bcb6c87fa7756ad6c33c788d808..b63d227c056620f1064ae13bd96134a068767a7d 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 4c2ff48285575d04dcc036224b155e67440cc2de..9966c01e2f93b637202a12929468bf83f5a72563 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 bdf4edb5fd0fbec3dd8fab6b74449e0b950f0c47..36cb451ca7ab78f6be30169e63fc7ec0723195b1 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 736628e1daf3344eaff4fd7f54c2e01a739a2fd1..628b44547a993dbfa2abed585fb68b1203452f24 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 de6cb8350704cc80673241f28fe42100bbb23ed7..0349bf933f2c0f7577f8f0ddfeb0053909622072 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 0b73d5580508fda7e1a166c2e33922437ef4cc52..bfa043aececf4146015ec6714f07746b2617f4e7 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 793691bf667ec0d595f242912010b57621123ae9..2286b908f7f0ca9314980647ebf7ae27c1fef95a 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 52804804de316c4f0038d5e46d344ae3061bbd3c..7dbb90c59852fafb4c86ef9bcc5f16f43882dcd5 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 9ed36ba9f1bd2c16ca41a4ea0caed1cc4d8bbfe4..c3c8ded87c6292ffb98beeaa9ccb2f6d60726d4a 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 dc0ace7e9f81c2caf188532fd493f74c24ebfaf9..024e2ce683b6f3116e09ff4c96c23e6c652cd873 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 d1bbaff82d74bfe3754c6bae2caec18da083b083..f2394fcc7610a6a12fc1c82258beefaf0ee048cf 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 847745d01a7ef14dbc09f1e12e63512aabd3060f..d916678006dd4a1903d9261cdf21a07fb5fbf9c7 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 331564319844ff1436405a62d02f030dd8a7f4a4..737f59c7a0d68e9c1e627d5ca7fed4c6170bfbb2 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 b2bdfe46c611f355492b9fff119267ae2706d33d..a415b21a14372f4b6e22b93ecbc5997814c08af0 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 eb1663d0654cbaf6b6213429619bd46bcc5010ad..9347d0611953f6b75b5e61a656e041a9d63c05e1 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 eaf3be0d4270b5ab65a06af216afc59d34900008..8de3448272534134417f21e90b217e3917045be8 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 8e041f4158d928a4075a428e3e6e5feee4005c10..fd0f6e37c5791a5333c9fb81a661f94e73cfd50d 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 63d74483e653be5688082dd765054abf28598bb1..99aa6f260f1d5aeeea2ed3dc726feebf9a515f3f 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 f98d472f927f5409e9740d167b30690ffaa38ad1..da278da8198cb4e5b035005976b52d688b204e99 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)