OpenFOAM 张量运算
作者:互联网
1. 霍奇对偶算子,Hodge Dual operator (tensor -> vector)
符号:*(单目运算符)
使用:*t
返回:矢量
[
t.yz(), -t.xz(), t.xy()
]
2. 霍奇对偶算子,Hodge Dual operator (vector -> tensor)
符号:*(单目运算符)
使用:*v
返回:张量
[
0, -v.z(), v.y(),
v.z(), 0, -v.x(),
-v.y(), v.x(), 0
]
3. 张量间内积,Inner-product between two tensors
符号:&(双目运算符)
使用:t1&t2
返回:张量
[
t1.xx()*t2.xx() + t1.xy()*t2.yx() + t1.xz()*t2.zx(),
t1.xx()*t2.xy() + t1.xy()*t2.yy() + t1.xz()*t2.zy(),
t1.xx()*t2.xz() + t1.xy()*t2.yz() + t1.xz()*t2.zz(),
t1.yx()*t2.xx() + t1.yy()*t2.yx() + t1.yz()*t2.zx(),
t1.yx()*t2.xy() + t1.yy()*t2.yy() + t1.yz()*t2.zy(),
t1.yx()*t2.xz() + t1.yy()*t2.yz() + t1.yz()*t2.zz(),
t1.zx()*t2.xx() + t1.zy()*t2.yx() + t1.zz()*t2.zx(),
t1.zx()*t2.xy() + t1.zy()*t2.yy() + t1.zz()*t2.zy(),
t1.zx()*t2.xz() + t1.zy()*t2.yz() + t1.zz()*t2.zz()
]
4. 张量与矢量内积,Inner-product between a tensor and a vector
符号:&(双目运算符)
使用:t&v
返回:矢量
[
t.xx()*v.x() + t.xy()*v.y() + t.xz()*v.z(),
t.yx()*v.x() + t.yy()*v.y() + t.yz()*v.z(),
t.zx()*v.x() + t.zy()*v.y() + t.zz()*v.z()
]
5. 矢量与张量内积,Inner-product between a vector and a tensor
符号:&(双目运算符)
使用:v&t
返回:矢量
[
v.x()*t.xx() + v.y()*t.yx() + v.z()*t.zx(),
v.x()*t.xy() + v.y()*t.yy() + v.z()*t.zy(),
v.x()*t.xz() + v.y()*t.yz() + v.z()*t.zz()
]
6. 矢量间外积,Outer-product between two vectors
符号:*(双目运算符)
使用:v1*v2
返回:张量
[
v1.x()*v2.x(), v1.x()*v2.y(), v1.x()*v2.z(),
v1.y()*v2.x(), v1.y()*v2.y(), v1.y()*v2.z(),
v1.z()*v2.x(), v1.z()*v2.y(), v1.z()*v2.z()
]
7. 矢量除以张量,Division of a vector by a tensor, i.e. dot-product with the tensor inverse
符号:/(双目运算符)
使用:v/t
返回:矢量
[
inv(t) & v
]
8. 张量的迹,the trace of a tensor
符号:tr
使用:tr(t)
返回:标量
[
t.xx() + t.yy() + t.zz()
]
9. 张量的球部分,spherical part of a tensor
符号:sph
使用:sph(t)
返回:标量
[
(1.0/3.0)*tr(t)
]
10. 张量的对称部分,symmetric part of a tensor
符号:symm
使用:symm(t)
返回:对称张量
[
t.xx(), 0.5*(t.xy() + t.yx()), 0.5*(t.xz() + t.zx()),
t.yy(), 0.5*(t.yz() + t.zy()),
t.zz()
]
11. 张量对称部分的两倍,twice the symmetric part of a tensor
符号:twoSymm
使用:symm(t)
返回:对称张量
[
2*t.xx(), (t.xy() + t.yx()), (t.xz() + t.zx()),
2*t.yy(), (t.yz() + t.zy()),
2*t.zz()
]
12. 张量的反对称部分,the anti-symmetric part of a tensor
符号:skew
使用:skew(t)
返回:张量
[
0.0, 0.5*(t.xy() - t.yx()), 0.5*(t.xz() - t.zx()),
0.5*(t.yx() - t.xy()), 0.0, 0.5*(t.yz() - t.zy()),
0.5*(t.zx() - t.xz()), 0.5*(t.zy() - t.yz()), 0.0
]
13. 对称张量的偏斜-对称部分,the skew-symmetric part of a tensor
符号:skew
使用:skew(st)
返回:零张量
[
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
]
14. 张量的偏斜部分,deviatoric part of a tensor
符号:dev
使用:dev(t)
返回:张量
[
t-1/3*tr(t)
]
15. 张量的行列式,deviatoric part of a tensor
符号:det
使用:det(t)
返回:标量
[
t.xx()*t.yy()*t.zz() + t.xy()*t.yz()*t.zx()
+ t.xz()*t.yx()*t.zy() - t.xx()*t.yz()*t.zy()
- t.xy()*t.yx()*t.zz() - t.xz()*t.yy()*t.zx()
]
16. 张量的余子式,cofactor tensor of a tensor
符号:cof
使用:cof(t)
返回:张量
[
t.yy()*t.zz() - t.zy()*t.yz(),
t.zx()*t.yz() - t.yx()*t.zz(),
t.yx()*t.zy() - t.yy()*t.zx(),
t.xz()*t.zy() - t.xy()*t.zz(),
t.xx()*t.zz() - t.xz()*t.zx(),
t.xy()*t.zx() - t.xx()*t.zy(),
t.xy()*t.yz() - t.xz()*t.yy(),
t.yx()*t.xz() - t.xx()*t.yz(),
t.xx()*t.yy() - t.yx()*t.xy()
]
17. 给定行列式时求张量的逆,inverse of a tensor give the determinant
符号:inv
使用:inv(t,dett)
返回:张量
[
t.yy()*t.zz() - t.zy()*t.yz(),
t.xz()*t.zy() - t.xy()*t.zz(),
t.xy()*t.yz() - t.xz()*t.yy(),
t.zx()*t.yz() - t.yx()*t.zz(),
t.xx()*t.zz() - t.xz()*t.zx(),
t.yx()*t.xz() - t.xx()*t.yz(),
t.yx()*t.zy() - t.yy()*t.zx(),
t.xy()*t.zx() - t.xx()*t.zy(),
t.xx()*t.yy() - t.yx()*t.xy()
] /dett
18.张量的一阶不变量,1st invariant of a tensor
符号:invariantI
使用:invariantI(t)
返回:标量
[
tr(t)
]
19.张量的二阶不变量,2nd invariant of a tensor
符号:invariantII
使用:invariantII(t)
返回:标量
[
0.5*sqr(tr(t))
- 0.5*
(
t.xx()*t.xx() + t.xy()*t.xy() + t.xz()*t.xz()
+ t.yx()*t.yx() + t.yy()*t.yy() + t.yz()*t.yz()
+ t.zx()*t.zx() + t.zy()*t.zy() + t.zz()*t.zz()
)
]
18.张量的三阶不变量,3rd invariant of a tensor
符号:invariantIII
使用:invariantIII(t)
返回:标量
[
det(t)
]
参考:
OpenFOAM-XX/src/OpenFOAM/primitives/Tensor/TensorI.H
标签:运算,t2,张量,t1,xz,yx,yz,xy,OpenFOAM 来源: https://blog.csdn.net/weixin_36942960/article/details/120152638