今天分享一个FLUENT计算不收敛的案例及其解决办法。计算的对象是一个文丘里管,如图1所示,入口直径为28mm,出口直径为50mm。计算所用的网格如图2所示,采用四面体非结构网格,但壁面附近采用棱柱网格以更好地分辨边界层的流动注1。
(a)三维图
(b)截面图
图1 计算的文丘里管。
图2 网格
流动的工质为空气,由于流动马赫数很低,采用不可压缩流体模型,密度=1.225kg/m3,粘性系数=1.7894×10-5Pa·s。入口边界条件为:总压=1000Pa,湍流强度=3%,水力直径=28mm。出口边界条件为:静压=0Pa。注意上面所说的压力都是表压力而不是绝对压力(绝对压力=表压力+参考压力。在FLUENT里面参考压力通过设置“operating pressure”来改变。)湍流模型采用k-ω SST。
用基于压力的求解器,压力与速度的耦合方法为“Coupled”。动量方程的空间离散采用二阶迎风格式,湍流方程采用一阶迎风格式(图3)。
图3 计算方法及离散格式。
采用定常(Steady)算法计算发现,随着迭代次数的增加,文丘里管入口、出口的流量总是在波动,不能收敛到确定的数值(图4)。残差曲线如图5所示,可以看出绝大部分方程的残差都远没有达到默认的收敛标准(1e-3)。修改求解过程控制参数,例如松弛因子(Relaxation Factors)、Courant Number等等,都没有明显效果。
图4 流量随着迭代次数增加的波动。
图5 残差曲线。
是什么原因导致不收敛呢?通过画出流线图(图6),可以发现文丘里管的扩张段发生了边界层分离,即流动不再依附于壁面。根据以往的经验,流场中有大规模边界层分离的时候,定常算法往往都不能收敛,只有改成非定常算法才行。所以,我们尝试改用非定常算法。从理论上来说[2],有边界层分离的时候,多数情况下分离再附区以及钝体尾迹的涡脱落区属于非平衡湍流区,即湍动能瞬时生成与湍动能瞬时耗散相差较大,因此应该使用非定常算法来计算。(相反,不分离的顺压梯度边界层属于接近平衡湍流区,即湍动能生成近似等于湍动能耗散,用定常算法就足够了)
图6 流线图。
改成非定常算法之后,发现只要设定合适的时间步长,每一个时间步内都可以迭代收敛了。图7显示的是时间步长设为0.0001的情形,每个时间步只需迭代3~4次就能让残差下降到默认的收敛标准(1e-3)以下。问题得以解决。
图7 用非定常算法计算时命令窗口的输出。
虽然不收敛的问题得以解决,但是对于这个题还值得多说两句。对于这种型面是光滑曲线的壁面上的逆压梯度导致的分离流动,在CFD中要准确地模拟是不容易的,计算结果对湍流模型的依赖程度很大。例如,如果我们将湍流模型换成k-ε,就会发现算出的结果中并没有明显的边界层分离。这可以从图8(a)的速度x分量的云图看出来。这里我们只显示速度的x分量小于零的区域;因为边界层分离总是伴随着回流区的,而x分量小于零意味着回流。其它几种湍流模型的计算结果也在图8中进行了对比。可以看出湍流模型对这个问题的计算结果影响很大。
a)标准k-ε
b)RNG k-ε
c)Realizable k-ε
d)k-ω SST
e)v2f
f)SA
图8 几种不同的湍流模型算出的结果的比较。只显示逆向流动的区域。
那究竟哪个结果最符合实际呢?这只能通过实验验证来决定。不过,有一点还是比较明确的,那就是对于这类型面是光滑曲线的壁面上的逆压梯度导致的分离流动,用k-ε模型模拟是不合适的;k-ε模型往往会显著低估边界层分离的程度。这一点在FLUENT的User’s Guide中已经明确地指出:
为了说明k-ε模型的这个缺点,我们再展示一个例子。这是来自于斯坦福大学Gianluca Iaccarino教授的湍流模拟讲义[1]中的例子,计算的是一个扩压器中的流动。可以看出,通过与实验数据的对比发现k-ε模型大大地低估了流动分离。
如果壁面形状是不光滑的,比如有突然向外转折,那么反而简单一些,因为边界层分离通常会在转折处发生。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删