motorbike中SA模型相关设置?



  • 新人,今天刚注册完,第一次发帖;最近在学习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这个网页小工具可以参考一下,感觉还蛮有用的。



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


  • OpenFOAM副教授

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

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

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

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

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



  • 排版太厉害了

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

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

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

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

    我看看怎么回事再回复你



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

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

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



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



  • 结论:

    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的建议)

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


  • OpenFOAM副教授

    楼主回答了 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)

Log in to reply
 

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