mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
symmTensor: Corrected symmTensor & symmTensor dot-product
This commit is contained in:
@ -50,10 +50,14 @@ int main()
|
|||||||
<< (t1 & t7 & t1.T()) << " " << transform(t1, t7) << endl;
|
<< (t1 & t7 & t1.T()) << " " << transform(t1, t7) << endl;
|
||||||
|
|
||||||
symmTensor st1(1, 2, 3, 4, 5, 6);
|
symmTensor st1(1, 2, 3, 4, 5, 6);
|
||||||
|
symmTensor st2(7, 8, 9, 10, 11, 12);
|
||||||
|
|
||||||
Info<< "Check symmetric transformation "
|
Info<< "Check symmetric transformation "
|
||||||
<< transform(t1, st1) << endl;
|
<< transform(t1, st1) << endl;
|
||||||
|
|
||||||
|
Info<< "Check for dot product of symmetric tensors "
|
||||||
|
<< (st1 & st2) << endl;
|
||||||
|
|
||||||
vector v1(1, 2, 3);
|
vector v1(1, 2, 3);
|
||||||
|
|
||||||
Info<< sqr(v1) << endl;
|
Info<< sqr(v1) << endl;
|
||||||
|
|||||||
@ -55,6 +55,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -164,6 +164,9 @@ tmp<Field<symmTensor> > transformFieldMask<symmTensor>
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ SourceFiles
|
|||||||
#include "vectorField.H"
|
#include "vectorField.H"
|
||||||
#include "sphericalTensor.H"
|
#include "sphericalTensor.H"
|
||||||
#include "symmTensor.H"
|
#include "symmTensor.H"
|
||||||
|
#include "tensor.H"
|
||||||
|
|
||||||
#define TEMPLATE
|
#define TEMPLATE
|
||||||
#include "FieldFunctionsM.H"
|
#include "FieldFunctionsM.H"
|
||||||
@ -69,6 +70,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,9 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,10 @@ UNARY_FUNCTION(symmTensor, symmTensor, inv, inv)
|
|||||||
|
|
||||||
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
UNARY_OPERATOR(vector, symmTensor, *, hdual, transform)
|
||||||
|
|
||||||
|
BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, '&', dot)
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|||||||
@ -24,6 +24,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "Vector.H"
|
#include "Vector.H"
|
||||||
|
#include "Tensor.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -184,18 +185,21 @@ inline Vector<Cmpt> operator*(const SymmTensor<Cmpt>& st)
|
|||||||
|
|
||||||
//- Inner-product between two symmetric tensors
|
//- Inner-product between two symmetric tensors
|
||||||
template <class Cmpt>
|
template <class Cmpt>
|
||||||
inline SymmTensor<Cmpt>
|
inline Tensor<Cmpt>
|
||||||
operator&(const SymmTensor<Cmpt>& st1, const SymmTensor<Cmpt>& st2)
|
operator&(const SymmTensor<Cmpt>& st1, const SymmTensor<Cmpt>& st2)
|
||||||
{
|
{
|
||||||
return SymmTensor<Cmpt>
|
return Tensor<Cmpt>
|
||||||
(
|
(
|
||||||
st1.xx()*st2.xx() + st1.xy()*st2.xy() + st1.xz()*st2.xz(),
|
st1.xx()*st2.xx() + st1.xy()*st2.xy() + st1.xz()*st2.xz(),
|
||||||
st1.xx()*st2.xy() + st1.xy()*st2.yy() + st1.xz()*st2.yz(),
|
st1.xx()*st2.xy() + st1.xy()*st2.yy() + st1.xz()*st2.yz(),
|
||||||
st1.xx()*st2.xz() + st1.xy()*st2.yz() + st1.xz()*st2.zz(),
|
st1.xx()*st2.xz() + st1.xy()*st2.yz() + st1.xz()*st2.zz(),
|
||||||
|
|
||||||
|
st1.xy()*st2.xx() + st1.yy()*st2.xy() + st1.yz()*st2.xz(),
|
||||||
st1.xy()*st2.xy() + st1.yy()*st2.yy() + st1.yz()*st2.yz(),
|
st1.xy()*st2.xy() + st1.yy()*st2.yy() + st1.yz()*st2.yz(),
|
||||||
st1.xy()*st2.xz() + st1.yy()*st2.yz() + st1.yz()*st2.zz(),
|
st1.xy()*st2.xz() + st1.yy()*st2.yz() + st1.yz()*st2.zz(),
|
||||||
|
|
||||||
|
st1.xz()*st2.xx() + st1.yz()*st2.xy() + st1.zz()*st2.xz(),
|
||||||
|
st1.xz()*st2.xy() + st1.yz()*st2.yy() + st1.zz()*st2.yz(),
|
||||||
st1.xz()*st2.xz() + st1.yz()*st2.yz() + st1.zz()*st2.zz()
|
st1.xz()*st2.xz() + st1.yz()*st2.yz() + st1.zz()*st2.zz()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,13 +40,15 @@ SourceFiles
|
|||||||
|
|
||||||
#include "Vector.H"
|
#include "Vector.H"
|
||||||
#include "SphericalTensor.H"
|
#include "SphericalTensor.H"
|
||||||
#include "SymmTensor.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
template<class Cmpt>
|
||||||
|
class SymmTensor;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class Tensor Declaration
|
Class Tensor Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -23,6 +23,8 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "SymmTensor.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
|
|||||||
Reference in New Issue
Block a user