Fluent求解过程总是会有 一步是对Solution Controls进行设置,这里的设置主要就是设置松弛因子,很多时候都是直接默认设置的,不需要更改。但是在一些案例中,只有修改松弛因子才会收敛。
那么这里的松弛因子到底是什么东西呢?又应该如何设置呢?
1. 松弛因子是什么?
Fluent理论手册给出的说法是:由于 Fluent 求解的方程组具有明显的非线性特征,需要对变量的变化幅度进行限制,以增强收敛稳定性, 这个限制就是松弛因子。
理论手册的说法有点拗口,我们通俗一点说,Fluent方程求解过程本质上就是不断逼近收敛解的过程。也就是说,当前的解φ肯定是不准确的,所以我们需要改变这个解的值,然后重新带入方程中进行计算,再来看看能不能达到收敛。我们把这个改变量称为Δφ。
那么如何确定Δφ呢??实际上求解控制方程的时候就可以求出这个Δφ,但是如果直接将这个Δφ用来改变φ,改变量比较大,可能会造成收敛不稳定。
所以我们需要把这个Δφ给变小,如何变小呢?给它乘以一个0~1的数α就可以了。如果α=0,说明φ没有改变,相当于计算停止了。如果α=1,Δφ全部用来改变φ。这个α就被称为松弛因子
用一个简单的公式来理解核心思想:
其中:
φold是变量(如压力、速度)的当前值
Δφ是本次迭代计算出的变化量(根据控制方程得出)
α就是松弛因子(通常在0到1之间)
φ是更新后的值
类比一下, 松弛因子就类似你跑步的步幅,肯定是步幅越大,你跑到越快,越容易到达终点,但是也越容易摔倒。毕竟步子大了,容易扯着~~~~
注:有些同学可能会觉得松弛因子非常像时间步长,确实如此。可以说松弛因子是稳态计算的“隐式时间步长”。这个我们后面会详细说明
2.为什么需要松弛因子?
CFD求解的Navier-Stokes方程是强非线性的:
对流项∇·(ρvv)引起的速度变化会影响对流,而对流变化又影响速度,这一过程会形成强烈的耦合。如果不加控制,变量每一步更新幅度过大,就可能出现:
• 速度场振荡• 压力场不稳定• 湍流量直接炸成 NaN• 残差一秒跳到 10⁵ → “发散”
一个变量的小变化 → 其他变量的大变化→ 雪崩效应→ 数值不稳定
那应该怎么办呢?我们将变化量人为的给它减小。这样计算就会稳定很多。松弛因子的目的就是减小修正幅度, 避免"过度修正"。让求解过程更温和、更稳定。
注:如果有同学进行相变计算(比如蒸发、冷凝)也会发现这个问题。蒸发冷凝过程是强非线性的,很容易出现雪崩效应,就需要修改松弛因子。
3.物理意义与数值意义
3.1 物理意义
实际上松弛因子没有物理意义,松弛因子不来自物理世界,不参与能量、动量的守恒。只是我们用来帮助方程收敛的。
但是为了便于理解,我们可以把松弛因子想象成流体的“惯性”。
松弛因子小= 物理过程"惯性大"→ 流场不会瞬间改变→ 新值对旧值的影响有限
3.2 数值意义
从数值分析角度看,引入松弛因子相当于将求解非线性方程组的迭代法,改造为一种阻尼迭代法或逐次欠松弛法。
在稳态计算中,松弛因子类似于隐式的时间步长。
可以类比成走山路时,步子迈小一些更安全;但如果永远迈小步,那也到不了目的地。
4. 各变量对松弛因子的敏感性
我们前面说了,松弛因子是对物理量的变化量进行调节的。因此不同的物理量对松弛因子的敏感性不同。可以参考下表:
可以看到压力对松弛因子最敏感。这是因为压力通过SIMPLE算法修正:
如果压力修正不正确,就会导致速度场错误,进而使得质量不守恒 ,导致计算崩溃。 所以压力的松弛因子必须最保守!这也是Fluent求解控制界面默认的压力松弛因子最小的原因。
5.松弛因子应该怎么设置?
Fluent帮助手册提供了松弛因子的设置依据,这里给大家总结整理成方便理解的形式
5.1 大部分情况默认值即可
Fluent自带的各项默认松弛因子是经过大量算例反复试验得出的,对大多数流动问题都非常接近最优。正常情况下:默认值 ≈ 最佳值,计算初期不需要动
这也是最常见的原则:先相信默认值,再看情况调整。
5.2 降低松弛因子的情况
一般来说,运行前4~5 次迭代就能看出苗头:如果残差稳步下降,那说明松弛因子没问题。如果残差大幅度上升、越迭代越乱,就要警惕了。
松弛因子应该适当降低的典型情形包括:
高Rayleigh数自然对流(温度与密度耦合很强)高度非线性湍流问题压力、动量不稳定导致振荡残差从开局就疯狂升高
这类情况下,把松弛因子调小一点,那调小到多少呢??
下面是一个相对稳妥、也是工业界常用的设置范围(计算初期):
压力:从默认值降到约 0.2
动量(u、v、w):降到 0.5
湍流量 k、ε(或 ω):降到 0.5
温度:
常密度流动:可保持 1.0
强耦合流动(自然对流):可降至 0.5~0.8
注:使用 SIMPLEC 时,通常不需要降低压力的松弛因子。
6. 总结
松弛因子的本质,是让求解过程保持节奏与稳定。它不决定结果是否“物理正确”,但却决定你能不能顺利跑到结果。
无论是求解一个湍流方程,还是处理一项复杂工程,抑或是应对生活中的挑战,我们都要懂得何时需要“松弛”一下,控制好变化的节奏,这可能是一种被低估的智慧。