1.7 网格简介
计算网格的合理划分和高质量是CFD计算的前提条件。即使在CFD技术高度发达的国家,网格生成仍占整个CFD计算任务所需人力时间的60%~80%。目前,随着硬件资源的更新换代,计算能力不断提高,复杂外形的网格生成技术已经成为CFD技术推广的一个巨大障碍,同时也是影响CFD计算的关键技术之一。网格品质的好坏直接影响到数值解的计算精度,而且这种影响在许多情况下是决定性的。因此,网格生成受到世界各国CFD工作者和工业部门的重视。目前,网格划分的软件主要包括ANSYS.ICEM、ANSYS.MESHING、STARCCM+、HYPERMESH等。
采用数值方法求解控制方程时,首先是将控制方程在空间区域上进行离散,然后求解得到离散方程组。而要将控制方程进行空间离散,就要划分网格。现已发展出多种区域离散化的网格生成方法,统称为网格生成技术。网格生成技术是计算流体力学中重要的组成部分,为了得到高精度数值结果,除了高精度的数值算法外,网格的优劣也有重要的影响。
按网格点之间的相邻关系,可将计算网格分为结构化网格、非结构化网格和混合网格。混合网格是结构化网格和非结构化网格的混合。
1.7.1 结构化网格
结构化网格如图1-6所示,网格点之间的邻接是有序而规则的,除了边界点外,内部网格点都有相同的邻接网格数(一维为2个、二维为4个、三维为6个)。结构化网格的拓扑结构具有严格的有序性。网格的定位能够用空间上的三个指标i、j、k识别,且网格单元之间的拓扑连接关系是简单的i、j、k递增或递减的关系,在计算过程中不需要存储它的拓扑结构。当流动区域易于被结构化网格所剖分、流动结构不需要做自适应处理时,结构化网格被研究者广泛采用。
图1-6 结构化网格
对于结构化网格,按拓扑结构不同一般可以分为O型、C型和H型三种,如图1-7所示。O型拓扑结构适合于两端都是钝截面的物体,如圆形或椭圆形截面物体;C型拓扑结构适合于一端是钝头而另一端是尖截面的物体,如锥形截面物体;H型拓扑结构适合于两端都是尖截面的物体,如菱形截面的物体。
图1-7 三种网格示意图
采用不同的网格拓扑结构生成的网格形状不同,网格的计算效率也有差异,因此要生成网格首先要分析其网格的拓扑结构。
结构化网格数据组织方便,计算效率和计算精度高。随着近几十年在结构化网格生成技术方面的不断突破,目前发达国家各主要飞机公司,如Boeing,Airbus和MBB等,用于军机、民机型号气动设计的骨干软件都采用结构化网格;结构化网格的拓扑结构相当于矩形域内的均匀网格,其节点定义在每一层的网格线上,因而其存储比较简单,所需的存储空间也相对较少,但它对复杂几何外形的网格生成比较困难。
1.7.2 非结构化网格
非结构化网格节点之间的邻接是无序的、不规则的,每个网格点可以有不同的邻接网格数。非结构化网格如图1-8所示。
图1-8 非结构化网格
与结构化网格相比,非结构化网格有以下优点:
① 能够离散具有复杂外形的区域,因为非结构化网格单元可以在任意计算区域中完全填充到整个空间,能相当精确地表示出物体的边界,从而保证了在边界处的初始准确度。
② 能够快速地在网格中增加、删除节点,处理动边界问题比较方便。
③ 能够很容易地采用自适应网格方法,来提高解的质量。
当然,非结构化网格生成方法也存在先天的不足,那就是它需要较大的内存空间和较长的CPU时间,计算分辨率较差。目前,非结构化网格方法已广泛应用于定常气动流场数值模拟之中。
非结构化网格的划分方法大体上可以分为三类:第一类是八叉树(Octree)方法,第二类是Delaunay方法,第三类是锋面推进(Advancing Front)法。
八叉树方法于20世纪80年代由Mark Shephard首创,是一种先用六面体网格剖分流场,再在六面体内部增加节点,将原有网格单元剖分为更小的单元,直到满足网格精度的方法。在二维情况下,其初始网格则为四边形网格,相应的网格划分方法则称为四叉树(Quadtree)方法。
Delaunay方法指的是一大类方法,这些方法的共同特点是在网格剖分的过程中满足Delaunay准则。所谓Delaunay准则又叫空心球(Empty Sphere)准则,其含义是过三角形三个顶点的圆或过四面体四个顶点的球的内部,不能包含其他网格单元的节点。当然,这里所谓的“其他网格的节点”,不包括与当前网格单元共用的那些节点。Delaunay方法在具体划分网格时,可以先将流场划分为粗大的网格,然后通过向初始网格内部插入新的网格节点的方式逐渐使之细化,直到网格密度满足密度函数的要求,或者网格尺度满足尺度函数的要求为止;也可以先划分边界网格,再从边界网格根据Delaunay准则向流场内部推进(类似于后面的锋面推进法);还可以先根据Delaunay准则生成内部网格,再根据边界网格的约束条件对网格进行修正,以得到最终计算所需的网格。
锋面推进法是由美国George Mason大学的Rainald Lohner和中国香港大学的S.H.Lo发展起来的。锋面推进法在网格划分的过程中,首先要在边界上划分好三角形单元,然后再根据边界上的三角形的三个顶点计算、确定第四个顶点,最终构成新的四面体。整个网格的划分过程是从边界向流场内部推进的,推进过程中存在一个“锋面”,直到从各个边界上的锋面相遇并融合,网格划分过程才结束。在锋面推进过程中,基于原有三角形边界面得到的第四个顶点,可以是新生成的顶点,也可以是流场中原来存在的节点,究竟采用原有节点还是需要新生成一个节点,都取决于对网格划分进行控制的尺度函数。在网格推进的过程中,除了要生成、确定第四顶点外,还要判断来自各个边界的锋面是否发生冲突和重叠,最后得到满足网格密度或尺度要求的网格。
无论何种网格划分方法,其网格密度通常依赖于流场的结构。在流场变量变化梯度较大的地方,比如边界层内部、激波附近区域或分离线附近,需要较大的网格密度,而在流场变量较平缓的区域则可以适当减小网格密度,以节省计算机资源。
网格在根据几何方法生成后,还必须进行光顺处理,即对畸变率较大的网格进行重新划分或调整。在实际的网格生成过程中,一方面可以通过网格的长宽比确定网格的畸变率,一方面还可以通过控制每个网格节点夹角的方式控制畸变率。
畸变率对于计算结果的影响也与畸变网格所处的位置有关。如果畸变较大的网格处于流场变量梯度较大的区域,则由畸变带来的误差就比较大,对计算结果的影响也比较严重。如果畸变较大的网格位于流场变量变化平缓的区域,则带来的误差及其影响相对而言就比较小。因此,能否正确地划分网格,在很大程度上依赖于对流场流动机理的把握和对流场结构的预判。
1.7.3 混合网格
混合网格是结构化网格与非结构化网格的组合,它继承了两种网格的优点,也弥补了两者的缺点,近期发展较快。如图1-9所示,混合网格的具体生成方法为:在近壁面区域采用结构化网格,其他区域采用非结构化网格。
值得注意的是,无网格法近年来也在数值计算中逐步应用,此方法在数值计算中不需要网格,而是按照一些任意分布的坐标点构造插值函数离散控制方程,进而减小网格划分所耗费的大量人力。
图1-9 混合网格