高阶有限差分法求解可压缩流体的典型步骤
北京理工大学 | 李明健
有限差分法(Finite difference method,FDM)是计算流体力学中常用的数值方法,下面介绍其求解可压缩流体问题的典型过程(感谢我的学生于荣岳对本文公式整理做出的贡献)。
考虑无粘、可压缩的理想流体,给出以下欧拉方程:
其中:
其中 是密度,, , 分别为流体在 , , 方向的速度, 为压力, 为单位质量的总能量,写为内能和动能之和:
以上方程需要状态方程进行封闭,对于气、水混合介质,可采用以下状态方程:
其中 , 时,退化为理想气体状态方程,, Pa 时退化为水的 Tait 状态方程。
流体声速满足以下形式:
现在,我们需要构造有限差分格式,对式(1)进行求解。首先对其进行空间离散,得到 节点上的半离散格式如下:
采用通量分裂方法,进一步得到以下形式:
其中, 和 是对通量 分裂得到的正、负通量,其他同理。
Lax-Friedrichs 通量分裂算法在界面处添加人工粘性项,从而抑制高频振荡,提高稳定性。以 方向为例,通量 分裂为:
其中 是 的最大特征值,通过:
得到局部最大特征值,, 方向同理,采用 和 求解最大特征值,并对通量 , 进行分裂。
为抑制高分辨率下激波和接触间断引起的非物理振荡,采用 5 阶 WENO(Weighted Essentially Non-Oscillatory)格式对通量进行重构。以式(7)中 方向通量为例,正通量 的重构需要用到 ,,,, 五个模板点的值:
而负通量 的重构则需要用到 ,,,, 五个模板点的值:
正负通量加和则得到式(6)中的 作为总通量。同理,得到所有通量后,即得到式(6)完整的半离散格式。式(10)和(11)中的权系数具体取值参考舒其望的论文。
三维问题有 5 个独立变量,均可由守恒变量 表示。同时 , , 也可由 表示,因此可将半离散的方程(7)简写为:
其中, 为空间离散算子。
采用三阶 Runge-Kutta 法对时间进行离散,即可得到全离散格式:
每个时间步分为三个子步,每个子步内的求解流程如下:
更新声速,式(5):根据 , 得到声速 ;
更新能量,式(4):根据 , 得到内能 ;式(3):根据 , , , , , 得到总能量 ;
更新守恒变量和通量,式(2):根据 , , , , , 得到守恒变量 和通量 , , ;
通量分裂,式(9):根据 , , , 得到特征值 ;式(8):根据 , , , , 得到 ;
WENO重构,式(10)(11)(7)(12):根据 得到 ;
时间推进:式(13):根据 , 得到更新的 ;
返回原始变量:式(2)(3)(4):根据 更新 , , , , , , 。
重复以上步骤,即可完成求解。