在Fluent中,求解(Solution)设置的Methods一直是神秘的存在,很多时候我们不知道怎么选就按默认设置,或者只对算法进行选择,虽然大多数求解出现问题不是因为算法精度设置不合理造成的,但也为了证明这些选项设置的非重要性,我完全参考User's Guide和Theory Guide整理了这篇Pressure-Based下的Methods基础选项解读,希望能帮助大家理解!
前言
本文侧重于对Fluent中的各个设置选项进行使用指导的解读,理论部分就不搬运了,有兴趣的大佬可以自行到help中学习。
基于压力的求解器(Pressure-Based)
Fluent提供两种不同的求解器,基于压力的求解器(Pressure-Based)和基于密度的求解器(Density-Based),压力基求解器也叫分离式求解器(Segregated Solver),密度基求解器也叫耦合式求解器(Coupled Solver),本文只对压力基求解下的Methods进行整理。
基于压力的求解器采用的是一种称为投影法(projection method)的一般方法类。在投影方法中,速度场的质量守恒(连续性)的约束通过求解压力(或压力校正)方程来实现;压力方程由连续性方程和动量方程推导而来,通过压力校正的速度场满足连续性;由于控制方程是非线性的并且彼此耦合,所以求解过程涉及迭代,其中重复求解整个控制方程组,直到解收敛。
Fluent中提供了两种基于压力的求解器算法:分离算法(The Pressure-Based Segregated Algorithm)和耦合算法(The Pressure-Based Coupled Algorithm)。
ps:这里的耦合算法要区别于密度基的耦合式求解
分离算法(The Pressure-Based Segregated Algorithm)
概念:
基于压力的分离算法按照顺序求解其中控制方程(即对控制方程组彼此分离求解),由于控制方程是非线性和耦合的,因此必须迭代执行解循环以获得收敛的数值解。在分离算法中,解变量(例如压力项、温度项、速度项等)单独控制方程一个接一个地求解,每个控制方程在求解时都与其他方程“解耦”或“分离”,因此得名。分离算法是实时储存的,因为离散化方程只需要一次存储一个,然而,由于方程是以解耦的方式求解,所以解的收敛速度相对较慢。
求解思路:
1、基于当前方案流体的属性(e.g. 密度、粘度、比热),包括湍流粘度(扩散率)进行更新
2、使用最新的压力和面质量通量值,逐个求解动量方程
3、使用最新获得的速度场和质量通量求解压力校正方程
4、使用上述步骤获得的压力,校正面质量通量、压力和速度场
5、使用当前求解所得的变量值求解附加(如有)方程,如湍流量、能量、物料和辐射强度
6、更新由不同相位之间的相互作用产生的源项(例如,离散粒子引起的载流子相位的源项)
7、检查方程的收敛性
耦合算法(The Pressure-Based Coupled Algorithm)
概念:
基于压力的耦合算法求解包括动量方程和基于压力的连续性方程的耦合方程组。因此,在耦合算法中,分离解算法中的步骤2和3由求解耦合方程组的单个步骤代替。其余方程以分离算法中的解耦方式求解;由于动量和连续性方程以紧密耦合的方式求解,与分离算法相比,解的收敛速度显著提高。然而,由于在求解速度场和压力场时,所有基于动量和压力的连续性方程的离散系统必须存储在存储器中(而不是像分离算法那样仅存储一个方程),因此,存储需求增加了分离算法的1.5-2倍。
压力-速度耦合(Pressure-Velocity Coupling)
Fluent提供了五种压力-速度耦合算法的选择:SIMPLE、SIMPLEC、PISO、Coupled和(对于使用非迭代时间推进方案(NITA)的非定常流)分步(FSM)。除Coupled算法外,所有上述方案均基于预测-校正方法。
分离算法(Segregated Algorithms)
原理即分离求解的流程,可以概括为预测-校正。
2. SIMPLEC
求解思路同SIMPLE,唯一区别在于对面通量引入一个修正函数进行修正,主要解决了压力-速度耦合方法难以获得解的问题,提高了收敛的速度。
3. PISO
压力隐式算子分离法,更大提升了压力和速度之间的近似程度,通过引入两个校正指标:neighbor correction & skewness correction,解决了分离算法中,求解压力校正方程后,速度和相应的通量不满足动量平衡的问题。
耦合算法(Coupled Algorithm)
1. Coupled
这种基于压力的耦合算法为Density-Base和Pressure-Base两者提供了一种共同的替代方案,具有简单类型的压力-速度耦合。分离算法是分别求解动量方程和压力修正方程的半隐式解法,它导致的问题是收敛速度变慢;耦合算法一起求解基于动量和压力的连续性方程,通过对动量方程中的压力梯度项进行隐式离散,以及对面质量通量(包括Rhie-Chow压力耗散项)进行隐式的离散,实现了全隐式耦合。
算法对比与指导
1、针对稳态计算:建议使用Coupled算法
原因:分离算法的优势是每次迭代至收敛的速度更快,耦合算法的优势用更少的迭代实现收敛。
2、针对瞬态计算:
Coupled算法的优势是鲁棒性好(尤其是大时间步长的情况),但如果time step较小,SIMPLE和PISO的整体求解时间更快。
3、SIMPLE和SIMPLEC的选用指导
1)SIMPLE和SIMPLEC的算法基本是一致的,SIMPLEC理论优势是提升收敛速度,但带来的是欠松弛问题
2)求解相对简单的流动(层流,且不添加其他模型)时,SIMPLCE可以快速获得收敛解
如果用SIMPLEC算法,松弛因子下的pressure校正通常设置为1.0,这有助于加快收敛速度。然而,在某些问题中,将松弛下的压力校正增加到1.0可能会由于高网格偏斜而导致不稳定。对于这种情况,需要使用一个或多个偏度校正的方法,可以稍微下调欠松弛因子(最多到0.7),或使用SIMPLE算法。
3)求解湍流以及附加了其他物理模型的复杂流动,SIMPLE和SIMPLCE的收敛速度差别不大
4)SIMPLEC开启后需要选择使用Skewness Correction的个数,默认是0
4、PISO的选用指导
使用建议:
1)具有大时间步长的瞬态计算,强烈推荐使用带Neighbor Correction的PISO算法。PISO算法可以在较大的时间步,设置Pressure和Momentum松弛因子为1.0的情况下保持稳定计算
2)使用LES湍流模型的问题(通常用较小的时间步长)和稳态计算中,PISO算法没有明显优势,建议使用SIMPLE或SIMPLEC
3)高度畸变网格的稳态和瞬态计算,建议使用带Skewness Correction的PISO算法
操作指导:
1)使用带Neighbor Correction的PISO时,建议所有方程的松弛因子为1.0或接近1.0
2)使用带Skewness Correction的PISO时,动量和压力的松弛因子的和应设置为1(e.g. Pressure为0.3,Momentum为0.7)
3)同时使用两种校正的PISO时,遵循带Neighbor Correction的PISO的建议
4)Skewness-Neighbor Coupling是默认开启的,大多数情况不必禁用,如果网格高度扭曲建议禁用
5)开启PISO后可以设置基于Skewness校正还是基于Neighbor校正,1为开启,0为关闭,默认是耦合状态(两个都是1)大多数情况不建议更改,因为这是为了计算速度更快,但其鲁棒性是有所牺牲的
5、Coupled的选用建议
1)使用多孔跳跃边界条件的某些情况下,耦合方案可能会遇到收敛问题
2)更适合于稳态的计算,因为它的优势就是计算单相流动的鲁棒性强
3)使用Coupled但不开启伪瞬态,需要对Courant数、pressure和momentum的松弛因子进行一些设定(可参考Theory Guide)
通量类型(Flux type)
(对于基于压力的解算器)提供了质量流量类型的下拉列表:Rhie Chow--基于距离,Rhie Chow--基于动量。该选项涉及连续性方程离散化。多相流模型(除湿蒸汽模型)该选项默认为基于动量的Rhie Chow。
如果启用自动选择,Fluent将默认可压缩流体选择基于距离的Rhie Chow,不可压缩流体选择基于动量的Rhie Chow。
1)Rhie Chow--基于距离
2)Rhie Chow--基于动量(湿蒸汽模型以外的多相模型默认基于动量)
空间离散化(Spatial Discretization)
涉及控制方程中对流项的空间离散
梯度格式(Gradient)
概念:
梯度不仅用于构造单元面上的标量值,还用于计算二阶扩散项和速度导数,给定变量的梯度用于离散动量方程中的对流和扩散项。
分类:
1)Green-Gauss Cell-Based 格林-高斯基于单元
该方法的优势就是易于实现,因为涉及的操作都是基于面的,不需要任何额外的网格连接,但梯度通常无法达到二阶精度,尤其是高度倾斜的非结构网格,精度随倾斜度增加而降低(源:CFD Online)。
2)Green-Gauss Node-Based 格林-高斯基于节点
通过求解约束最小化问题,从任意非结构网格上的周围单元中心值重建节点处线性函数的精确值,保持二阶空间精度。精度高于基于单元的梯度,尤其针对非结构网格,但计算成本也更高。
3)Least Squares Cell-Based 基于单元体的最小二乘法(Default)
针对非结构网格,该方法与基于节点的梯度法相当,但计算成本更低。
压力项(Pressure)
1)Linear 线性格式
2)Standard 标准格式
当出现大体积力的流动(如强旋流、高瑞利数的自然对流)时,求解精度会降低。
3)Second Order 二阶格式
默认的插值方案(Mixture/VOF多相流模型不可用),准确性比Linear和Standard更高。
4)PRESTO 预压交错格式
Mixture/VOF模型的默认插值格式,主要适用于高旋流、压力急剧变化流动(多孔介质、风扇模型)或剧烈弯曲位置。
5)Body Force Weighted 体积力加权格式
对于欧拉多流体VOF中体积力占优势,并且网格正交性有很大偏离的情况,Body Force Weighted 比 PRESTO更稳健(Ps:当案例中包含多孔介质时,体积力加权方案仅应用于无孔面,该方案考虑了显性体积力(例如重力,旋涡,科里奥利)的不连续性和密度快速变化流(例如自然对流,VOF)的压力梯度变化不连续性。所有内部和外部多孔面都经过特殊处理,尽管阻力不连续,但仍可保持跨孔面法向速度的连续性)。
其他项离散格式
Momentum 动量方程 & Turbulent Kenitic Energy 湍动能 & Turbulent Dissipation Rate 湍流耗散率 & Energy 能量项,以上各项可选用的离散格式如下:
1、First Order Upwind 一阶迎风格式
当流动的方向和网格是对齐的(如用四边形或六面体网格模拟方形管道中的层流流动),一阶迎风格式是可以接受的。
当流动的方向和网格是不对齐的(如流动倾斜的穿过网格截面线),一阶的迎风格式会增大数值离散误差(数值扩散),对于三角形和四面体网格,流动是不会和网格对齐的,一般应该使用二阶格式以获得更准确的结果。
2、Second Order Upwind 二阶迎风格式
对于四边形和六面体网格,使用二阶离散格式也能获得更好的结算结果,特别是复杂流动条件下。
3、QUICK 格式
通常在与流动方向对齐的结构化网格上更为准确。
4、Third Order MUSCL 三阶MUSCL格式
适用于任意网格。与二阶迎风格式相比,三阶MUSCL有可能通过减少数值扩散来提高所有类型网格的空间精度,尤其是对于复杂的三维流动,并且它适用于所有传输方程。
总体来说:一阶的收敛性更好,但准确性稍差,尤其是三角形网格或四面体网格是;二阶的精度更高,但在一些问题上会有收敛性问题,QUICK格式仅适用于结构化网格,MUSCL虽然理论上能够提高精度,但在结果准确性上的提升不会很大,所以通常用二阶精度即可。
瞬态公式(Transient Formulation)
对于大多数问题,First Order Implicit就足够了,如果需要提高精度,可以使用Second Order Implicit或Bounded Second Order Implicit。Bounded Second Order Implicit将提供更好的稳定性,因为时间离散化将确保某些变量的全局边界(如果可用)。
Bounded Second Order Implicit在较大时间步下,不能确保所有变量的完全有界解,可能会导致overshoots 或 undershoots。
在使用species transport model, the population balance model和energy equation模型时, 可以用用TUI控制energy, species transport, and/or population balance equation用一阶精度,其他用二阶边界精度(命令见User's Guide—>solve/set/second-order-time-options)。