松弛因子怎么来的。

首先是动量方程松弛因子/[速度松弛因子]。因为求解[线性方程组](现在一般都是松弛迭代法,松弛迭代法自带一个松弛因子可以调节方程组收敛速度,用到[动量方程组]上的就是动量松弛因子 。相应的,湍流涡粘度模型会引入两个变量,也会有两个相应的松弛因子。

以[动量因子](为例,该因子在CFD中一般是这样存在的:
Pasted image 20231010113336.png

上面这个方程是网格 动量方程线性化以后的表达式。 表示某相邻网格, 代表线性化系数, 代表某速度, 代表网格体积, 代表除了速度项以外的所有项。这些系数实际上不是毫无关系的,在稳态情况下,运用[质量守恒方程,有C与F点的系数关系:

Pasted image 20231010113357.png

很特殊的是[压力松弛因子],是SIMPLE算法才有的。[SIMPLE类算法]在求解质量-动量方程组时,是按压力/速度增量( ′, ′ )求解的。本来这两增量关系按上面动量方程应该是:

Pasted image 20231010113411.png

但这个有个问题, ′ 和 ′ 都是求解变量,求到这一步时都不知道。Patankar的[标准SIMPLE算法]在这个地方直接舍去了 ′ 这一项。因为修正项最后都是零,取多少值只会影响收敛路径,不影响收敛结果。取消掉相邻点速度项以后,用压力增量代表速度增量,代入[质量方程],就能求出压力增量。但是由于把速度丢了一截,会导致这么搞出来的压力修正量要比真正的大一截。Patnkar解决方法是把求出来的压力修正量乘以一个0~1之间的常数去近似真值。这也是为什么要用增量而不是速度压力本身直接求解的原因。这个常数在SIMPLE类算法里称作压力松弛因子 。

压力松弛因子与动量松弛因子的关系。

在SIMPLE里,引入压力松弛以后有:

Pasted image 20231010113428.png

得:
Pasted image 20231010113437.png

做一个假设,即某点的速度可以由其余点按动量系数加权而来:
Pasted image 20231010113447.png

结合式(2)并代入式(5),得:

Pasted image 20231010113457.png

松弛因子的取值。

由于这动量和压力两个松弛因子有一定关系,只要决定动量迭代的因子就行了。可是超松弛迭代因子何时取最佳值,数学上没有结论。对于CFD问题,一般压力0.2或者0.3,动量0.7或0.8都行,没什么特别的要求。相应的[湍流模型]的两方程松弛因子 ,也是取程序默认值就行了。

结论

结论:没有规则,不用注意,用默认值。计算不收敛改模型参数或者网格绝对比你动松弛因子强。//最关键的是这个结论。

原文链接:`
(39 封私信 / 85 条消息) fluent松弛因子的调节规则是什么? - 知乎 (zhihu.com)