有限体积法、有限差分法和有限元法介绍

学过弹性力学的人应该都知道什么是有限元,而对学计算流体力学的来说,有限差分和有限体积法也是两种非常重要的方法。三者虽然目前形式各异,但是思想上有很多类似的地方。CFD(Computational Fluid Dynamics)中主要的三种离散方法就是他们三个。

而这篇文章主要目的是对三者进行比较,并给出三种方法计算同一个流体一维算例的过程。

一维算例:

有限体积法、有限差分法和有限元法介绍_第1张图片

流体在沿着一条流线传输过程中,关于流体的某个物理量有限体积法、有限差分法和有限元法介绍_第2张图片的输运方程为:

有限体积法、有限差分法和有限元法介绍_第3张图片

        

这个方程也可以看成对流-扩散方程的特例,其含义就是在控制体内部:

由源产生的有限体积法、有限差分法和有限元法介绍_第4张图片的量(因为全场没有源项,故等号右端为0) =

由于流动导致的物理量有限体积法、有限差分法和有限元法介绍_第5张图片的增加(有限体积法、有限差分法和有限元法介绍_第6张图片)+由于扩散导致物理量有限体积法、有限差分法和有限元法介绍_第7张图片的减少(有限体积法、有限差分法和有限元法介绍_第8张图片

另外流场还应该满足连续条件:

    有限体积法、有限差分法和有限元法介绍_第9张图片     

即:流入质量=流出质量

那么控制方程组就是:

有限体积法、有限差分法和有限元法介绍_第10张图片

下面,用三种方法分别来解这个流场的物理量有限体积法、有限差分法和有限元法介绍_第11张图片

1 有限差分法

主要参考《计算流体力学入门》,John D.Andersion,JR .

有限差分法的做法很简单:流体的控制方程组一般都是偏微分方程,解偏微分方程组很困难, N-S方程多数都是没有解析解的,但是解线性方程组是很简单的事情。所以,差分主要目的便是将微分近似为线性运算,进而把偏微分方程组转化为线性方程组。大多数用来代替偏微分形式是基于Taylor展开得到的,利用Taylor展开,对x一阶导数差分可以近似如下三种形式:

    有限体积法、有限差分法和有限元法介绍_第12张图片有限体积法、有限差分法和有限元法介绍_第13张图片     

对扩散项的二阶导数,近似为:

有限体积法、有限差分法和有限元法介绍_第14张图片

将控制方程离散成差分方程,得到:

有限体积法、有限差分法和有限元法介绍_第15张图片

有限体积法、有限差分法和有限元法介绍_第16张图片

这里我们把有限体积法、有限差分法和有限元法介绍_第17张图片项转化为一个一阶导数和二阶导数有限体积法、有限差分法和有限元法介绍_第18张图片,然后分别一阶和二阶格式进行差分。

通过联立连续方程,可以求解出全场所有节点处流速值有限体积法、有限差分法和有限元法介绍_第19张图片,代入对流扩散方程中,简化为:

有限体积法、有限差分法和有限元法介绍_第20张图片

然后联立求解全场各个点有关有限体积法、有限差分法和有限元法介绍_第21张图片的方程组,便可解得有限体积法、有限差分法和有限元法介绍_第22张图片全场节点处数值。

2 有限体积法

主要参考《计算流体动力学分析:CFD软件原理与应用》,王福军

(其实里面也就是流体力学控制方程简介+有限体积法,整个这个名字真让人迷惑QAQ)

1.1离散

有限体积法离散的核心和有限元法一样,使用有限个离散点来代替原来整个连续的空间。把计算区域分成不重叠的计算网格,然后确定每个节点位置和节点控制体体积(也就是节点所在的网格单元)。区域几何要素主要有以下几个:

节点:需要解未知物理量的几何位置,一般在节点上定义所有的标量,下面图中的W、P、E三个点就是节点;

控制体积:应用控制方程和守恒定律的最小单位,图中灰色区域;

界面:规定了与各节点相对应的控制体积的分界面位置,图中w和e处;

网格线:连接节点的曲线簇,图中就是x轴线。

有限体积法、有限差分法和有限元法介绍_第23张图片

1.2建立离散方程

有限体积最特殊的一步就是在控制体上积分控制方程,以便在控制体积的界面上产生离散方程。对一维算例在控制体积有限体积法、有限差分法和有限元法介绍_第24张图片上积分有:

有限体积法、有限差分法和有限元法介绍_第25张图片

然后控制体积分式等价于:

有限体积法、有限差分法和有限元法介绍_第26张图片

其中有限体积法、有限差分法和有限元法介绍_第27张图片 可以看成是垂直于有限体积法、有限差分法和有限元法介绍_第28张图片 轴方向上断面的面积。

这里我想详细的讨论一下,在书中作者说这是完全等价的转化,并没有取任何近似,但是我有不同的看法

有限体积法、有限差分法和有限元法介绍_第29张图片

有限体积法、有限差分法和有限元法介绍_第30张图片 积分式里面的被积函数有限体积法、有限差分法和有限元法介绍_第31张图片和A没有任何关系,所以我们可以先把有限体积法、有限差分法和有限元法介绍_第32张图片做积分:

有限体积法、有限差分法和有限元法介绍_第33张图片

然后根据分部积分方法:

有限体积法、有限差分法和有限元法介绍_第34张图片

我们可以看出,等号左端正确结果应为:

有限体积法、有限差分法和有限元法介绍_第35张图片

所以这一步其实也做了近似。否则应该加上有限体积法、有限差分法和有限元法介绍_第36张图片的前提。

1.3解方程

我们已经把非线性的控制方程组通过离散,转化成为了线性方程组。

有限体积法、有限差分法和有限元法介绍_第37张图片

有限体积法、有限差分法和有限元法介绍_第38张图片

但是在我们的解里有限体积法、有限差分法和有限元法介绍_第39张图片只定义在了节点上,在界面处应该并没有有限体积法、有限差分法和有限元法介绍_第40张图片的值,所以还需要某种差分方法,把有限体积法、有限差分法和有限元法介绍_第41张图片在界面处的值用节点上的值来近似,这里就是所谓的使用差分格式。

采用最煎蛋XD的方法……我们用界面两边的节点值取平均来近似,这应该是地球人都想得到的方法,方程继续化简为:

有限体积法、有限差分法和有限元法介绍_第42张图片

记为:

有限体积法、有限差分法和有限元法介绍_第43张图片

根据连续方程,我们可以求解整个流场,那么系数有限体积法、有限差分法和有限元法介绍_第44张图片有限体积法、有限差分法和有限元法介绍_第45张图片有限体积法、有限差分法和有限元法介绍_第46张图片即为已知数,然后便可求解有限体积法、有限差分法和有限元法介绍_第47张图片

有限体积法、有限差分法和有限元法介绍_第48张图片有限体积法、有限差分法和有限元法介绍_第49张图片分别代表了相邻点有限体积法、有限差分法和有限元法介绍_第50张图片有限体积法、有限差分法和有限元法介绍_第51张图片处的物理量通过对流扩散作用对有限体积法、有限差分法和有限元法介绍_第52张图片点影响的大小,我们假设流场是已知的,那么我们已经知道全场每个点的有限体积法、有限差分法和有限元法介绍_第53张图片有限体积法、有限差分法和有限元法介绍_第54张图片大小。这样把全场的节点离散方程联立求解,便可解得每个节点的有限体积法、有限差分法和有限元法介绍_第55张图片值。

你可能感兴趣的:(并行架构)