CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    motorbike中SA模型相关设置?

    OpenFOAM
    3
    8
    1727
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Cp_Zhao
      Cp_Zhao 最后由 编辑

      新人,今天刚注册完,第一次发帖;最近在学习OpenFOAM和湍流相关知识,还比较辣鸡,可能有些问题显得比较低级但也请大家多多包涵。

      关于如何设置湍流模型很多参数的初值,还是不太清楚。

      最开始看了József Nagy的教学视频,学到了很多他设置初值的方法,但是:
      最主要的问题是当我试着用学到的方法来解释tutorial里一些参数值的设置时,有些地方怎么也解释不出来
      在cfd-online上也看了很多篇帖子,始终没有解决我的疑问,我的问题和这位hulli很相似,他发的帖子也一直没有人回复...

      首先来看下motorbike的文件

      从blockMesh中得出模型y方向的尺寸 $L=8m$ , turbulence length scale可以取:

      $$
      l=0.07L=0.56m
      \tag{1-1}$$
      查看0/U得出Freestream velocity: $U_{\infty}=20m/s$.
      假设Medium-turbulence case, Turbulence intensity $I=2%$
      查看constant/transportProperties, $\nu=1.5e-5m^{2}/s$ ,是空气的典型值。
      然后,先估算Turbulence kinetic energy $k$ :

      $$
      k=\frac{3}{2}\left(UI\right)^{2}=1.5\times\left(20*0.02\right)^{2}=0.24
      \tag{1-2}$$
      好的,这个和它的设置一模一样,没啥问题(虽然k在这里好像并没啥用)
      Turbulence dissipation :
      $$
      \epsilon=C_{\mu}^{\frac{3}{4}}\cdot \frac{k^{\frac{3}{2}}}{l}=0.09^{0.75}\times0.24^{1.5}/0.56\approx 0.0345
      \tag{1-3}$$

      Specific turbulence dissipation:

      $$
      \omega=\frac{\epsilon}{C_{\mu}k}\approx 1.60
      \tag{1-4}$$
      和0/U文件中的turbulentOmega 1.78;也差不了多少。
      问题在于nut和nuTilda的设置:
      首先给出计算公式:

      $$
      \nu_{t}=C_{u}\frac{k^{2}}{\epsilon}
      \tag{1-5}$$

      $$
      \nu_{t}=\tilde{\nu}\cdot f_{v_1} , 其中 f_{v_1}=\frac{X^{3}}{X^{3}+c_{v_{1}}^{3}}
      \tag{1-6}$$
      且 $X=\frac{\tilde{\nu}}{\nu}$ , $c_{v_1}=7.1$

      最让我不解的是motorbike里将nut设为0,而将nuTilda设为0.05

      如果按照这篇帖子里所说的,计算出 $\nu_{t}$,其初始值应该为:

      $$
      \nu_{t}=C_{u}\frac{k^{2}}{\epsilon}=0.09\times \frac{0.24^{2}}{0.0345}\approx 0.15
      \tag{1-7}$$
      此时,带入(1-6)可以求出正实根为 $\tilde{\nu}\approx0.15$
      如果是我,肯定会将nut和nuTilda都设成0.15。


      帖子里给出的意见是:按照东岳老师所说nuTilda为带求变量设成0也行,或者根据NASA The Spalart-Allmaras Turbulence Model设置。
      另一篇帖子中random_ran也谈到类似的设置。

      但无论哪种好像都不能解释为什么motorbike里的设置,以及我和hulli的疑问。

      其他类似的问题

      tutorials/incompressible/simpleFoam/airFoil2D的设置我也有点没搞明白,其中nut和nuTilda设置成相等倒是很容易理解,但是值为0.14我怎么算都和它相差很大,不知道是怎么的出来的。并且我试着改变这两者的值进行计算发现计算结果也差别很大,有点不知道怎么办了- -

      附:https://www.cfd-online.com/Tools/turbulence.php这个网页小工具可以参考一下,感觉还蛮有用的。

      blog :
      <https://chengpengzhao.com>

      1 条回复 最后回复 回复 引用
      • Cp_Zhao
        Cp_Zhao 最后由 编辑

        $I=2\%$ 湍流强度I=2%,为了表明%不代表单行注释我还特地输入了转义符号为啥没显示出来
        看来是渲染方式和mathjax有点冲突 - -

        blog :
        <https://chengpengzhao.com>

        1 条回复 最后回复 回复 引用
        • R
          random_ran 副教授 最后由 编辑

          有很多模形来简化 NS 方程。 比如 RANS 和 LES。

          楼主 Eq 1.7 计算 nut 是基于 k–ε (RANS 中的一个)。

          问题是楼主对 nuTilda 的计算依赖了 k–ε 中对 nut 的定义。 而 RANS 问题的核心是寻找 nut 的方程,让时均 NS 方程组封闭。

          SA 模形中有自己对 nut 的猜想。

          楼主怎样解释这样混用的合理性呢?

          Yours in CFD,

          Ran

          1 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 最后由 编辑

            排版太厉害了

            最让我不解的是motorbike里将nut设为0,而将nuTilda设为0.05

            我的motorbike里面都没有nuTilda,是这样,nut为从k, $\varepsilon$计算过来,因此你设置成多少,都没问题。求解器没有nut的传输方程,求解器求解k,然后epsilon,有二者之后一除,就是nut

            nuTilda有传输方程,但传输方程最终形式跟你的瞬态稳态有关。稳态的话内部场不影响最后的结果。这个结论跟你之前验证的冲突

            并且我试着改变这两者的值进行计算发现计算结果也差别很大,

            我看看怎么回事再回复你

            CFD高性能服务器 http://dyfluid.com/servers.html

            Cp_Zhao 1 条回复 最后回复 回复 引用
            • Cp_Zhao
              Cp_Zhao @李东岳 最后由 编辑

              @东岳 我弄错了,确实稳态的话不会影响最后结果,差别很大是因为还没收敛(我只改了nut和nutTilda的值但没调endTime)。

              但我发现合适的初值设置能够很明显的加快收敛速度:
              如airFoil2D这个例子,默认是$\nu_{t}=\tilde{\nu}=0.14$,313步就收敛了;
              而如果我改成$\nu_{t}=\tilde{\nu}=0$ , 需要371步,这都差别不大;
              但如果改得大一点:如$\nu_{t}=\tilde{\nu}=14$ ,需要1018步收敛。

              所以感觉有时候一个合理的初值还是挺重要的。

              blog :
              <https://chengpengzhao.com>

              李东岳 1 条回复 最后回复 回复 引用
              • 李东岳
                李东岳 管理员 @Cp_Zhao 最后由 编辑

                @Cp_Zhao 感谢反馈!!那我就不用试了。头像好评 :huahua:

                CFD高性能服务器 http://dyfluid.com/servers.html

                1 条回复 最后回复 回复 引用
                • Cp_Zhao
                  Cp_Zhao 最后由 编辑

                  结论:

                  1. nut根据计算得来,所以设置成type calculated;然后随便给个值都行。
                  2. 不同模型间的公式尽量不混着瞎用,老老实实参考NASA里给的建议和https://turbmodels.larc.nasa.gov/ChangesToOpenFOAM.pdf的说明
                  3. Try not to follow the tutorial values as some (maybe most) of them are not validated per se but more for case file reference only(来自reddit yourstru1y的建议)

                  不知是否还有需要纠正的地方,感谢~

                  blog :
                  <https://chengpengzhao.com>

                  1 条回复 最后回复 回复 引用
                  • R
                    random_ran 副教授 最后由 编辑

                    楼主回答了 nut 能不能进一步再讨论一下 nuTilda 的设置呢?

                    为什么摩托车算例里的 nuTilda 在 inlet, outlet, 以及 internalField 的初
                    始条件设置是 0.05?这样的设置是来源于:nuTilda < nut/10 么 (参考资料1)?

                    那么 nut 的估计既然是 0, 为何 nuTilda 的估计却是, 0.05, 这样一个非零的
                    估计? 如果 nuTilda 的取值是为了保持数值计算的稳定,为什么不取 0.04 或
                    者其他的很小的数? 0.05 只是单纯的一个比较小的数么?

                    另外 nuTilda 初值在 outlet 的设置也稍有不一样: 为什么用 inletOutlet
                    这个条件?而不是 fixedValue,calculated, 或者是 zeroGradient?

                    参考资料

                    1. Spalart, P.R., & Allmaras, S.R. (1994). A one-equation turbulence
                      model for aerodynamic flows. La Recherche Aerospatiale, 1, 5-21.

                    术语来源:

                    1. eddy viscosity (nut): 参考资料: Page 7
                    2. turbulence viscosity (nut)

                    Yours in CFD,

                    Ran

                    1 条回复 最后回复 回复 引用
                    • First post
                      Last post