本节介绍计算流体力学的一些重要基础知识,包括计算流体力学的基本概念、求解过程、数值求解方法等。了解计算流体力学的基础知识,有助于理解CFX软件中相应的设置方法,是做好工程模拟分析的根基。
计算流体动力学(CFD)是20世纪60年代伴随计算科学与工程(Computational Science and Engineering,CSE)迅速崛起的一门学科分支,经过半个世纪的迅猛发展,这门学科已经相当成熟了。一个重要的标志是近几十年来,各种CFD通用软件陆续出现,成为商品化软件,服务于传统的流体力学和流体工程领域,如航空、航天、船舶、水利等。
CFD通用软件的性能日益完善,应用的范围也不断扩大,在化工、冶金、建筑、环境等相关领域中被广泛应用,现在我们利用它模拟计算平台内部的空气流动状况,也算是在较新的领域中应用。
现代流体力学研究方法包括理论分析、数值计算和实验研究3方面。这些方法针对不同的角度进行研究,相互补充。理论分析研究能够表述参数影响形式,为数值计算和实验研究提供有效的指导;实验是认识客观现实的有效手段,可以验证理论分析和数值计算的正确性;计算流体力学通过提供模拟真实流动的经济手段补充理论及实验的空缺。
更重要的是,计算流体力学提供廉价的模拟、设计和优化工具,并提供分析三维复杂流动的工具。在复杂的情况下,测量往往很困难,甚至不可能,而计算流体力学能方便地提供全部流场范围的详细信息。与实验相比,计算流体力学具有对于参数没有限制、费用少、流场无干扰的特点。出于计算流体力学的优点,我们选择它进行模拟计算。简单来说,计算流体力学所扮演的角色是:通过直观地显示计算结果,对流动结构进行仔细研究。
在数值研究方面,计算流体力学大体沿两个方向发展:一个是在简单的几何外形下,通过数值方法来发现一些基本的物理规律和现象,或者发展更好的计算方法;另一个是解决工程实际需要,直接通过数值模拟进行预测,为工程设计提供依据。理论的预测出自于数学模型的结果,而不是出自于一个实际物理模型的结果。
计算流体力学是多领域交叉的学科,涉及计算机科学、流体力学、偏微分方程的数学理论、计算几何、数值分析等,这些学科的交叉融合、相互促进和支持,推动了学科的深入发展。
CFD方法是对流场的控制方程用计算数学的方法将其离散到一系列网格节点上求其离散数值解的一种方法。控制所有流体流动的基本定律是:质量守恒定律、动量守恒定律和能量守恒定律。由它们分别导出连续性方程、动量方程(N-S方程)和能量方程。应用CFD方法进行平台内部空气流场模拟计算时,首先需要选择或建立过程的基本方程和理论模型,依据的基本原理是流体力学、热力学、传热传质等平衡或守恒定律。
由基本原理出发,可以建立质量、动量、能量、湍流特性等守恒方程组,如连续性方程、扩散方程等。这些方程构成连理的非线性偏微分方程组,不能用经典的解析法,只能用数值方法求解。求解上述方程必须首先给定模型的几何形状和尺寸,确定计算区域,并给出恰当的进出口、壁面以及自由面的边界条件,而且还需要适宜的数学模型和包括相应初值在内的过程方程的完整数学描述。
求解的数值方法主要有有限差分法(FDM)、有限元(FEM)以及有限分析法(FAM),应用这些方法可以将计算域离散为一系列网格,并建立离散方程组。离散方程的求解是由一组给定的猜测值出发迭代推进,直至满足收敛标准。常用的迭代方法有Gauss-Seidel迭代法、TDMA方法、SIP法及LSORC法等。利用上述差分方程及求解方法可以编写计算程序或选用现有的软件实施过程的CFD模拟。
CFD数值模拟一般遵循以下5个步骤:
步骤01 建立所研究问题的物理模型,再将其抽象成为数学、力学模型。之后确定要分析的几何体的空间影响区域。
步骤02 建立整个几何形体与其空间影响区域,即计算区域的CAD模型,将几何体的外表面和整个计算区域进行空间网格划分。网格的稀疏和网格单元的形状都会对以后的计算产生很大影响。不同的算法格式为保证计算的稳定性和计算效率,一般对网格的要求也不一样。
步骤03 加入求解所需要的初始条件,入口与出口处的边界条件一般为速度、压力条件。
步骤04 选择适当的算法,设定具体的控制求解过程和精度条件,对所需分析的问题进行求解,并且保存数据文件结果。
步骤05 选择合适的后处理器(Post Processor)读取计算结果文件,分析并显示出来。
以上这些步骤构成了CFD数值模拟的全过程。其中,数学模型的建立是理论研究的课堂,一般由理论工作者完成。
在运动CFD方法对一些实际问题进行模拟时,常常需要设置工作环境、边界条件和选择算法等。特别是算法的选择,对模拟的效率及其正确性有很大影响,需要特别重视。要正确设置数值模拟的条件,有必要了解数值模拟的过程。
随着计算机技术和计算方法的发展,许多复杂的工程问题都可以采用区域离散化的数值计算,并借助计算机得到满足工程要求的数值解。数值模拟技术是现代工程学形成和发展的重要动力之一。
区域离散化是用一组有限个离散的点代替原来连续的空间。实施过程是把所计算的区域划分成许多互不重叠的子区域,确定每个子区域的节点位置和该节点所代表的控制体积。节点是需要求解的未知物理量的几何位置、控制体积、应用控制方程或守恒定律的最小几何单位。
一般把节点看成控制体积的代表。控制体积和子区域并不总是重合的。在区域离散化过程开始时,由一系列与坐标轴相应的直线或曲线簇所划分出来的小区域称为子区域。网格是离散的基础,网格节点是离散化物理量的存储位置。
常用的离散化方法有有限差分法、有限单元法和有限体积法。对这3种方法分别介绍如下。
(1)有限差分法
有限差分法是数值解法中最经典的方法。它是将求解区域划分为差分网格,用于有限个网格节点代替连续的求解域,然后将偏微分方程(控制方程)的导数用差商代替,推导出含有离散点上有限个未知数的差分方程组。
这种方法产生和发展得比较早,也比较成熟,较多用于求解双曲线和抛物线型问题。用它求解边界条件很复杂,尤其是椭圆型问题,没有有限单元法或有限体积法方便。
构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有4种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分。其中,前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。
(2)有限单元法
有限单元法是将一个连续的求解域任意分成适当形状的微小单元,并在各小单元分片构造插值函数,然后根据极值原理(变分或加权余量法)将问题的控制方程转化为所有单元上的有限元方程,把总体的极值作为各单元极值之和,即将局部单元总体合成,形成嵌入了指定边界条件的代数方程组,求解该方程组就可以得到各节点上待求的函数值。
有限元求解的速度比有限差分法和有限体积法慢,在商用CFD软件中应用得并不广泛。目前常用的商用CFD软件中,只有FIDAP采用的是有限单元法。
有限单元法对椭圆型问题有更好的适应性。
(3)有限体积法
有限体积法又称为控制体积法,是将计算区域划分为网格,并使每个网格点周围有一个互不重复的控制体积,将待解的微分方程对每个控制体积积分,从而得到一组离散方程。
其中的未知数是网格节点上的因变量。子域法加离散就是有限体积法的基本思想。有限体积法的基本思路易于理解,并能得出直接的物理解释。
离散方程的物理意义是因变量在有限大小的控制体积中的守恒原理,如同微分方程表示因变量在无限小的控制体积中的守恒原理一样。
有限体积法得出的离散方程要求因变量的积分守恒对任意一组控制集体都得到满足,对整个计算区域自然也得到满足,这是有限体积法吸引人的优点。
有一些离散方法(如有限差分法)仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法即使在粗网格情况下,也能显示出准确的积分守恒。
就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间产物。三者各有所长。有限差分法直观、理论成熟、精度可选,但是不规则区域处理烦琐,虽然网格生成可以使有限差分法应用于不规则区域,但是对于区域的连续性等要求较严。使用有限差分法的好处在于易于编程、易于并行。
有限单元法适合处理复杂区域,精度可选。缺点是内存和计算量巨大,并行不如有限差分法和有限体积法直观。有限体积法适用于流体计算,可以应用于不规则网格,适用于并行,但是精度基本上只能是二阶。有限单元法在应力应变、高频电磁场方面的特殊优点正在被人重视。
由于Fluent基于有限体积法,因此下面将以有限体积法为例介绍数值模拟的基础知识。
有限体积法是从流体运动积分形式的守恒方程出发来建立离散方程。
三维对流扩散方程的守恒型微分方程如下:
式中: ø 是对流扩散物质函数,如温度、浓度等。
上式用散度和梯度表示:
将方程(1-26)在时间步长Δ t 内对控制体体积 CV 积分,可得:
式中:散度积分已用格林公式化为面积积分, A 为控制体的表面积。
该方程的物理意义是:Δ t 时间段和体积 CV 内 pø 的变化,加上Δ t 时间段通过控制体表面的对流量 puø ,等于Δ t 时间段通过控制体表面的扩散量,加上Δ t 时间段控制体 CV 内源项的变化。
例如,一维非定常热扩散方程如下:
在Δ t 时段和控制体体积内部积分(1-28)式:
上式可写成如下形式:
在(1-30)式中, A 是控制体面积;Δ V 是体积,Δ V = A Δ x ,Δ x 是控制体宽度; 是控制体中的平均源强度。如图1-2所示,设 P 点 t 时刻的温度为 ,而t+Δ t 时 P 点温度为 T P ,则(1-30)式可得:
图1-2 一维有限体积单元示意图
为了计算上式的 T P 、 T E 和 T W 对时间的积分,引入一个权数 θ =0~1,将积分表示成 t 和 t +Δt时刻的线性关系:
(1-31)式可写成:
上式左端括号中 t 时刻的温度 为已知,因此该式是 t +Δ t 时刻 T P 、 T E 、 T W 之间的关系式。列出计算域上所有相邻3个节点上的方程,可形成求解域中所有未知量的线性代数方程,给出边界条件后可求解代数方程组。
由于流体运动的基本规律都是守恒率,而有限体积法的离散形式也是守恒的,因此有限体积法在流体流动计算中应用广泛。
控制方程被离散化以后,就可以进行求解了。下面介绍几种常用的压力与速度耦合求解算法,分别是SIMPLE算法、SIMPLEC算法和PISO算法。
(1)SIMPLE算法
SIMPLE算法是目前工程实际中应用最为广泛的一种流场计算方法,属于压力修正法的一种。该方法的核心是采用“猜测-修正”的过程,在交错网格的基础上计算压力场,从而达到求解动量方程的目的。
SIMPLE算法的基本思想可以叙述为:对于给定的压力场,求解离散形式的动量方程,从而得到速度场。因为压力是假定或不精确的,这样得到的速度场一般都不满足连续性方程的条件,所以必须对给定的压力场进行修正。修正的原则是修正后的压力场相对应的速度场能满足这一迭代层次上的连续方程。
根据这个原则,我们把由动量方程的离散形式所规定的压力与速度的关系代入连续方程的离散形式,从而得到压力修正方程,再由压力修正方程得到压力修正值;接着根据修正后的压力场求得新的速度场;然后检查速度场是否收敛。
若不收敛,则用修正后的压力值作为给定压力场,开始下一层次的计算,直到获得收敛的解为止。在上述过程中,核心问题在于如何获得压力修正值、如何根据压力修正值构造速度修正方程。
(2)SIMPLEC算法
SIMPLEC算法与SIMPLE算法在基本思路上是一致的,不同之处在于SIMPLEC算法在通量修正方法上有所改进,加快了计算的收敛速度。
(3)PISO算法
PISO算法的压力速度耦合格式是SIMPLE算法族的一部分,是基于压力速度校正之间的高度近似关系的一种算法。SIMPLE和SIMPLEC算法的一个限制是在压力校正方程解出后,新的速度值和相应的流量不满足动量平衡,因此必须重复计算,直至平衡得到满足。
为了提高该计算的效率,PISO算法执行了两个附加的校正:相邻校正和偏斜校正。PISO算法的主要思想是将压力校正方程中解阶段中的SIMPLE和SIMPLEC算法所需的重复计算移除。经过一个或更多附加PISO循环,校正的速度会更接近满足连续性和动量方程。这一迭代过程被称为动量校正或邻近校正。
PISO算法在每个迭代中要花费稍多的CPU时间,但是极大地减少了达到收敛所需要的迭代次数,尤其是对于过渡问题,这一优点更为明显。
对于具有一些倾斜度的网格,单元表面质量流量校正和邻近单元压力校正差值之间的关系是相当简略的。因为沿着单元表面的压力校正梯度的分量开始是未知的,所以需要进行一个和上面所述的PISO邻近校正中相似的迭代步骤。
初始化压力校正方程的解之后,重新计算压力校正梯度,然后用重新计算出来的值更新质量流量校正。这个被称为偏斜矫正的过程极大地减少了计算高度扭曲网格所遇到的收敛性困难。PISO偏斜校正可以使我们在基本相同的迭代步中,从高度偏斜的网格上得到和更为正交的网格上不相上下的解。