1.6 CFD求解计算的方法
流场计算求解的本质是对离散方程组的求解。离散方程组的求解方法包括耦合求解法和分离求解法两种,具体如图1-5所示。
图1-5 离散方程组的求解方法
1.6.1 耦合求解法
耦合求解法最大的特点为联立求解离散方程组以获得各变量值(u、v、w、p),具体求解过程如下:
① 假定初始压力和速度,确定离散方程的系数和常数项。
② 联立求解连续方程、动量方程和能量方程。
③ 求解湍流方程及其他方程。
④ 判断当前时间步上的计算是否收敛。如不收敛,返回至第二步,进行迭代计算;如收敛,重复以上步骤,计算下一时间步的各物理量值。
耦合求解法可分为隐式求解法(所有变量整场联立求解)、显隐式求解法(部分变量整场联立求解)和显式求解法(在局部区域,如某个单元,对所有变量联立求解)。对于显式求解法,在求解某个单元时,通常要求相邻单元的物理量值已知。
耦合求解法计算效率低,内存消耗大。当流体的密度、能量和动量存在相互依赖关系时,采用耦合式解法具有较大优势,适于高速可压流动等。在耦合求解法中,隐式求解法应用较为普遍,而显式求解法仅用于动态性极强的场合,如激波捕捉等。
1.6.2 分离求解法
分离求解法不直接求解联立方程组,而是按照顺序逐个求解各变量的离散方程组。根据是否直接求解原始变量(u、v、w、p),又可分为非原始变量法和原始变量法两大类。
非原始变量法包括涡量-流函数法和涡量-速度法两种。
涡量-流函数法不直接求解原始变量u、v、w和p,而是求解旋度ω和流函数Ψ;涡量-速度法不直接求解流场的原始变量p,而是求解旋度ω和速度u、v、w。这两种方法的共同点为:
① 方程中不出现压力项,可避免因求解压力带来的问题。
② 由于三维流动不存在流函数,不易扩展到三维情况。
③ 对于固壁面边界计算,其上的旋度极难确定,没有适宜的固体壁面上的边界条件,往往使得涡量方程的数值解发散或不合理。
原始变量法包括压力泊松方程法、人工压缩法和压力修正法等。
压力泊松方程法通过对方程取散度,将动量方程转变为泊松方程,然后求解泊松方程。人工压缩法主要是受到可压缩性气体可以通过联立求解速度分量与密度的方法来求解的启发,引入人工压缩性和人工状态方程,以此对不可压流体的连续性方程进行修正,并引入人工密度项,将连续性方程转化为求解人工密度的基本方程。但这种方法要求时间步长必须很小,因而限制了其应用范围。
压力修正法是目前工程上使用最为广泛的流场求解计算方法。此方法实质是迭代法,即在每一时间步长的运算中,先给出压力场的初始值,进而求出速度场。再求解根据连续方程导出的压力修正方程,对假设的压力场和速度场进行修正。如此循环往复,以求得压力场和速度场的收敛解。
压力修正法有多种实现方式,其中,压力耦合方程组的半隐式方法(SIMPLE算法)应用最为广泛,也是各种CFD软件普遍采用的算法。
1.6.3 SIMPLE算法
SIMPLE算法(Semi-Implicit Method for Pressure-Linked Equations)是一种半隐式分离求解法,也是目前最常用的基于有限体积法的求解方法。其基本思想是利用计算网格把流动区域分为离散的控制体积;在每个控制体积上积分控制方程,形成诸如速度、压力、温度等的未知离散变量的代数方程;把离散的非线性方程组线性化;求解该方程组,得到更新的变量值。在此,把数值解定义在网格中点(格心)上。在离散方程时,对流项采用二阶迎风格式,黏性项采用二阶中心差分格式。
每一次计算迭代的步骤如下:
① 计算结果是在目前的基础上不断更新。开始时,计算变量以初始流场为基础更新计算。
② 利用目前的压力值和表面质量流量,依次求解三个速度分量u、v、w的动量方程,以获得新的速度流场。
③ 由于新获得的速度流场可能不满足连续方程,这时求解由连续方程和动量方程线性化而推导出来的压力纠正方程,从而对压力、速度场和表面质量流量产生必要的纠正,以满足连续方程。
④ 利用其他变量更新的数值求解湍流模型方程及辐射方程。
⑤ 检查方程的收敛精度是否满足要求。
如果不满足收敛精度,重新迭代计算,直到满足收敛精度为止。