导读:如何用SIMPLE算法求解不可压Navier-Stokes方程。N-S方程数值求解的困难性-什么是SIMPLE算法-SIMPLE算法如何求解能量、湍流、组分输运方程。
首先回顾一下不可压Navier-Stokes方程的形式。
第一个方程为不可压连续方程,第二方程包括三个动量方程。
方程中的压强 为运动压强, 为运动粘度。为了简便起见,这里的方程不考虑非稳态项。所以,这里我们有四个方程和四个未知量(速度的三个分量、压强)。
既然有四个方程四个未知量,为什么N-S方程会难解呢?主要有以下几点:
(1)我们有 的方程, 但是没有对应压强 的方程;
(2)由动量方程计算得到的速度场( )必须满足连续性方程,意味着动量方程必须满足连续性方程的约束;
(3)动量方程中的对流项( )是非线性的。
(4)当密度和温度是常数时(比如不可压等温流),没有状态方程来求解压力 (比如 )。因此我们必须找到另外一种方法。
SIMPLE算法的核心在于:
(1)从动量方程及连续方程推导得到压力的方程;
(2)推导速度场的校正器,使其满足连续性方程。
接下来我们要采用简单的方式来推导这些方程。
首先将动量方程表达成矩阵形式:
为系数矩阵,采用有限体积法/有限单元法,从动量方程的微分项分解得到,这些系数是已知的。这种形式的方程也称为半离散形式方程。举个例子,如果我们考虑x方向的分量,则方程可以表示为:一共有n个方程,对应每个网格中心点; 为已知量,由于篇幅限制,对于 的求解这里不作展开。
下一步就是将矩阵的系数分离成对角线和非对角线分量:
为矩阵 的对角线,其形式为:因此,现在我们有四个未知方程四个未知变量 。
这里唯一的不同是拥有了压力的方程。## SIMPLE算法的求解流程1.根据动量方程求解速度场,这里的速度场并不满足连续方程:2.根据泊松方程求解压力场:
3.根据压力场去修正速度场,使其满足连续性方程: 4.修正后的速度场如果仍不满足连续性方程,就需要重新第一步,进行循环。因此SIMPLE算法是一个迭代的过程,对速度场进行预测,再通过压力场进行修正。因此SIMPLE算法也称为压力修正算法。
经过体积通量校正后,在SIMPLE算法内求解了能量( )、湍流( )和组分输运方程。
从动量方程开始,求解速度场,然后计算压力场,在通过压力场修正速度场,然后我们可以计算出输运方程中的能量、湍流参数,更新涡粘参数,就又回到动量方程的循环当中。
最后,我们总结以下SIMPLE算法的几个特点1.SIMPLE算法是“压力基”算法,因为需要通过泊松方程求解压力场;2.在一个非等温流动中,密度是通过状态方程求解( );3.在求解可压缩流时,"密度基"算法也是可用。在基于密度的算法中我们要做的是反过来,求解连续性方程,计算密度场,再计算动量方程;4.在这些算法中,密度是直接通过连续方程求解得到,压力是通过状态方程求解( )。
参考文献:Jasak H . Error Analysis and Estimation for the Finite Volume Method With Applications to Fluid Flows[J]. Imperial College London, 1996, m(8):A385.