▌ 一、介绍
压力速度耦合(Pressure-velocity Coupling)问题仅在基于压力求解器时才会出现,用于控制压力和速度的迭代方式。为什么会产生压力和速度耦合的问题呢?
这主要是因为动量方程中包含了压力场和速度场这两个未知数,而压力场没有单独的方程进行求解,因此求解过程需要先假定压力场,根据动量方程先求解出速度场,然后再使用连续性方程对压力场进行修正,修正的压力场再对速度场进行更新。
不同的压力速度耦合方式可以控制压力和速度更新顺序,比如分别更新segregated方式,或者同时更新Coupled方式。
注:基于密度的求解器不需要考虑压力速度耦合问题,因为基于密度的求解器是可压缩流动,方程组中包含了理想气体状态方程,可用于求解压力。
当勾选Density-Based后,Solution Methods界面不再出现Pressure-velocity Coupling选项。
▌ 二、算法类型
segregated算法和coupled算法主要不同的地方在于如何对压力进行修正
segregated算法主要有以下类型:
SIMPLE
SIMPLEC
PISO
coupled算法主要类型:
Coupled
▌ 三、SIMPLE和SIMPLEC算法
先介绍两种segregated算法SIMPLE和SIMPLEC算法。
3.1 SIMPLE算法
SIMPLE算法使用速度和压力修正之间的关系来满足质量守恒,同时获得压力场。
先假设初始的压力场p*,通过动量方程可以求得面质量流量Jf*。(上标*表示为假设值)
但由于上述的压力场是假设的,因此求得的Jf*是不满足质量守恒方程的,需要对其进行修正,Jf’表示修正项,则修正后的真实值Jf为(上标’表示修正值)
经过修正后,Jf满足质量守恒方程。SIMPLE算法中假设修正项Jf’公式为
其中的c0及c1即相邻的网格cell
SIMPLE算法通过对质量守恒方程进行推导可得到压力修正方程,p’为压力修正项
因此压力真实值p为
为了加强收敛性,对p’进行一定的缩小乘以系数αp
αp即为下图中的亚松弛因子,参考文章
3.2 SIMPLEC算法
SIMPLEC算法与SIMPLE算法的流程基本相同,所不同的是对Jf的修正,修正公式如下:
这种修正方式可以加速收敛。
SIMPLEC算法涉及到网格的偏斜度修正Skewness Correction。当网格的Skewness(网格质量标准)较大时,相邻网格的压力修正梯度即(p’c0-p’c1)并不准确,因此在压力修正后,需要重新计算压力修正梯度,并用于修正Jf。
网格偏斜度较大时,Skewness Correction可以显著地增加计算的收敛性。默认设置为0,表示不修正;大于0表示修正。
▌ 四、适用情况
SIMPLE算法是默认设置,但大多数的问题使用 SIMPLEC算法更好,尤其是当亚松弛因子较大时。
对于简单问题,如不附加其他模型的层流问题,使用SIMPLEC算法,能够快速收敛。在SIMPLEC算法下,压力校正欠松弛因子通常设置为1.0,有助于加速收敛。
但是对于一些问题,将压力校正欠松弛因子增加到1.0可能会由于高网格偏度而导致收敛不稳定。在这种情况下,使用低欠松弛因子(如0.7)或者使用SIMPLE算法,可以帮助收敛。
对于复杂的问题,如湍流或者涉及到其他的物理模型,SIMPLE算法和SIMPLEC算法收敛速度基本相同。
通过以上分析,SIMPLE和SIMPLEC算法,优先选择SIMPLEC算法。