亚松弛因子的简介
由于流体力学中要求解非线性的方程,在求解过程中,控制变量的变化是很必要的,这就通过松弛因子来实现的。它控制变量在每次迭代中的变化。也就是说,变量的新值为原值加上变化量乘以松弛因子。
如:
A1=A0+B*DETA
A1 新值
A0 原值
B 松弛因子
DETA 变化量
松弛因子可控制收敛的速度和改善收敛的状况!B=1,相当于不用松弛因子。B>1,为超松弛因子,加快收敛速度。B<1,欠松弛因子,改善收敛的条件。一般来讲,大家都是在收敛不好的时候,采用一个较小的欠松弛因子。Fluent里面用的是欠松弛,主要防止两次迭代值相差太大引起发散。松弛因子的值在0~1之间,越小表示两次迭代值之间变化越小,也就越稳定,但收敛也就越慢。
1、亚松弛(Under Relaxation):所谓亚松弛就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量 来写出时,为松弛因子(Relaxation Factors)。《数值传热学-214》
2、FLUENT中的亚松弛:由于FLUENT所解方程组的非线性,我们有必要控制 的变化。一般用亚松弛方法来实现控制,该方法在每一步迭代中减少了 的变化量。亚松弛最简单的形式为:单元内变量 等于原来的值 加上亚松弛因子a与 变化的积分离解算器使用亚松弛来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松弛因子。在FLUENT中,所有变量的默认亚松弛因子都是对大多数问题的最优值。这个值适合于很多问题,
但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松弛因子。
使用默认的亚松弛因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松弛因子。有时候,如果发现残差开始增加,你可以改变亚松弛因子重新计算。在亚松弛因子过大时通常会出现这种情况。最为安全的方法就是在对亚松弛因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松弛因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。