首先什么是残差?

 残差——是 cell 各个 Face 的通量之和,当收敛后,理论上当单元体内没有源相时各个面流入的通量也就是对物理量的输运之和应该为 0。最大残差或者 RSM 残差反映流场与所要模拟流场(指收敛后应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的差距,残差越小越好,由于存在数值精度问题,不可能得到 0 残差,对于单精度计算一般应该低于初始残差 1e-03 以下为好,但还要看具体问题。

    一般在 Fluent 里可以添加进出口流量监控(print or plot),当残差收敛到一定程度后,还要看进出口流量是否达到稳定平衡,才可以确认收敛与否。

    残差在较高位震荡,需要检查边界条件是否合理,其次检查初始条件是否合适,比如在有激波的流场,初始条件不合适,会带来流场的震荡。有时流场可能有分离或者回流,这本身是非定常现象,计算时残差会在一定程度上发生震荡,这时如果进出口流量是否达到稳定平衡,也可以认为流场收敛了(前提是要消除其他不合理因数)。另外 Fluent 缺损地采用多重网格,在计算后期,将多重网格设置为零可以避免一些波长的残差在细网格上发生震荡

连续性方程的残差收敛慢、下降慢或不下降的原因

在计算过程中其它指数都收敛了,就 continuity不收敛是怎么回事。
continuity 是质量残差,具体是表示本次计算结果与上次计算结果的差别,如果别的条件收敛了,就差它。可以点 report,打开里面 FLUX 选项,算出进口与出口的质量流量差,看它是否小于 0.5%. 如果小于,可以判断它收敛.

监测流场某个变量来判断收敛更合理一些.
  • 造成连续方程高残差不收敛的原因主要有以下几点:
  1. 网格质量,主要可能是相邻单元的尺寸大小相差较大,它们的尺寸之比最好控制在 1.2 以内,不能超过 1.4.
  2. 离散格式及压力速度耦合方法,如果是结构网格,建议使用高阶格式,如 2 阶迎风格式等,如果是非结构网格,除 pressure 保持 standard 格式不变外,其他格式改用高阶格式;压力速度耦合关系,如果使用 SIMPLE,SIMPLEC,PISO 等 segerated solver 对联系方程收敛没有提高的话,可以尝试使用 coupled solver。另外,对于梯度的计算,不论使用结构或非结构网格,都可以改用 node-based 来提高计算精度。

要加速 continuity 收敛该设置那些参数?
感觉需要调整courant number。FLUENT中courant number是在耦合求解的时候才出现的。正确的调整,可以更好地加速收敛和解的增强稳定性。courantnumber实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。在fluent中,用courantnumber来调节计算的稳定性与收敛性。一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courantnumber的大小,根据自己具体的问题,找出一个比较合适courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。个人认为这也应该和你采用的算法有关SIMPLE算法是根据连续方程推导出压力修正方法求解压力。由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。试着用SIMPLEC算法看看。

FLUENT 求解器设置

FLUENT 求解器设置主要包括:1、压力 - 速度耦合方程格式选择 2、对流插值 3、梯度插值 4、压力插值

下面对这几种设置做详细说明。

一、压力 - 速度耦合方程求解算法

FLUENT 中主要有四种算法:SIMPLE,SIMPLEC,PISO,FSM

(1)SIMPLE(semi-implicit method for pressure-linked equations) 半隐式连接压力方程方法,是 FLUENT 的默认格式。

(2)SIMPLEC(SIMPLE-consistent)。对于简单的问题收敛非常快速,不对压力进行修正,所以压力松弛因子可以设置为 1

(3)Pressure-Implicit with Splitting of Operators (PISO)。对非定常流动问题或者包含比平均网格倾斜度更高的网格适用

(4)Fractional Step Method (FSM) 对非定常流的分步方法。用于 NITA 格式,与 PISO 具有相同的特性。

二、对流插值(动量方程)

FLUENT 有五种方法:一阶迎风格式、幂率格式、二阶迎风格式、MUSL 三阶格式、QUICK 格式

(1)FLUENT 默认采用一阶格式。容易收敛,但精度较差,主要用于初值计算。

(2)Power Lar. 幂率格式,当雷诺数低于 5 时,计算精度比一阶格式要高。

(3)二阶迎风格式。二阶迎风格式相对于一阶格式来说,使用更小的截断误差,适用于三角形、四面体网格或流动与网格不在同一直线上;二阶格式收敛可能比较慢。

(4)MUSL(monotone upstream-centered schemes for conservation laws). 当地 3 阶离散格式。主要用于非结构网格,在预测二次流,漩涡,力等时更精确。

(5)QUICK(Quadratic upwind interpolation)格式。此格式用于四边形 / 六面体时具有三阶精度,用于杂交网格或三角形 / 四面体时只具有二阶精度。

三、梯度插值梯度插值主要是针对扩散项。

FLUENT 有三种梯度插值方案:green-gauss cell-based,Green-gauss node-based,least-quares cell based.

(1)格林 - 高斯基于单元体。求解方法可能会出现伪扩散。

(2)格林 - 高斯基于节点。 求解更精确,最小化伪扩散,推荐用于三角形网格上

(3)基于单元体的最小二乘法插值。推荐用于多面体网格,与基于节点的格林 - 高斯格式具有相同的精度和格式。

四、压力插值压力基分离求解器主要有五种压力插值算法。

(1)标准格式(Standard)。为 FLUENT 缺省格式,对大表妹边界层附近的曲线发现压力梯度流动求解精度会降低(但不能用于流动中压力急剧变化的地方——此时应该使用 PRESTO! 格式代替)

(2)PRESTO! 主要用于高旋流,压力急剧变化流(如多孔介质、风扇模型等),或剧烈弯曲的区域。

(3)Linear(线性格式)。当其他选项导致收敛困难或出现非物理解时使用此格式。

(4)second order(二阶格式)。用于可压缩流动,不能用于多孔介质、阶跃、风扇、VOF/MIXTURE 多相流。

(5)Body Force Weighted 体积力。当体积力很大时,如高雷诺数自然对流或高回旋流动中采用此格式。

  1. 如何加快收敛?

①、一般首先是改变初值,尝试不同的初始化,事实上好像初始化很关键,对于收敛。

      ②、FLUENT 的收敛最基础的是网格的质量,计算的时候看怎样选择 CFL 数,这个靠经验

      ③、首先查找网格问题,如果问题复杂比如多相流问题,与模型、边界、初始条件都有关系。

      ④、有时初始条件和边界条件严重影响收敛性,曾经作过一个计算反反复复,通过修改网格,重新定义初始条件,包括具体的选择的模型, 还有老师经常用的方法就是看看哪个因素不收敛,然后寻找和它有关的条件,改变相应参数。就收敛了

      ⑤、A. 检查是否哪里设定有误:比方用 mm 的 unit 建构的 mesh,忘了 scale;比方给定的边界条件不合理。B 从算至发散前几步,看 presure 分布,看不出来的话,再算几步, 看看问题大概出在那个区域。 C 网格,配合第二点作修正,就重建个更漂亮的,或是更粗略的来处理。D 再找不出来的话,换个 solver。

      ⑥、解决的办法是设几个监测点,比如出流或参数变化较大的地方,若这些地方的参数变化很小,就可以认为是收敛了,尽管此时残值曲线还没有降下来。

      ⑦、调节松弛因子也能影响收敛,不过代价是收敛速度。

亚松弛因子对收敛的影响

所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量来写出时,为松驰因子(Relaxation Factors)。《数值传热学 - 214》

FLUENT 中的亚松驰:由于 FLUENT 所解方程组的非线性,我们有必要控制变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了变化量。亚松驰最简单的形式为:单元内变量等于原来的值加上亚松驰因子 a 与变化的积:  

分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。 

在 FLUENT 中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高 Rayleigh 数自然对流问题),在计算开始时要慎重减小亚松驰因子。 

使用默认的亚松驰因子开始计算是很好的习惯。如果经过 4 到 5 步的迭代残差仍然增长,你就需要减小亚松驰因子。 

有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。 

注意:粘性和密度的亚松驰是在每一次迭代之间的。而且,如果直接解焓方程而不是温度方程(即:对 PDF 计算),基于焓的温度的更新是要进行亚松驰的。要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。 

对于大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k 和 e 的亚松弛因子默认值分别为 0.2,0.5,0.5 和 0.5。对于 SIMPLEC 格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合的问题中,如相当高的 Rayleigh 数的自然或混合对流流动,应该对温度和 / 或密度(所用的亚松弛因子小于 1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为 1.0。  

对于其它的标量方程,如漩涡,组分,PDF 变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为 0.8 以使得收敛更容易。

最后修改:2020 年 09 月 02 日
如果觉得我的文章对你有用,请随意赞赏