• 最新
  • 版块
  • 热门
  • 东岳流体
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

初学CFD最容易犯的错 公众号 2023年11月23日
CFD领域俄美友谊长存 公众号 2023年11月23日
这是CFD加特林 网站 2023年11月9日

Smagorinsky模型系数问题

已定时 已固定 已锁定 已移动 OpenFOAM
42 帖子 4 发布者 923 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    coolhhh 神
    写于 最后由 李东岳 编辑
    #1

    @李东岳 李老师,看of2206中planeChannel算例的设置,LES采用Smagorinsky,提到设置Ce=1.048,Ck=0.0265463553,能够Updated to give Cs = 0.065。这里的Cs不太清楚对应哪个参数,但看官网上的符号说明,应该就是对应代码符号应该为Cdelta_。查看vanDriestDelta.C,Cdelta_为读取的参数,但of的算例数值为Cdelta=0.158。
    问题:
    (1)Cs与参数Ce和Ck的关系式是什么?
    (2)Cdelta为读取的参数,如果要更新为0.065,那么是否要手动修改为Cdelta 0.065;而不是自动更新的?


    of2206算例设置:/OpenFOAM-v2206/tutorials/incompressible/pimpleFoam/LES/planeChannel

    LES
    {
        LESModel        Smagorinsky;
        SmagorinskyCoeffs
        {
            Ce              1.048;
            Ck              0.0265463553; // Updated to give Cs = 0.065
        }
    
        delta           vanDriest;
        vanDriestCoeffs
        {
            delta           cubeRootVol;
            cubeRootVolCoeffs
            {
                deltaCoeff      1;
            }
            Aplus           26;
            Cdelta          0.158;
        }
    
        printCoeffs     on;
        turbulence      on;
    }
    


    OpenFOAM: User Guide: Van Driest
    0c47af85-c196-48b7-bcc9-690e2e9c1bec-image.png


    vanDriestDelta.C

        Cdelta_
        (
            dict.optionalSubDict(type() + "Coeffs").getOrDefault<scalar>
            (
                "Cdelta",
                0.158
            )
        )
    
    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #2

    我没太关注esi那面的版本,我看了下openfoam10,好像区别还挺大:

    捕获.JPG

    Description
        The Smagorinsky SGS model.
    
        Reference:
        \verbatim
            Smagorinsky, J. (1963).
            General circulation experiments with the primitive equations: I.
            The basic experiment*.
            Monthly weather review, 91(3), 99-164.
        \endverbatim
    
        The form of the Smagorinsky model implemented is obtained from the
        k-equation model assuming local equilibrium which provides estimates of both
        k and epsilon separate from the sub-grid scale viscosity:
    
        \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
    
        The default model coefficients are
        \verbatim
            SmagorinskyCoeffs
            {
                Ck                  0.094;
                Ce                  1.048;
            }
        \endverbatim
    

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #3

    @李东岳 李老师,ESI版本和org版本的Smagorinsky和vanDriest基本是一样的。看了一些帖子,我把问题再总结一下:

    1. 根据《Moin, P. and J. Kim, Numerical investigation of turbulent channel flow. Journal of fluid mechanics, 1982. 118: p. 341-377.》,建议取Cs=0.065,而of中默认参数得到的不是这个值,需要调整Ck和Ce。
      3c792b56-7982-4f05-bca9-eea59840847f-image.png

    2. Ck,Ce与Cs的理论关系,可见《Sullivan, P.P., J.C. McWilliams and C. Moeng, A subgrid-scale model for large-eddy simulation of planetary boundary-layer flows. Boundary-Layer Meteorology, 1994. 71: p. 247-276.》。
      c3d6960e-4665-4f08-b060-a82916acec8b-image.png

    3. 根据下面两个帖子结论(帖子中是老版本的of代码),of中Ck,Ce与Cs的关系与上面截图的理论公式一致。那么将of2206中的planeChannel算例设置用的Ce=1.048,Ck=0.0265463553代入,可得到Cs=0.065。

    Smagorinsky model details -- CFD Online Discussion Forums ,
    [转载]有关OpenFoam中LES smagorinsky模型的推导_馨予_新浪博客

    1. 根据projectReport.pdf ,of中植入vanDriest是将指数函数乘以过滤宽度实现,下面截图的公式感觉有点错误,应该改为:$\Delta = min \left [ \Delta_{mesh},(\frac{\kappa }{C_\Delta})(1-e^{-y^+/A^+})y \right ] $,这就与代码和官网上的写法一致。
      054bef10-6f0e-430f-b3ee-5f0d0dce3f31-image.png
    2. 问题:of的这种引入系数$\kappa, C_\Delta$的植入方式,目前还没找到相关出处,不知道为何要这么取值?同时官网上把$C_\Delta$写成符号$C_s$,所以在想$C_\Delta$是否与$C_s$是相同取值的?也就是说,设置用的Ce=1.048,Ck=0.0265463553,可得到Cs=0.065,那么$C_\Delta$是否要设置为0.065?
    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #4

    https://mp.weixin.qq.com/s?__biz=MzA4OTYxNzE4NQ==&mid=2649423373&idx=1&sn=5256db61b40f99c94f1385394f249195&chksm=88067843bf71f155cd69bd332b4c844337de3bb1ffa73adff9299e18e83e43bbe9695e5ba581&token=169745134&lang=zh_CN#rd

    我知道你什么意思了,老铁总结的太全面了,可以学习一阵子。
    针对你的问题,应该就是我公众号发的那个。我也不清楚为什么OpenFOAM这么植入。有人说这样植入湍流产生与耗散会均衡。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #5

    感谢李老师分享,由于直接打开链接看不到评论区大佬的评论,我复制下大佬的观点:
    1.
    8bd63411-e04c-4c9e-9087-411bedd6e93b-image.png
    77ec85cd-d7e3-4145-8c80-d73bd6d93410-image.png

    Straka Liu大佬推荐了一个非常有用的网站:Smagorinsky SGS model in OpenFOAM | CFD WITH A MISSION ,根据网站的推导,这两种方法是等效的,得到的$C_s$与Sullivan的论文公式是一致的:
    f6be1538-3743-4b11-a228-720f90dfb14a-image.png

    1. 另外,Smagorinsky的开山之作《J. Smagorinsky, General circulation experiments with the primitive equations: I. The basic experiment*. Monthly weather review, 91(3), 99-164, 1963.》,大家现在能下载得到吗,我打开下载网站现在是AMS Journals is unavailable
    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #6

    https://www.jianguoyun.com/p/DavTpDMQ9s3ZBhj5saAFIAA

    那是说明两种方法植入都可以?那我感觉原始方法更好植入呢: $\nu_t=f(C_k,\Delta,\mathbf{D})$。一个公式就出来了。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #7
    1. 李老师,看评论区并根据Sullivan论文,第一种方法应修改为:$\nu _t =\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} } $。评论区大佬说的是of中默认值Ck=0.094, Ce=1.048,可以计算得到默认值Cs=0.167,这个数值是根据各向同性湍流的得到的。

    最简单的LES到底怎么算
    0f223df6-b6e5-4c88-8a9e-828ae001947b-image.png
    16a4ba48-e51e-49f1-b656-b02c48786585-image.png
    f1d591f0-bfe6-4cc5-988b-45203eefa093-image.png

    1. 我对湍流模型不太懂,但想到一个猜测观点:
      (1) 如果用第一种方法指定$C_s$,根据$C_s=\left ( C_k \sqrt{\frac{C_k}{C_e} } \right ) ^{1/2}$,理论上反推的$C_k$和$C_e$就无法唯一确定,也就是说,一个$C_s$值是可以对应很多对$C_k$和$C_e$,比如采用Cs=0.065,那么可以取Ck=0.026546355, Ce=1.048或者Ck=0.04, Ce=3.585308638等很多组合。但可能第一种方法推导采用了ksgs的生成与耗散平衡假设,因此实际反算的$C_k$和$C_e$是与这种假设唯一相对应的。
      (2) 如果用第二种方法,通过指定Ck=0.026546355, Ce=1.048,就可以唯一确定Cs=0.065。也就是说,可以动态指定$C_k$和$C_e$的取值对计算结果的作用程度,并且自然满足所预期的$C_s$。

    2. 结合下面这位大佬的评论,猜测第一种方法就默认ksgs的生成与耗散平衡,而第二种方法可以动态指定$C_k$和$C_e$,来反映ksgs的生成与耗散的非平衡关系?也就是第二种方法比第一种方法适用范围更广,当$C_k$和$C_e$能够取平衡状态的值,那么两种方法就是等价的?

    最简单的LES到底怎么算
    b5162263-7adc-4a23-b52e-fd7ee90c166b-image.png

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to coolhhh on 最后由 编辑
    #8

    1. 采用第二种方法:

    (1)根据Smagorinsky SGS model in OpenFOAM | CFD WITH A MISSION的推导,基于式(5)的Local equilibrium假设,对于 incompressible flows,才能得到式(8)关系,进而得到式(10)和(11)。然后将式(11)与文献中的公式(12)对比,得到式(13)关于$C_e, C_k, C_s$三个系数的关系式。
    453f17bc-70c8-48b1-82bc-fc0caf124f87-image.png
    e4715256-48e5-4a9b-a9eb-08707fbe7940-image.png
    c9d3f23a-75d9-46ba-ad77-052811ce1d78-image.png
    155f8bcc-c124-431e-8ac2-1ad02368bc7d-image.png

    (2)现在分析式(10)和(11)。

    • 首先这两个公式是基于Local equilibrium假设得到的,将式(10)和(11)代入式(5),得到的结果自然满足Local equilibrium假设。

    • 接着看式(11),我们可以通过设置合适的$C_e$和$C_k$,来实现等价的$C_s$。但是,式(10)中$k_{sgs}$的值与$C_k/C_e$这个比值相关联的。换句话说,计算设置满足了等价的$C_s=0.065$,但$C_k, C_e$可以有多种不同组合,这将导致$k_{sgs}$计算结果可能差别很大。根据式(13),可以得到:$C_k = \left ( C_eC_s^4 \right ) ^{1/3}$,以固定取$C_s=0.065$为例,画图如下。可以看出$C_e$取值越小,$C_k/C_e$比值变化越剧烈。表明了虽然结果都是满足Local equilibrium假设以及实现了$C_s=0.065$,$C_e$和$C_k$仍然要取合适的组合,才能得到合理的$k_{sgs}$
      Ck_Ce.png
      Ck:Ce.png

    2. 采用第一种方法:

    个人疑问是植入:$ \nu _{sgs} =\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} } $ ,

    那么式 (1d) 中的$k_{sgs}$是怎么计算的?这会不会就是两个方法的主要差别?

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #9

    k_sgs是怎么计算的?这会不会就是两个方法的主要差别?

    如果采用$\nu_{sgs} =\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} } $ 计算,从湍流模型封闭角度来看,就不需要$k_{sgs}$了。这样没问题。不过确实,用第一种方法$k_{sgs}$怎么算?

    另外我觉得你说得对,第二种方法,显示的定义了均衡,第一种方法可能会导致不均衡。

    不过公众号留言那位大佬,woaring wings,说第一种用的比较广泛,是不是说错了?

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    写于 最后由 编辑
    #10

    还有of的这种植入方式,只有对于incompressible flows,b系数为0,c系数化简,才能得到$ \nu_{sgs} = C_k \sqrt{\frac{C_k}{C_e} } \Delta^2 \left | \overline{D} \right | $和$C_s=\left ( C_k \sqrt{\frac{C_k}{C_e} } \right ) ^{1/2}$。of采用这种方式可能还考虑了适用于compressible flows情况?

    李东岳李 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    replied to coolhhh on 最后由 编辑
    #11

    @coolhhh thats a good questions.

    不过目前我就没见过详细讨论OpenFOAM植入smagorinsky的方法,更别提可压缩适配了。大佬可以搜搜sci,你这整的挺细啊,这些讨论可以做sci的appendix了

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #12

    https://github.com/Unofficial-Extend-Project-Mirror/openfoam-extend-foam-extend-3.1/blob/master/src/turbulenceModels/incompressible/LES/dynSmagorinsky/dynSmagorinsky.C

    我最近看到一个老版本的动态模型植入。植入的不是$\nu_{sgs} =\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} } $,而是$\nu_{sgs} =\left ( C_s \Delta\right )^2 \sqrt{ \mathbf{D} :\mathbf{D} } $,大佬怎么看

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #13

    @李东岳 李老师, 这两个链接在讨论of中的Smagorinsky模型时,也类似讨论of中为何植入的是$\sqrt{ \mathbf{D} :\mathbf{D} } $,相比理论公式看似缺少$\sqrt{ 2} $系数。但其实是一致的,这是因为of中把$\sqrt{ 2} $加到了前面的系数中。下面截图中的理论公式符号代表:$\left | \bar{S} \right | = \sqrt{2 \mathbf{D} :\mathbf{D} } $,但OF公式代表:$\left | \bar{S}_{of} \right | = \sqrt{ \mathbf{D} :\mathbf{D} } $,在CFD-online上的帖子因为把符号写成一样导致了混淆。
    Smagorinsky model details -- CFD Online Discussion Forums
    [转载]有关OpenFoam中LES smagorinsky模型的推导_馨予_新浪博客
    3594f8a6-f5c0-4ef3-bc95-06da6614467b-image.png


    湍流模型我不太懂,在想dynSmagorinsky是否类似于CFD-online的讨论,是否也是把系数$\sqrt{ 2} $加到了前面的系数中?也就是cD(D)可能比dynSmagorinsky理论公式多了$\sqrt{ 2} $系数?

    void dynSmagorinsky::updateSubGridScaleFields(const volSymmTensorField& D)
    {
        nuSgs_ = cD(D)*sqr(delta())*sqrt(magSqr(D));
        nuSgs_.correctBoundaryConditions();
    }
    
    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #14

    替代文字

    是不是这个公式里面,也应该有一个$\sqrt{2}$? 然后就可以了?

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #15

    @李东岳 这个公式结论是对的,不用加$\sqrt{2}$。CFD-online讨论帖子初始问题混淆点是把OF计算的$\sqrt{ \mathbf{D} :\mathbf{D} } $当做$\left | \bar{S} \right | $,而理论公式的$\left | \bar{S} \right | $表示的是$\sqrt{2 \mathbf{D} :\mathbf{D} } $。OF是单独计算了$\sqrt{ \mathbf{D} :\mathbf{D} } $,为与理论对应,$\sqrt{2}$在前面的系数里计算再相乘。

    Smagorinsky SGS model in OpenFOAM | CFD WITH A MISSION这个帖子推导就没有混淆符号,统一用$\sqrt{2 \mathbf{D} :\mathbf{D} } $表示$\left | \bar{S} \right | $
    18170081-652a-47e8-b957-108d8db3c49b-image.png

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #16

    你的意思就是,OpenFOAM里面植入的应该是$\nu_{sgs} = (C_s^{of})^2 \Delta^2 \sqrt{ \mathbf{D} :\mathbf{D} } $,其中$(C_s^{of})^2=C_s^2\sqrt{2}$

    而不是$\nu_{sgs} = C_s^2 \Delta^2 \sqrt{ \mathbf{D} :\mathbf{D} } $

    是这样么

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 李东岳李 2 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #17

    对,因为湍流模型不太懂,我猜测dynSmagorinsky差个$\sqrt 2$可能是这个原因。Smagorinsky模型不是直接植入这个公式,是通过把系数代入$\nu_{sgs}=C_k\Delta \sqrt{k_{sgs}}$后得到等价的$\nu_{sgs}=C_k \sqrt{\frac{2C_k}{C_e} } \Delta ^2 \sqrt{\mathbf{D} :\mathbf{D} }
    =C_k \sqrt{\frac{C_k}{C_e} } \Delta ^2 \sqrt{2\mathbf{D} :\mathbf{D} }=\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} } $

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #18

    那我知道了,我感觉那个应该是个bug。毕竟这个代码已经过时了。我跟作者确认一下。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #19

    LES那面为啥所有文章非要定义$|\bfS|=\sqrt{2\bfS:\bfS}$呢,正常张量这玩意就应该是$|\bfS|=\sqrt{\bfS:\bfS}$。不知道最开始那个大佬咋想的。

    被这玩意彻底搞蒙了

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • D 离线
    D 离线
    dxl
    写于 最后由 编辑
    #20

    是不是这个
    1699438916664.png

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #21

    @dxl 没太看明白 老铁

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    replied to 李东岳 on 最后由 编辑
    #22

    @李东岳 在 Smagorinsky模型系数问题 中说:

    你的意思就是,OpenFOAM里面植入的应该是$\nu_{sgs} = (C_s^{of})^2 \Delta^2 \sqrt{ \mathbf{D} :\mathbf{D} } $,其中$(C_s^{of})^2=C_s^2\sqrt{2}$

    而不是$\nu_{sgs} = C_s^2 \Delta^2 \sqrt{ \mathbf{D} :\mathbf{D} } $

    是这样么

    https://bugs.openfoam.org/view.php?id=816

    这个确实是个bug,不过OpenFOAM新版已经把动态Smagorinsky删掉了,所以无关紧要了。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #23

    我按照$\nu_t=(C_s\Delta)^2\sqrt{2\bfS:\bfS}$的方式植入进入了。从云图来看没啥区别。希望有大佬来详细验证一下是否均衡。下面这个文件,可以在OpenFOAM-10下进行编译,步骤:

    wmake
    cd pitzDaily
    ./Allrun
    

    Smagorinsky.tar.xz

    注意算例中的$C_k$的值忘记改了,应该改为0.065


    个人疑问是植入:$ \nu _{sgs} =\left ( C_s \Delta\right )^2 \sqrt{2\mathbf{D} :\mathbf{D} }$ 那么式 (1d) 中的k是怎么计算的?这会不会就是两个方法的主要差别?

    @coolhhh 应该是从$\nu_t$反推出来的,$k=\nu_t^2/(C_k\Delta)^2$

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C C 3 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #24

    @李东岳 李老师,这个反推公式$k=\nu_t^2/(C_k\Delta)^2$是如何得到的,有更具体的推导吗?

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #25

    我刚才更新了下笔记,你看下4.2.5 RANS-LES 混合模型、DES 模型

    还有这个:10.1007/s10494-005-6916-y

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    cfdem小白
    replied to 李东岳 on 最后由 编辑
    #26

    @李东岳 李老师你好,这边Smagorinsky模型中Ce=1.048,Ck=0.065系数是比较好的吗

    C 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #27

    这二者都可以得到cs=0.065,Ce=1.048,Ck=0.065是标准系数。然后$k_{sgs}$也跟这两个系数的比有关。不过取别的值也能达到这个效果。 @coolhhh 在这方面应该有更深的见解。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to cfdem小白 on 最后由 编辑
    #28

    @cfdem小白 可以看3#的帖子,这是《Moin, P. and J. Kim, Numerical investigation of turbulent channel flow. Journal of fluid mechanics, 1982. 118: p. 341-377.》建议取Cs=0.065,然后根据of2206中planeChannel算例的设置,LES采用Smagorinsky,提到设置Ce=1.048,Ck=0.0265463553,能够Updated to give Cs = 0.065。我也用这个系数计算过Channel Flow,结果跟实验吻合还比较好

    C 1 条回复 最后回复
  • C 离线
    C 离线
    cfdem小白
    replied to coolhhh on 最后由 编辑
    #29

    @coolhhh 这边李老师提到了Ce=1.048,Ck=0.065是标准系数,代入上述的Cs公式算出来Cs在0.127左右。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #30

    @李东岳

    1. 李老师,重新看了这篇文章《Sullivan, P.P., J.C. McWilliams and C. Moeng, A subgrid-scale model for large-eddy simulation of planetary boundary-layer flows. Boundary-Layer Meteorology, 1994. 71: p. 247-276.》,文中对这两种植入方法有个阐述:
      0bf38652-f77b-4eb5-8707-f4f22ee9fd9e-image.png

    8fb6cb01-8b14-461c-afb7-5aa89452e570-image.png
    (1)第一种方法:
    $$\nu_{sgs}=(C_s\Delta)^2\sqrt{2\bfS:\bfS} \tag{1}$$
    from an assumed local equilibrium balance between shear production and dissipation in the SGS turbulent kinetic energy (TKE) equation。

    (2)第二种方法:
    $$\nu_{sgs}=C_k\Delta\sqrt{k_{sgs}} \tag{2}$$
    solve the TKE equation explicitly. Advantages of such models are that no equilibrium assumption is required, and the prognostic equation provides a direct means of calculating the SGS kinetic energy which is needed to construct the actual pressure.
    ①看文章意思像是直接对文献中的方程(8)求解,当假设$P=D$的时候,就能与第一种方法得到等价的$C_s$:
    $$C_s=\left ( C_k \sqrt{\frac{C_k}{C_e} } \right ) ^{1/2} \tag{3}$$
    但根据Smagorinsky SGS model in OpenFOAM | CFD WITH A MISSION 的 推导,of中求解的方程是通过Local equilibrium得到的,即假设了$P=D$,才得到了$k_{sgs}$的求解方程,与文献中的直接求解TKE方程不需要平衡假设的说法不太一样。
    ②并且根据论文阐述,Moeng(1984)文章中提到$k_{sgs}$的值是用于计算压力


    1. 在23#提到第一种方法的$k_{sgs}$是反推出来的,根据式(2)可反推得到$k_{sgs}=\nu_{sgs}^2/(C_k\Delta)^2$。疑问是这里的$C_k$,对于第一种方法是否取值就是$C_s$?
      如果$C_k$与$C_s$是不同的取值,那么对对第一种方法仍然还是有未知数$C_k$,无法求$k_{sgs}$;如果$C_k=C_s$,产生的疑问见第3个问题。

    1. 第一种方法如果$C_k=C_s$,根据式(3),可知:
      (1)第一种方法:取$C_s=0.065$,$\nu_{sgs1}$由式(1)计算,那么$k_{sgs1}=\nu_{sgs1}^2/(C_s\Delta)^2$
      (2)第二种方法:$C_e=1.048,C_k=0.0265463553$,可得到等价的$C_s=0.065$,此时得到的$\nu_{sgs2}=\nu_{sgs1}$。那么根据式(2)得到$k_{sgs2}=\nu_{sgs2}^2/(C_k\Delta)^2$
      (3)若要使得两种方法计算的$k_{sgs1}=k_{sgs2}$,由于$\nu_{sgs2}=\nu_{sgs1}$,因此要求
      $$C_s=C_k \tag{4}$$
      再联立式(3),可解得两个方法完全等价时需要满足条件:$C_s=C_k, C_e=1/C_k$。

    1. Moeng(1984)文章中提到$k_{sgs}$的值是用于计算压力。比较两个方法的不同,构造不同系数组合$C_k, C_e$, 使得两种方法有相同的$C_s=0.065$,但计算的$k_{sgs}$差异较大的工况,对比压力是否可能能对比出结果差异?
    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to cfdem小白 on 最后由 编辑
    #31

    @cfdem小白 应该是笔误,of的默认系数见这个链接
    74d5a06e-8a85-4486-8dd5-513f71173930-image.png

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to coolhhh on 最后由 编辑
    #32

    @coolhhh 更正下符号,当满足Local equilibrium时,$P=\epsilon$

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #33

    @李东岳 李老师,我把您的程序跑了对比下

    1. case1

    用第一种方法mySmagorinsky
    设置Ck=0.065,也就是Cs=0.065,此时$k_{sgs1}=\nu_{sgs1}^2/(C_s\Delta)^2$中的系数$1/(C_s^2)=236.68$

    2. case2

    用第二种方法:of10中的Smagorinsky
    设置Ce=1.048,Ck=0.0265463553, 满足Cs=0.065。
    $k_{sgs2}=\nu_{sgs2}^2/(C_k\Delta)^2$中的系数$1/(C_k^2)=1419$

    3. case3

    用第二种方法:of10中的Smagorinsky
    根据30#的猜测,设置了一组可能不合理的组合:Ce=56020, Ck=1, 但能满足Cs=0.065。
    此时$k_{sgs2}=\nu_{sgs2}^2/(C_k\Delta)^2$中的系数$1/(C_k^2)=1$,与前面两个算例相差特别大
    根据$C_e=C_k^3/C_s^4$,可画出下面曲线。
    aa426b4c-6496-4e57-8984-140f4a90073f-image.png

    4. 结果对比

    根据模拟结果,似乎结果都差别不大。对于of10中的Smagorinsky,感觉只要构造出等价的Cs=0.065,结果基本不变,也就是说$k_{sgs}$似乎没有参与压力计算。

    (1)瞬时速度
    469b7621-28c9-4d3b-8865-4e0e28095915-image.png
    (2)平均速度
    194a8aed-a745-437d-aa3c-7135e354c173-image.png
    (3)脉动速度
    1231a710-fda4-4286-8374-5ae4da76e343-image.png
    (4)瞬时压力
    62c4ffac-71b0-42ae-9310-a0303ac13019-image.png
    (5)平均压力
    6d715f27-94a3-408f-a5da-00e9b0153683-image.png
    (6)脉动压力
    25b17bd0-9d94-4120-8bfa-8b56fbdfddef-image.png

    C C 2 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to coolhhh on 最后由 编辑
    #34
    1. 补充说明

    因为$k_{sgs}$的值与系数$C_k/C_e$有关。上面33#中的case2和case3,虽然$k_{sgs}$差个1419倍,但注意到这时$C_k/C_e$的数值已经很小了,所以计算结果差别不大。
    0e448b6b-5512-4294-9bde-3468c9b107a9-image.png
    c2091430-127c-4aaa-ace0-72eced85dfa5-image.png

    2. 增加case4

    (1)of10中的Smagorinsky,设置Ce=0.001,Ck=0.002613472,同样能够满足Cs=0.065。
    $k_{sgs2}=\nu_{sgs2}^2/(C_k\Delta)^2$中的系数$1/(C_k^2)=146407$,这个时候计算的$k_{sgs}$数值相较于前面的工况大非常多。
    (2)case4模拟结果
    case4的瞬时速度剖面和平均压力剖面,和cae1(第一种方法)非常相近。这是否可以推测:第一种方法与第二种方法效果要基本一样时,此时的Ce和Ck取值要与case4的取值范围类似?
    5fd05a73-434d-4dea-8802-d997cac76018-image.png
    36b986ea-7e03-46e2-b091-bb0deebccb34-image.png

    1 条回复 最后回复
  • C 离线
    C 离线
    cfdem小白
    replied to coolhhh on 最后由 编辑
    #35

    @coolhhh 大佬,这边问你一个问题。你图中的脉动速度Uprime2Mean应该是基于一段时间计算且在某一时刻显示的,这段时间的平均值吧?如果想要知道某时刻的瞬时脉动速度,是否是用该时刻的瞬时速度U减去该时刻的Umean得到?

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to cfdem小白 on 最后由 编辑
    #36

    Uprime2Mean是fieldAverage的计算结果,不是瞬时的脉动速度。风工程领域经常把速度或压力方差,称作脉动速度或脉动压力。如果要求瞬时的脉动速度,那应该按照你说的这么算

    @cfdem小白 在 Smagorinsky模型系数问题 中说:

    如果想要知道某时刻的瞬时脉动速度,是否是用该时刻的瞬时速度U减去该时刻的Umean得到?

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #37

    针对你的case2与case3,你看看nut以及k的结果,看看有区别么?

    把下面的放在controlDict里面可以输出$k_{sgs}$

    cacheTemporaryObjects
    (
        k
    );
    
    functions
    {
        #includeFunc writeObjects("k")
    }
    

    我觉得这些东西,可以写个英文让大家知道一下了。投个一般的期刊当做一个note都可以。目前我是没发现有人研究这个。并且我认为研究很有意义。:chigua: 主要是看这东西之前是不是确实没人玩过。如果没人搞过,那研究一下绝对是发现。写成英文的目的不是为了发文章,而是真正的让大家知道一下这个事情:1)两种Smagorinsky的植入区别与对比,2)第二种植入的模型系数问题。我是没发现有人研究这个。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #38

    @李东岳

    1. nut结果对比

    nut结果中,case1~case3数值范围都比较接近,但是case4理论上应该与前几个算例结果近似才对,但由于比例系数$1/(C_k^2)=146407$过大,nut计算结果实际是偏大,但数量级都是1e-4

    c9ae4b45-b1aa-4b2b-b7b8-30bf779c8a1e-image.png

    2. tmp<k>结果对比

    case3的系数$1/(C_k^2)=1$最小,以这个工况为基准。case3的tmp<k>最大值为0.0035319。
    case2的系数$1/(C_k^2)=1419$,理论上case2的最大值应该为0.0035319*1419=5.0117,实际计算的最大值5.0779,与理论结果基本一致。
    case4的系数$1/(C_k^2)=146407$,数值特别大。理论上case4的最大值应该为0.0035319*146407=517.096,但实际计算的最大值是42185,比理论结果偏大,这可能是结果显示的最终时刻0.1s的结果,与前面工况的速度场有点不同,还有计算的数值误差等其他原因导致。

    13d18eab-de5b-4bad-a123-15fbed0d30d4-image.png

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #39

    case4的nut特别高,case1-3都可以预测类似的nut所以流动行为差不多。因为给了不同的Ck,所有k区别非常大。这是不是说明Smagorinsky预测的nut是合理的,但是预测的k存在任意性,也侧方面的表示了OpenFOAM没有输出k的原因?

    这些k肯定有一种是趋向于合理的。但具体哪个合理目前还不清楚。两种方法的产生与耗散是否相等也未知。我觉得第二种方法的产生与耗散应该是一样的,因为本身那个二次方程就是从P=D推出来的。但是第一种可能够呛。

    OpenFOAM原始的Ck、Ce的值是哪里搞出来的你知道么? @coolhhh

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    replied to 李东岳 on 最后由 编辑
    #40

    @李东岳

    1. 李老师,我也没具体看到哪个文章用了这两个默认系数,但搜到一个帖子有个观点,帖子中的超链接无法查看:OpenFOAM大涡模拟湍流模型之Smagorinsky模型代码详解

    7557d98e-e4d2-4572-a434-4a4fdf028aad-image.png

    1. 无意中看到一个日本CFD网站,看起来$k_{sgs}$与压力计算值有关。
      0273275b-2df3-44db-be29-3788eac243a3-image.png

    然后看Smagorinsky的推导,这个推导过程也类似的出现$Ck$和$C_e$参数。疑问依然还是第一种方法是如何计算$k_{sgs}$,如果这个问题知道了,那应该能推断出第一种方法与第二种方法的系数$Ck$和$C_e$的关系。
    640dac20-6968-407a-8645-17a6cfe0363f-image.png
    018766da-5a71-41a1-91f7-f8bf705007bd-image.png
    0521948c-aaa2-4ac5-a8c5-8862f1892536-image.png

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #41

    OpenFOAM原始的Ck、Ce的值是哪里搞出来的你知道么?

    我找了几个原始文献(主要是Lilly1967,DearDorff1970,以及Moeng and Wyngaard1988),里面讨论了这个Ck Ce的东西,我没太细看。不过看起来这个值是推导出来的,要满足。不过Cs的值都不一样。我再看看。

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #42

    最近没细看这个玩别的去了。我参考Spectral analysis of large eddy simulations of the convective boundary layer昨天晚上推了个八九不离十。这个ck ce是符合湍流能谱的一个常数。这是前人已经做过的工作。没法写英文了。我以为别人没玩过这个。哈哈

    24年3月CFD课将在杭州举办 http://dyfluid.com/class.html
    论坛随机不定时开放注册
    如果需要我给调试算例 1)算例可公开 2)网格数少 3)确保可以跑通

    1 条回复 最后回复

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

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 热门
  • 东岳流体
  • 登录

  • 登录或注册以进行搜索。