关于LES中,求亚格子尺度应力SGS stress的问题



    1. 最近被问到求LES模拟中的SGS stress,对LES不太了解,所以想问问各位大神,这个SGS stress是一个在openfoam里面可以直接求得的场么?在CFDonline论坛里看见说文件B正是这个SGS stress,但是如果我没有输出B文件,想通过速度场求SGS stress,可行嘛?是简单地通过以下速度分量可以算得的嘛?9767b2e7-9333-44dc-8d65-7d72f88e1057-image.png

    2. 还想请问一下,一般说的三维模型中的SGS stress是指的九个张量的某一个么?在网上经常看到有的时候说SGS stress,而有的时候又说SGS stress tensor,有点混淆分不清楚。。



  • \verbatim
            B = 2/3*k*I - 2*nuSgs*dev(D)
    
        where
    
            D = symm(grad(U));
            k from D:B + Ce*k^3/2/delta = 0
            nuSgs = Ck*sqrt(k)*delta
        \endverbatim
    

    是的,可以,你可以把这个B通过后处理的方式计算一下

    tensor一般省略掉了



  • @东岳 谢谢东岳老师回答,可惜我研究了一下午都没弄明白:zoule: 。还有几个问题想问问:

    1. 请问这公式里的 I 指的是turbulence intensity吗?

    2. 这个求得的B,应该是有9个元素的矢量吧,为什么等式左边的第一项 2/3kI 会是个标量?

    3. 这里的 k 和 nuSgs 是不是直接用我 LES 时间步中输出的 k 和 nut 场带入计算就可以?



  • I是单位张量,就那个对角线是1的张量。这样吧,你大体可以这样写代码

    volTensorField unitI
    (
        IOobject
        (
             "",
             runTime.timeName(),
             mesh,
             IOobject::NO_READ,
             IOobject::NO_WRITE
        ),
        mesh,
        I
    );
    
    volTensorField D("", symm(fvc::grad(U)));
    const volScalarField& nuSgs = mesh.lookupObject<volScalarField>("nuSgs");
    const volScalarField& k = mesh.lookupObject<volScalarField>("k");
    
    volTensorField B("", 2.0/3.0*k*unitI - 2.0*nuSgs*dev(D));
    
    B.write();
    
    

    我没测试,但上面这个代码更好理解。k和nuSGS在LES里面已经计算了



  • 现在明白了,谢谢东岳老师讲解


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2