Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    关于张量的知识,一个二阶张量的模是怎么求的?

    OpenFOAM
    3
    6
    3739
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Aeronastro last edited by

      请问一个问题,张量的双重內积我有个不解的地方。
      OF中一个二阶张量的模|T|=mag(T)=sqrt(T:T),就是张量中的相应位置的元素相乘再相加。
      而我看到书上说|T| = sqrt(2TijTij),这里多了一个2,这是为什么呢?

      谢谢大家的指点,我哪里理解错了么?

      1 Reply Last reply Reply Quote
      • C
        CFD中文网 last edited by

        那本书?如果从定义来看,就是|T|=sqrt(T:T)=sqrt(TijTij)。

        CFD中国标准用户测试帐号
        目前由徐笑笑登录

        A 1 Reply Last reply Reply Quote
        • A
          Aeronastro @CFD中文网 last edited by

          @cfd-china 在An Introduction to Computational Fluid Dynamics-The Finite Volume Method的103页,有这样的话, S是对称张量,where |S|= sqrt(2SijSij)。

          还有一个问题,OF中sqr(mag)和magSqr()一样吗?我看到了OF代码中写过sqr(mag),难道这两种写法有区别?

          C 1 Reply Last reply Reply Quote
          • C
            CFD中文网 @Aeronastro last edited by

            @Aeronastro
            我不觉得是对称张量的问题,问题在于书上把S表达为了0.5(...)的形式。

            我觉得是一样的。magSqr()更常见。A simple test:

            #include "tensor.H"
            
            using namespace Foam;
            
            int main()
            {
                tensor T(1000,2000,3000,4000,5000,6000,7000,8000,9000);
                vector V(1e5,2e5,3e5);
                
                Info<< magSqr(T) - sqr(mag(T))<< endl;
                Info<< magSqr(V) - sqr(mag(V))<< endl;
            
                return 0;
            }
            

            然而,不然。magSqr(T)和sqr(mag(T))相差一可忽略的一点。所以可以认为相同吧。源代码:

            complex/complexI.H-164-// * * * * * * * * * * * * * * * Friend Functions  * * * * * * * * * * * * * //
            complex/complexI.H-165-
            complex/complexI.H-166-
            complex/complexI.H:167:inline scalar magSqr(const complex& c)
            complex/complexI.H-168-{
            complex/complexI.H-169-    return (c.re*c.re + c.im*c.im);
            complex/complexI.H-170-}
            complex/complexI.H-171-
            complex/complexI.H-172-
            --
            complex/complexI.H-176-}
            complex/complexI.H-177-
            complex/complexI.H-178-
            complex/complexI.H-179-inline scalar mag(const complex& c)
            complex/complexI.H-180-{
            complex/complexI.H:181:    return sqrt(magSqr(c));
            complex/complexI.H-182-}
            complex/complexI.H-183-
            
            complex/complexI.H:173:inline complex sqr(const complex& c)
            complex/complexI.H-174-{
            complex/complexI.H-175-    return c * c;
            complex/complexI.H-176-}
            complex/complexI.H-177-
            complex/complexI.H-178-
            
            

            CFD中国标准用户测试帐号
            目前由徐笑笑登录

            A 1 Reply Last reply Reply Quote
            • A
              Aeronastro @CFD中文网 last edited by

              @cfd-china 好的,谢谢!

              浪 1 Reply Last reply Reply Quote
              • 浪
                浪迹天大 @Aeronastro last edited by

                @Aeronastro 我觉得是这样的:
                where |S|= sqrt(2SijSij),这句话可能来自LES,这只是一个定义,它不是正常意义上的magnitude.
                正常的magnitude就是|S|= sqrt(SijSij)

                OpenFOAM 学习交流:https://openfoam.top

                1 Reply Last reply Reply Quote
                • First post
                  Last post

                CFD中文网 | 东岳流体 | 京ICP备15017992号-2
                论坛登录问题反馈可联系 li.dy@dyfluid.com