计算流体力学常用的五大类数值方法简介(转)
流体力学数值方法有很多种,其数学原理各不相同,但有二点是所有方法都具备的,即离散化和代数化。总的来说其基本思想是:将原来连续的求解区域划分成网格或单元子区域,在其中设置有限个离散点(称为节点),将求解区域中的连续函数离散为这些节点上的函数值;通过某种数学原理,将作为控制方程的偏微分方程转化为联系节点上待求函数值之间关系的代数方程(离散方程),求解所建立起来的代表方程以获得求解函数的节点值。
不同的数值方法,其主要区别在于求解区域的离散方式和控制方程的离散方式上。在流体力学数值方法中,应用比较广泛的是有限差分法、有限元法、边界元法、有限体积法和有限分析法,现简述如下。
有限差分法
这是最早采用的数值方法,它是将求解区域划分为矩形或正交曲线网格,在网格线交点(即节点)上,将控制方程中的每一个微商用差商来代替,从而将连续函数的微分方程离散为网格节点上定义的差分方程,每个方程中包含了本节点及其附近一些节点上的待求函数值,通过求解这些代数方程就可获得所需的数值解。
有限差分法的优点是它建立在经典的数学逼近理论的基础上,容易为人们理解和接受;有限差分法的主要缺点是对于复杂流体区域的边界形状处理不方便,处理得不好将影响计算精度。
有限元法
有限元法的基本原理是把适定的微分问题的解域进行离散化,将其剖分成相连结又互不重叠的具有一定规则几何形状的有限个子区域(如:在二维问题中可以划分为三角形或四边形;在三维问题中可以划分为四面体或六面体等),这些子区域称之为单元,单元之间以节点相联结。函数值被定义在节点上,在单元中选择基函数(又称插值函数),以节点函数值与基函数的乘积的线性组合成单元的近似解来逼近单元中的真解。
利用古典变分方法(里兹法或伽辽金法)由单元分析建立单元的有限元方程,然后组合成总体有限元方程,考虑边界条件后进而求解。由于单元的几何形状是规则的,因此在单元上构造基函数可以遵循相同的法则,每个单元的有限元方程都具有相同的形式,可以用标准化的格式表示,其求解步骤也就变得很规范,即使是求解域剖分各单元的尺寸大小不一样,其求解步骤也不用改变,这就为利用计算机编制通用程序进行求解带来了方便。
有限元法的主要优点是对于求解区域的单元剖分没有特别的限制,因此特别适合处理具有复杂边界流场的区域。
边界元法
边界元法是在经典积分方程和有限元法基础上发展起来的求解微分方程的数值方法,其基本思想是:将微分方程相应的基本解作为权函数,应用加权余量法并应用格林函数导出联系解域中待求函数值与边界上的函数值与法向导数值之间关系的积分方程;令积分方程在边界上成立,获得边界积分方程,该方程表述了函数值和法向导数值在边界上的积分关系,而在这些边界值中,一部份是在边界条件中给定的,另一部份是待求的未知量,边界元法就是以边界积分方程作为求解的出发点,求出边界上的未知量;在所导出的边界积分方程基础上利用有限元的离散化思想,把边界离散化,建立边界元代数方程组,求解后可获得边界上全部节点的函数值和法向导数值;将全部边界值代入积分方程中,即可获得内点函数值的计算表达式,它可以表示成边界节点值的线性组合。
边界元法的优点是:
(1) 将全解域的计算化为解域边界上的计算,使求解问题的维数降低了一维,减少了计算工作量;
(2) 能够方便地处理无界区域问题。例如对于势流等的无限区域问题,使用边界元法求解时由于基本解满足无穷远处边界条件,在无穷远处边界上的积分恒等于零。因此对于无限区域问题,例如具有无穷远边界的势流问题,无需确定外边界,只需在内边界上进行离散即可;
(3) 边界元法的精度一般高于有限元法。边界元法的主要缺点是边界元方程组的系数矩阵是不对称的满阵,该方法目前只适用于线性问题。
有限体积法
有限体积法又称为控制体积法,其导出离散方程的基本思路是:
(1)将计算区域划分为一系列不重复的控制体积,每一个控制体积都有一个节点作代表,将待求的守恒型微分方程在任一控制体积及一定时间间隔内对空间与时间作积分;
(2)对待求函数及其导数对时间及空间的变化型线或插值方式作出假设;
(3)对步骤1中各项按选定的型线作出积分并整理成一组关于节点上未知量的离散方程。有限体积法着重从物理观点来构造离散方程,每一个离散方程都是有限大小体积上某种物理量守恒的表示式,推导过程物理概念清晰,离散方程系数具有一定的物理意义,并可保证离散方程具有守恒特性,这是有限体积法的主要优点。
就离散方法而言,有限体积法可视作有限元法和有限差分法的中间物,该方法的主要缺点是不便对离散方程进行数学特性分析。
有限分析法
有限分析法在某种意义上说是在有限元法基础上发展起来的一种数值方法,其基本思想是:将求解区域划分成矩形网格,网格线的交点为计算节点,每个节点与相邻的四个网格组成一个计算单元,即一个计算单元由一个中心节点与8个相邻节点组成;在每个单元中函数的近似解不是象有限元方法那样采用单元基函数的线性组合来表达,而是以单元中未知函数的分析解来表达;为了获得单元中的分析解,单元边界条件采用插值函数来逼近,在单元中把控制方程中非线性项局部线性化(如N-S方程中的对流项中认为其流速为已知,并对单元中待求函数的组合形式作出假设,找出其系数用单元边界节点上待求函数值表达的分析解;利用单元分析解确定单元中心节点与8个相邻节点间待求函数值之间关系的一个代数方程,称为单元有限分析方程;将所有内点上的单元有限分析方程联立,就构成总体有限分析方程,通过代数方程组求解,即可获得求解区域中全部离散点的函数值。
虽然有限分析解获得的是求解区域中离散点的函数值,但是由于每个单元内部都有与其中心节点对应的分析解表达式,因此有限分析解在每一个节点的局部区域内都是连续可微的,这对于需要计算求解函数导数的计算流体力学问题具有明显的优势。
该计算方法与有限元、有限差分法比较具有较高的精度。此外,有限分析法具有自动迎风特性,能准确地模拟对流项,同时不存在数值振荡失真问题。有限分析法的缺点是对复杂形状的求解区域适应性较差。