ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenFOAM 张量运算

2021-09-07 11:33:52  阅读:340  来源: 互联网

标签:运算 t2 张量 t1 xz yx yz xy 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有