Fluent压力-速度耦合机制全解析

1. 介绍


压力速度耦合(Pressure-velocity Coupling)问题仅在基于压力求解器时才会出现,用于控制压力和速度的迭代方式。为什么会产生压力和速度耦合的问题呢?

这主要是因为动量方程中包含了压力场和速度场这两个未知数,而压力场没有单独的方程进行求解,因此求解过程需要先假定压力场,根据动量方程先求解出速度场,然后再使用连续性方程对压力场进行修正,修正的压力场再对速度场进行更新。

不同的压力速度耦合方式可以控制压力和速度更新顺序,比如分别更新segregated方式,或者同时更新Coupled方式


注:基于密度的求解器不需要考虑压力速度耦合问题,因为基于密度的求解器是可压缩流动,方程组中包含了理想气体状态方程,可用于求解压力


当勾选Density-Based后,Solution Methods界面不再出现Pressure-velocity Coupling选项



2. 算法类型


segregated算法和coupled算法主要不同的地方在于如何对压力进行修正

segregated算法主要有以下类型:


SIMPLE

SIMPLEC

PISO


coupled算法主要类型:

Coupled


3. 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算法可以明显加速收敛。


SIMPLEC算法涉及到网格的偏斜度修正Skewness Correction。当网格的Skewness(网格的一个质量标准)较大时,相邻网格的压力修正梯度即(p’c0-p’c1)并不准确,因此在压力修正后,需要重新计算压力修正梯度,并用于修正Jf。




网格偏斜度较大时,Skewness Correction可以显著地增加计算的收敛性。默认设置为0,表示不修正;大于0表示修正。


4. 适用情况


SIMPLE算法是默认设置,但大多数的问题使用 SIMPLEC算法更好,尤其是当亚松弛因子较大时。

对于简单问题,如不附加其他模型的层流问题,使用SIMPLEC算法,能够快速收敛。在SIMPLEC算法下,压力校正欠松弛因子通常设置为1.0,有助于加速收敛。


但是对于一些问题,将压力校正欠松弛因子增加到1.0可能会由于高网格偏度而导致收敛不稳定。在这种情况下,使用低欠松弛因子(如0.7)或者使用SIMPLE算法,可以帮助收敛。

对于复杂的问题,如湍流或者涉及到其他的物理模型,SIMPLE算法和SIMPLEC算法收敛速度基本相同。

通过以上分析,SIMPLE和SIMPLEC算法,优先选择SIMPLEC算法。



5. PISO算法


PISO算法是对SIMPLE算法的一种改进,是基于压力和速度修正之间的更高程度的近似关系。前面我们提过SIMPLE算法和SIMPLEC算法在对压力进行修正后,得到新的速度和通量是不满足动量方程的,需要重复计算直到满足动量守恒为止。

这种计算方式比较耗费资源。为了提高计算的效率,PISO算法在SIMPLE算法的基础上进行了两个额外的校正:neighbor correction和skewness correction。



5.1 Neighbor Correction


所谓的Neighbor Correction就是将SIMPLE算法和SIMPLEC算法所需的重复计算移动到压力修正方程中。


这使得计算时会多出一个或多个额外的PISO循环,但通过这种方式后,修正后的速度能够更接近地满足连续性方程和动量方程。


因此PISO算法在每次迭代中需要更多的CPU时间,但它可以显著减少收敛所需的迭代次数,特别是对于瞬态问题。

默认的设置都为1,表示考虑了修正。设置为0,表示不进行修正。



5.2 Skewness Correction

前面的SIMPLEC算法也提到过Skewness Correction,这里的Skewness Correction和前面的相同。当网格的Skewness(网格的一个质量标准)较大时,相邻网格的压力修正梯度即(p’c0-p’c1)并不准确,因此在压力修正后,重新计算压力修正梯度,并用于修正Jf。网格偏斜度较大时,Skewness Correction可以显著地增加计算的收敛性。默认设置为1,表示修正;设置为0,表示不进行修正。



5.3 Skewness - Neighbor Coupling

对于Skewness比较大的网格,同时进行Neighbor Correction和Skewness Correction的修正可能会导致发散或稳定性不好。

PISO的一种处理方式是对每个迭代步的Neighbor Correction应用一次或多次Skewness Correction。这种方式会耗费更多的资源,但也会使得压力速度修正更加准确。


5.4 适用条件


1) 对于所有瞬态计算,强烈推荐使用带有neighbor correction的PISO算法,特别是当使用较大的时间步长时(Fluent帮助文档)。PISO对于较大的时间步长,高松弛因子如动量和压力的亚松驰因子为1.0,可以保持计算的稳定性。

2) 对于LES湍流模型,一般需要使用较小的时间步长,使用PISO会增加计算成本,可以使用SIMPLE或者SIMPLEC算法。

3) 对于稳态问题,带有neighbor correction的PISO算法与SIMPLE和SIMPLEC算法没有任何明显的优势。

4) 无论稳态还是瞬态,只要网格歪斜度较大,都推荐使用带有skewness correction的PISO算法

5) skewness correction的应用

如果使用带有neighbor correction的PISO算法,则所有方程的亚松驰因子都可以调整到1.0或者接近1.0;

如果使用带有skewness correction而不带有neighbor correction的PISO算法,推荐将动量方程和压力方程的亚松驰因子之和设置为1.0,如动量设置为0.7,压力设置为0.3。

对于大多数问题,不需要禁用Skeweness-Neighbor coupling。但是对于高歪斜度网格问题,建议不勾选Skeweness-Neighbor coupling。


6. Coupled算法


基于压力的分离算法(SIMPLE算法、SIMPLEC算法和PISO算法)分别求解了动量方程和压力修正方程,这种半隐式算法收敛速度较慢。

耦合算法(Coupled)同时求解动量方程和连续性方程。通过对动量方程中压力梯度项和面质量通量的隐式离散,可以实现一种全隐式的算法。


Coupled算法中动量方程中的压力梯度项离散形式


动量方程可以离散为


连续性方程的离散形式


最终,这个控制方程可以写成矩阵的形式


其中的A,X和B分别为


Coupled算法可以通过一组方程可以直接耦合求解,而不需要像SIMPLE算法那样分开求解压力和速度。

Coupled算法相较于分离方法有一定的优点,对于稳态单相问题,此算法更稳定、高效。

在某些情况下,使用多孔跳跃边界条件,耦合算法可能会遇到收敛问题。如果遇到这种情况,建议更换分离式算法。



6.1 不勾选Pseudo Transient


选择Coupled算法,而没有勾选Pseudo Transient。需要在Solution Controls界面设置库朗数,默认值200。


需要设置显式松弛因子Explicit Relaxation Factors,默认为0.5。如果网格歪斜度较大,可将值设置为0.25以增强收敛。

如果出现diverges in the AMG solver这种发散信息,说明库朗数过高,需要降低。但不建议将库朗数降低到10以下,可以将Coupled算法更改为分离算法。

在大多数瞬态计算中,CFL数应该设置成很大的数如10^7,而显式松弛因子设置为1.0


6.2 勾选Pseudo Transient


需要对伪瞬态进行设置

总结:对于稳态问题,推荐使用SIMPLEC算法。而对于稳定单相流问题,推荐使用Coupled算法(勾选伪瞬态可以大大加快收敛);对于瞬态问题,推荐使用PISO算法。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空