有限体积法及其网格简介
有限体积法使目前CFD领域广泛使用的离散化方法,其特点不仅表现在对控制方程的离散结果上,还表现在所使用的网格上。
1.有限体积法的基本思想
有限体积法(Finite Volume Method)又称为控制体积法(Control Volume Method),其基本思路是:将计算区域划分为网格,并使每一个网格点周围有一个互不重复的控制体积;将待解微分方程(控制方程)对每一个控制体积积分,从而得出一组离散方程。其中的未知数是网格点上的因变量。为了求出控制体体积的积分,必须假定因变量的值在网格点之间的变化规律。从积分区域的选取方法看来,有限体积法属于加权余量法中的子域法,从未知解的近似方法来看,有限体积法属于采用局部近似的离散方法。简言之,子域法加离散,就是有限体积法的基本方法。
有限体积法得出的离散方程,要求因变量的积分守恒对任意一组控制体积都得到满足,对整个计算区域,自然也得到满足,这就是有限体积法的优点。而有限差分法仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法既使在粗网格情况下,也显示出准确的积分守恒。
2.有限体积法所使用的网格
有限体积法的核心体现在区域离散方式上,区域离散化的实质就是用有限个离散点来代替原来的连续空间。有限体积法的区域离散实施过程是:把所计算的区域划分为多个互不重叠的子区域,即计算网格(grid),然后确定每个子区域中的节点位置及该节点所代表的控制体积。区域离散化过程结束后,可以得到以下四种几何要素:
l 节点(node):需要求解的未知物理量的几何位置。
l 控制体积(control volume):应用控制方程或守恒定律的最小几何单位。
l 界面(face):它规定了与各节点相对应的控制体积的分界面位置。
l 网格线(grid line):联结相邻两节点而形成的曲线簇
我们把节点看成是控制体积的代表,在离散过程中,将一个控制体积上的物理量定义并存储在该节点处。下图是一维和二维有限体积法计算网格。
在上面两图中,节点排列有序,即当给出一个节点的编号后,立即可以得出其相邻节点的编号。这种网格称为结构网格(structured grid)。非结构网格(unstructured grid)的节点以一种不规则的方式布置在流程中,虽然生成较复杂,却有着极大的适应性。
3.求解一维稳态问题的有限体积法
无论是连续性方程、动量方程还是能量方程,都可以写成如下的通式。一维问题的控制方程:
称之为一维模型方程,方程中包含对流项、扩散项及源项。方程中的Φ是广义变量,可以为速度、温度或浓度等一些待求的物理量,Г是相应于Φ的广义扩散系数,S是广义源项。变量Φ在端点A和B的边界值为已知。
这里给出的是方程的守恒形式,这是因为采用有限体积法建立离散方程时,必须使用守恒形式。应用有限体积法求解方程所对应的对流-扩散问题,主要步骤如下:
1. 在计算区域内生成计算网格,包括节点及其控制体积。
2. 将守恒型的控制方程在每个控制体积上做积分(积分时要用到界面处未知量Φ及其导数的插值计算公式,即离散格式),得到离散后的关于节点未知量的代数方程组。
3. 求解代数方程式,得到个计算节点的Φ值。
生成计算网格
有限体积法的第一步是将计算域划分为离散的控制体积,在点A和点B之间的空间域上放置一系列的节点,将控制体积的边界(面)取在两个节点中间得位置,这样,每个节点由一个控制体积所包围。
建立离散方程
有限体积法关键一步是在控制体积上积分控制方程,以在控制体积节点上产生离散的方程,对一维模型方程,在图中所示的控制体积上坐积分,有:
其中△V是控制体积的体积值,当控制体很微小时,△V可以表示为△x•A,这里A是控制体积界面的面积,从而有:
上式中对流项和扩散项均已转化为控制体积界面上的值,有限体积法最显著的特点之一就是老师方程中具有明确的物理插值,即界面的物理量要通过插值的方式由节点的物理量表示。
为了建立所需要形式的离散方程,我们需要找出如何表示界面e和w处的ρ、u、Γ、Φ和,有限体积法规定,ρ、u、Γ、Φ和等物理量均是在节点处定义和计算的。因此,为了计算界面上的这些物理参数,需要有一个物理参数在节点间的近似分布,可以想象,线性近似是可用来计算界面特性值的最直接、也是最简单的方式。这种分布叫做中心差分。如果网格是均匀的,则单个物理参数的线性插值结果是:
与梯度项相关的扩散通量的线性插值结果是:
对于源项S,它通常是时间和物理量Φ的函数,为了简化处理,经常将S转化为如下线性方式:
其中Sc是常数,Sp是随时间和物理量变化的项,将以上线性插值的结果代回方程可得:
整理后得:
记作:
对于一维问题,控制体积界面e和w处的面积A均为1,即单位面积,△V=△X.
离散方程的求解
为了求解所给出的流体流动问题,必须在整个计算域的每个节点上建立离散方程,从而每个节点有一个对应的方程,这些方程组成一个含有节点未知量的线性代数方程组,求解这个方程组就可以得到物理量在各节点处的值。理论上,任何可用于求解代数方程组的方法:Gauss消去法都可以完成上述任务。