symmTensor: Add support for the innerSqr function
which takes the inner product of a symmTensor with itself and returns a symmTensor
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -57,6 +57,17 @@ dimensionedSymmTensor sqr(const dimensionedVector& dv)
|
||||
}
|
||||
|
||||
|
||||
dimensionedSymmTensor innerSqr(const dimensionedSymmTensor& dt)
|
||||
{
|
||||
return dimensionedSymmTensor
|
||||
(
|
||||
"innerSqr("+dt.name()+')',
|
||||
sqr(dt.dimensions()),
|
||||
innerSqr(dt.value())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
dimensionedScalar tr(const dimensionedSymmTensor& dt)
|
||||
{
|
||||
return dimensionedScalar
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -51,6 +51,7 @@ typedef dimensioned<symmTensor> dimensionedSymmTensor;
|
||||
// global functions
|
||||
|
||||
dimensionedSymmTensor sqr(const dimensionedVector&);
|
||||
dimensionedSymmTensor innerSqr(const dimensionedSymmTensor&);
|
||||
|
||||
dimensionedScalar tr(const dimensionedSymmTensor&);
|
||||
dimensionedSymmTensor symm(const dimensionedSymmTensor&);
|
||||
@ -77,4 +78,3 @@ dimensionedVector operator*(const dimensionedSymmTensor&);
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,7 +36,8 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, transform)
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr, sqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr, transform)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -48,7 +48,8 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, transform)
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr, sqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr, transform)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -39,6 +39,7 @@ namespace Foam
|
||||
// * * * * * * * * * * * * * * * global operators * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -49,6 +49,7 @@ namespace Foam
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -37,6 +37,7 @@ namespace Foam
|
||||
// * * * * * * * * * * * * * * * global functions * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -54,6 +54,7 @@ typedef Field<symmTensor> symmTensorField;
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -37,6 +37,7 @@ namespace Foam
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr, sqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr, transform)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -48,7 +48,8 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, transform)
|
||||
UNARY_FUNCTION(symmTensor, vector, sqr, sqr)
|
||||
UNARY_FUNCTION(symmTensor, symmTensor, innerSqr, sqr)
|
||||
|
||||
UNARY_FUNCTION(scalar, symmTensor, tr, transform)
|
||||
UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -248,6 +248,25 @@ operator&(const Vector<Cmpt>& v, const SymmTensor<Cmpt>& st)
|
||||
}
|
||||
|
||||
|
||||
//- Inner-sqr of a symmetric tensor
|
||||
template<class Cmpt>
|
||||
inline SymmTensor<Cmpt>
|
||||
innerSqr(const SymmTensor<Cmpt>& st)
|
||||
{
|
||||
return SymmTensor<Cmpt>
|
||||
(
|
||||
st.xx()*st.xx() + st.xy()*st.xy() + st.xz()*st.xz(),
|
||||
st.xx()*st.xy() + st.xy()*st.yy() + st.xz()*st.yz(),
|
||||
st.xx()*st.xz() + st.xy()*st.yz() + st.xz()*st.zz(),
|
||||
|
||||
st.xy()*st.xy() + st.yy()*st.yy() + st.yz()*st.yz(),
|
||||
st.xy()*st.xz() + st.yy()*st.yz() + st.yz()*st.zz(),
|
||||
|
||||
st.xz()*st.xz() + st.yz()*st.yz() + st.zz()*st.zz()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Cmpt magSqr(const SymmTensor<Cmpt>& st)
|
||||
{
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -189,6 +189,20 @@ operator&(const Vector2D<Cmpt>& v, const SymmTensor2D<Cmpt>& st)
|
||||
}
|
||||
|
||||
|
||||
//- Inner-sqr of a symmetric tensor
|
||||
template<class Cmpt>
|
||||
inline SymmTensor2D<Cmpt>
|
||||
innerSqr(const SymmTensor2D<Cmpt>& st)
|
||||
{
|
||||
return SymmTensor2D<Cmpt>
|
||||
(
|
||||
st.xx()*st.xx() + st.xy()*st.xy(),
|
||||
st.xx()*st.xy() + st.xy()*st.yy(),
|
||||
st.xy()*st.xy() + st.yy()*st.yy()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
template<class Cmpt>
|
||||
inline Cmpt magSqr(const SymmTensor2D<Cmpt>& st)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user