本文讨论一下 Fluent 中亚松弛因子(Under-Relaxation Factors)的数学物理含义,以及如何进行设置。
1 亚松弛因子的数学含义
在 Fluent 以及其他基于迭代求解器的 CFD 软件中,求解偏微分方程(例如纳维-斯托克斯方程)通常是通过迭代的方式进行的。每一次迭代,软件都会计算出新的变量值,并用这些值来更新当前解。然而,如果直接使用新计算出的变量值来更新当前解,可能会导致以下问题:
-
震荡或发散: 特别是当变量的梯度较大时,直接更新可能会导致计算结果在每一次迭代中大幅度波动,甚至发散,无法收敛到稳定的解。 -
收敛速度慢: 有些情况下,即使没有出现发散,直接更新也可能导致收敛速度非常慢,迭代很多次都无法得到稳定的结果。
-
:新变量值,指的是本次迭代后变量的值。 -
:旧变量值,指的是上一次迭代后变量的值。 -
:计算值,指的是本次迭代根据方程计算出来的变量值。 -
:亚松弛因子,一个任意指定的介于 0 和 1 之间的系数。
从这个公式可以看出,亚松弛因子的作用是将计算值和旧值之间的差值(即更新量)按比例缩小。例如:
-
如果亚松弛因子为 1,则表示完全采用计算值来更新,相当于没有亚松弛。 -
如果亚松弛因子为 0.5,则表示只采用计算值更新量的一半。 -
如果亚松弛因子接近 0,则表示更新量非常小,更偏向于保持上一次迭代的结果。
2 亚松弛因子的物理含义
从物理的角度理解,亚松弛因子可以看作是引入了一个“缓冲”或“阻尼”机制,其限制了变量更新的速度,使其在迭代过程中更加平缓,避免由于计算误差或不稳定而产生的剧烈波动。
更具体地说,亚松弛因子可以解释为:
-
对时间步长的隐式调整: 在时间相关的问题中,减小亚松弛因子可以看作是隐式地减小了时间步长,从而提高了计算的稳定性。 -
对流场的稳定: 在高雷诺数等复杂流动问题中,流动往往是不稳定的,亚松弛因子可以帮助稳定计算过程,抑制数值振荡。 -
对源项的限制: 在一些包含源项的方程中,亚松弛因子可以防止源项的剧烈变化导致的不稳定。
3 Fluent中的亚松弛因子
Fluent 中针对不同的变量都提供了相应的亚松弛因子,并且默认设置通常是有效的。然而,在一些特殊情况下,用户可能需要调整它们。以下是一些建议:
默认值:
-
压力 (Pressure): 0.3 ~ 0.5 -
速度 (Velocity): 0.5 ~ 0.7 -
动量 (Momentum): 0.3 ~ 0.7 (通常和速度相同) -
湍动能 (Turbulent Kinetic Energy, k): 0.5 ~ 0.8 -
湍流耗散率 (Turbulent Dissipation Rate, ε): 0.5 ~ 0.8 -
标量 (Scalars): 0.8 ~ 1.0 (例如能量、组分等)
调整建议:
-
高雷诺数流动: 对于高雷诺数的湍流,特别是分离流动,可能需要降低压力和速度的亚松弛因子,甚至低至 0.2 或更低。 -
强源项: 如果方程中包含很强的源项,例如化学反应或多相流动,可能需要降低相关变量的亚松弛因子,以避免计算不稳定。 -
网格质量差: 如果网格质量较差,例如存在较大的倾斜度或纵横比,可能需要降低所有变量的亚松弛因子。 -
收敛困难: 如果迭代过程中出现收敛困难(例如残差振荡不收敛),可以尝试降低压力和速度的亚松弛因子。 -
收敛缓慢: 如果收敛速度太慢,可以尝试适当增加标量等变量的亚松弛因子。 -
首先调整压力: 如果要进行调整,通常建议首先调整压力亚松弛因子,因为压力是速度场的驱动因素。 -
逐渐调整: 建议不要一次性大幅度调整亚松弛因子,而是逐渐地调整,并观察计算结果的变化。 -
从较低的值开始: 如果不确定如何设置,可以从较低的值开始(例如 0.2),然后逐渐增大,直到找到合适的平衡点。
在 Fluent 中,可以通过双击模型树节点Solution > Controls 打开任务页设置亚松弛因子,需要注意的是,该任务页中的设置项目与用户选用的物理模型有关。
4 注意事项
-
因子不宜设置过低: 过低的亚松弛因子会导致收敛速度过慢,甚至可能导致计算结果不准确。 -
具体问题具体分析: 最佳的亚松弛因子设置取决于具体的流动问题、网格质量和所用的求解器。 -
经验积累: 调整亚松弛因子需要一定的经验积累。通过不断地尝试和观察,可以找到最适合特定问题的设置。
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册