Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • 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中文网

  1. CFD中文网
  2. OpenFOAM
  3. Smagorinsky模型系数问题

Smagorinsky模型系数问题

已定时 已固定 已锁定 已移动 OpenFOAM
48 帖子 6 发布者 31.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    coolhhh 神
    写于2023年10月14日 14:33 最后由 李东岳 编辑 2023年11月8日 15:04
    #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 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年10月16日 14:12 最后由 李东岳 编辑 2023年10月16日 22:13
    #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
    

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 1 条回复 最后回复 2023年10月16日 18:45
  • C 离线
    C 离线
    coolhhh 神
    在 2023年10月16日 18:45 中回复了 李东岳 最后由 编辑
    #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是将指数函数乘以过滤宽度实现,下面截图的公式感觉有点错误,应该改为:Δ=min[Δmesh,(κCΔ)(1−e−y+/A+)y],这就与代码和官网上的写法一致。
      054bef10-6f0e-430f-b3ee-5f0d0dce3f31-image.png
    2. 问题:of的这种引入系数κ,CΔ的植入方式,目前还没找到相关出处,不知道为何要这么取值?同时官网上把CΔ写成符号Cs,所以在想CΔ是否与Cs是相同取值的?也就是说,设置用的Ce=1.048,Ck=0.0265463553,可得到Cs=0.065,那么CΔ是否要设置为0.065?
    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年10月17日 06:04 最后由 编辑
    #4

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

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 1 条回复 最后回复 2023年10月17日 12:55
  • C 离线
    C 离线
    coolhhh 神
    在 2023年10月17日 12:55 中回复了 李东岳 最后由 编辑
    #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 ,根据网站的推导,这两种方法是等效的,得到的Cs与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 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年10月17日 14:20 最后由 编辑
    #6

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

    那是说明两种方法植入都可以?那我感觉原始方法更好植入呢: νt=f(Ck,Δ,D)。一个公式就出来了。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 1 条回复 最后回复 2023年10月17日 16:14
  • C 离线
    C 离线
    coolhhh 神
    在 2023年10月17日 16:14 中回复了 李东岳 最后由 编辑
    #7
    1. 李老师,看评论区并根据Sullivan论文,第一种方法应修改为:νt=(CsΔ)22D: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) 如果用第一种方法指定Cs,根据Cs=(CkCkCe)1/2,理论上反推的Ck和Ce就无法唯一确定,也就是说,一个Cs值是可以对应很多对Ck和Ce,比如采用Cs=0.065,那么可以取Ck=0.026546355, Ce=1.048或者Ck=0.04, Ce=3.585308638等很多组合。但可能第一种方法推导采用了ksgs的生成与耗散平衡假设,因此实际反算的Ck和Ce是与这种假设唯一相对应的。
      (2) 如果用第二种方法,通过指定Ck=0.026546355, Ce=1.048,就可以唯一确定Cs=0.065。也就是说,可以动态指定Ck和Ce的取值对计算结果的作用程度,并且自然满足所预期的Cs。

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

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

    C 1 条回复 最后回复 2023年10月18日 05:35
  • C 离线
    C 离线
    coolhhh 神
    在 2023年10月18日 05:35 中回复了 coolhhh 最后由 编辑
    #8

    1. 采用第二种方法:

    (1)根据Smagorinsky SGS model in OpenFOAM | CFD WITH A MISSION的推导,基于式(5)的Local equilibrium假设,对于 incompressible flows,才能得到式(8)关系,进而得到式(10)和(11)。然后将式(11)与文献中的公式(12)对比,得到式(13)关于Ce,Ck,Cs三个系数的关系式。
    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),我们可以通过设置合适的Ce和Ck,来实现等价的Cs。但是,式(10)中ksgs的值与Ck/Ce这个比值相关联的。换句话说,计算设置满足了等价的Cs=0.065,但Ck,Ce可以有多种不同组合,这将导致ksgs计算结果可能差别很大。根据式(13),可以得到:Ck=(CeCs4)1/3,以固定取Cs=0.065为例,画图如下。可以看出Ce取值越小,Ck/Ce比值变化越剧烈。表明了虽然结果都是满足Local equilibrium假设以及实现了Cs=0.065,Ce和Ck仍然要取合适的组合,才能得到合理的ksgs
      Ck_Ce.png
      Ck:Ce.png

    2. 采用第一种方法:

    个人疑问是植入:νsgs=(CsΔ)22D:D ,

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

    L 1 条回复 最后回复 2024年4月3日 07:13
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年10月18日 06:44 最后由 李东岳 编辑 2023年10月18日 14:45
    #9

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

    如果采用νsgs=(CsΔ)22D:D 计算,从湍流模型封闭角度来看,就不需要ksgs了。这样没问题。不过确实,用第一种方法ksgs怎么算?

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

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    写于2023年10月18日 07:37 最后由 编辑
    #10

    还有of的这种植入方式,只有对于incompressible flows,b系数为0,c系数化简,才能得到νsgs=CkCkCeΔ2|D¯|和Cs=(CkCkCe)1/2。of采用这种方式可能还考虑了适用于compressible flows情况?

    李 1 条回复 最后回复 2023年10月18日 07:51
  • 李 离线
    李 离线
    李东岳 管理员
    在 2023年10月18日 07:51 中回复了 coolhhh 最后由 编辑
    #11

    @coolhhh thats a good questions.

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年11月7日 14:56 最后由 编辑
    #12

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

    我最近看到一个老版本的动态模型植入。植入的不是νsgs=(CsΔ)22D:D,而是νsgs=(CsΔ)2D:D,大佬怎么看

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 1 条回复 最后回复 2023年11月8日 06:09
  • C 离线
    C 离线
    coolhhh 神
    在 2023年11月8日 06:09 中回复了 李东岳 最后由 编辑
    #13

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


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

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

    替代文字

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 1 条回复 最后回复 2023年11月8日 06:27
  • C 离线
    C 离线
    coolhhh 神
    在 2023年11月8日 06:27 中回复了 李东岳 最后由 编辑
    #15

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

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

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年11月8日 06:56 最后由 编辑
    #16

    你的意思就是,OpenFOAM里面植入的应该是νsgs=(Csof)2Δ2D:D,其中(Csof)2=Cs22

    而不是νsgs=Cs2Δ2D:D

    是这样么

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    C 李 2 条回复 最后回复 2023年11月8日 07:55
  • 李 李东岳 被引用 于这个主题 2023年11月8日 07:05
  • C 离线
    C 离线
    coolhhh 神
    在 2023年11月8日 07:55 中回复了 李东岳 最后由 编辑
    #17

    对,因为湍流模型不太懂,我猜测dynSmagorinsky差个2可能是这个原因。Smagorinsky模型不是直接植入这个公式,是通过把系数代入νsgs=CkΔksgs后得到等价的νsgs=Ck2CkCeΔ2D:D=CkCkCeΔ22D:D=(CsΔ)22D:D

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年11月8日 08:16 最后由 编辑
    #18

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2023年11月8日 08:45 最后由 李东岳 编辑 2023年11月8日 17:49
    #19

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

    被这玩意彻底搞蒙了

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • D 离线
    D 离线
    dxl
    写于2023年11月8日 10:25 最后由 编辑
    #20

    是不是这个
    1699438916664.png

    1 条回复 最后回复
2023年11月8日 07:03

3/48

2023年10月16日 18:45

未读 45
2025年4月5日 18:33
  • 登录

  • 登录或注册以进行搜索。
3 / 48
  • 第一个帖子
    3/48
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]