大型通用CFD软件体系结构与数据结构研究

2012-11-08 02:32张来平邓小刚
空气动力学学报 2012年5期
关键词:数据结构流场网格

赫 新,张来平,赵 钟,邓小刚

(中国空气动力研究与发展中心 空气动力学国家重点实验室,四川 绵阳 621000)

0 引 言

从20世纪90年代开始,国外的CFD软件开发机构开始大量应用面向对象技术,在计算机图形学、数据库技术、标准输入输出等方面做了大量工作,在软件的稳定性和可用性方面取得丰硕成果,相继推出了Fluent、ICEM-CFD、Fastran、CFX等知名商业软件,同时开发了众多知名的In-house专业软件,如CFL3D、FUN3D、USM3D、TAU、elsA 等[1]。

国内的CFD软件研制起步较晚,和国外优秀CFD软件相比还有较大的差距,其主要体现为:(1)多数软件采用Fortran语言的结构化体系结构,软件的通用性、可扩展性和可维护性差,软件架构相对落后,升级换代遇到难以克服的困难;(2)CFD软件开发模式有待提高,项目管理手段简单,难以保证软件质量;(3)CFD软件接口没有统一标准,限制了不同CFD软件之间的数据共享和交流。

从国外CFD软件的现状来看,遵循着功能更全、求解速度更快、资源消耗更少的发展思路,强调面向用户和多学科集成的研发模式,以更好地满足客户和研究的需求。众所周知,对于复杂外形飞行器的数值模拟,综合了结构网格和非结构网格优势的混合网格技术代表了未来网格技术的发展趋势[2]。但是,当前绝大多数基于混合网格的CFD软件一般将结构网格视为非结构网格的特例,因此仍按照统一的非结构网格进行数值计算。这实际上没有充分发挥结构网格的优势。一种最佳的选择是在结构网格上运行结构化解算器,而在非结构网格上运行非结构解算器,在算法层次上实现真正的结构/非结构网格耦合计算。

由于结构网格和非结构网格的数据结构差异很大,因此需要构建能够涵盖混合网格的规范的数据结构,同时需要建立适应性好的软件体系结构,因为软件的体系结构和数据结构是大型通用软件的基础。体系结构是软件的框架,数据结构贯穿于软件体系结构之中。将之比之为大厦,则软件的体系结构是大厦的主要承重框架,而数据结构则是大厦内部的连通道路。因此,一个好的CFD软件必须具有科学的体系结构以保证其良好的可扩展性;必须具有规范的数据结构以提高数据的利用效率,保证数据的安全性。

为了促进我国大型CFD软件开发、推出具有自主知识产权的CFD软件,我们有必要开展大型通用CFD软件的体系结构和数据结构研究,借鉴国外知名CFD软件的成功经验,发展具有良好的通用性、易用性、可扩展性和易维护性的CFD软件。

本文针对大型通用CFD软件研制的需求,从新一代结构/非结构混合流场解算器的研制出发,着重研究了大型CFD软件的体系结构和数据结构。首先,针对未来计算流体力学对大型通用CFD软件的需求进行了分析,对软件研制中将要面对的各种计算网格、物理模型、计算方法以及未来多学科耦合计算的发展趋势进行了充分的需求评估。进一步提出了采用面向对象软件设计技术,进行大型CFD软件体系结构和数据结构设计的方法,包括软件的整体架构、层次结构等,其间提出了运行数据库的概念,设计了能够涵盖结构网格、非结构网格和混合网格的规范的数据结构。在此基础上,研制了基于结构/非结构网格的结构/非结构混合解算器(HyperFlow),并通过典型算例对软件进行了验证,同时推广应用于不可压缩非定常流计算、高阶精度DG/FV混合算法等领域。大量的应用实践表明本文提出的CFD软件体系结构和数据结构具有良好的通用性和可扩展性,具有广阔的应用前景。

1 体系结构和数据结构需求分析

1.1 计算网格适应性需求

未来CFD软件的发展趋势是结构/非结构混合网格耦合求解。混合网格技术一方面提高了网格对复杂外形的适应能力,另一方面又能充分提高计算效率和计算精度。对于复杂外形飞行器的数值模拟,一般在几何外形比较复杂的地方用非结构网格,而在几何外形比较简单的地方用结构网格填充。这其中,结构网格又主要包括多块对接网格、重叠网格、搭接网格;非结构网格主要包括三棱柱、四面体、金字塔、多面体等各种基本单元。

为了适应变形体或多体分离问题非定常计算的需要,必须考虑动态网格技术;为了提高计算效率,需要发展多重网格计算和并行计算方法,并实现并行/多重的耦合计算,这就涉及到多重网格和并行分区网格的自动生成及数据的存取问题;为了提高计算精度,需要发展网格自适应方法,同样涉及到自适应网格的存取问题。

因此,在通用CFD软件研制过程中,需要充分考虑各种网格拓扑结构的差异,设计规范的数据结构,提高数据结构对各种计算网格的适应性。

1.2 物理模型及计算方法需求

当前CFD软件求解的物理模型主要包括雷诺平均的N-S方程(包括可压缩流和不可压缩流)、湍流模型和转捩模型、化学反应动力学模型等,未来还需要考虑多学科耦合计算,如电磁流体/N-S方程耦合求解等。

目前的CFD软件一般采用二阶精度的有限体积计算方法。随着高精度格式日新月异的发展,高精度格式将在实际工程中得到深入的研究和应用,因此,通用CFD软件在体系结构设计时,必须考虑到容纳高精度格式计算的需要。这其中主要包括结构网格下的 WCNS[3],WENO[4-5]等和非结构网格下的 DG方法[6]、DG/FV 混合方法[7]等。

随着CFD面临的问题越来越复杂,复杂外形粘性流动数值模拟所需网格量越来越大。为了缩短计算周期,需要发展高效率的时间推进方法。就目前而言,主要包括显式多步Runge-Kutta迭代和残值光顺耦合计算方法,隐式LU-SGS和BLU-SGS[8-10],GMERS[11]等;针对不可压流,需要集成虚拟压缩法、预处理方法或SIMPLE算法等。为了进一步提高计算效率,还需要将分区并行和多重网格耦合计算。

因此,在通用CFD软件的体系结构设计过程中需要充分考虑各种计算方法和物理模型的特性,设计合理灵活的、具有良好可扩展性的体系结构,不至于在软件功能扩充时需要重新设计体系结构。

1.3 其他需求

大型CFD软件耦合了结构/非结构网格的拓扑结构和计算方法,还包括各种模型的计算,使得软件的各模块之间、软件与其他配套软件之间的通信非常复杂,建立统一的、标准的数据接口可以极大地增强软件的可维护性和鲁棒性。

和配套软件的数据接口主要包括前置软件数据接口和后置软件数据接口。前置软件主要包括网格生成软件的接口,比如Gridgen、ICEM-CFD等,后置软件的数据接口主要包括Tecplot、ParaView、Field-View等。因此,在软件体系结构和数据结构设计时要充分考虑和这些前后置处理软件的接口需求。

以CFD为核心的多学科多目标优化设计是当前及未来发展的重点,其中将涉及到静动态网格自动生成、优化计算方法、气动声学特性分析、RCS隐身特性分析、飞行力学特性分析等。因此大型通用CFD软件的体系结构和数据结构应该充分考虑未来多学科多目标优化设计的需求。

2 大型通用CFD软件体系结构

大型通用CFD软件体系结构的构建原则是可扩展性和易维护性。可扩展型指软件体系结构要在适应当前CFD技术的同时也能适应可预见的未来CFD发展趋势;可维护性指软件体系结构应能适应未来模块功能改进、软件更新的维护成本和功能增强达到最优。

2.1 软件采用的语言

目前在CFD界比较流行的程序语言是Fortran和C++(包括C),二者各有优缺点。Fortran是针对科学计算开发的语言,在复数运算、数组运算等方面具有得天独厚的优势。但是一般认为其为一种“面向过程”的计算机语言,尽管新版Fortran语言(Fortran90及升级版)逐步具备了某些“面向对象”功能,但是其在数据的抽象、对象的封装、可继承性上还有所欠缺,不利于大型CFD软件的扩展。相比而言,C++是一种“面向对象”的计算机语言,长期的发展已使其在数据封装、面向对象上有着其他语言难以匹敌的优势。虽然C++在科学计算时的计算效率常为人所诟病,但近来已经发展出多种知名的多维数组算法库,比如blitz++,从而使得在C++上进行多维数组运算业已不成问题。

正是因为C++不仅能满足大型CFD软件对可继承性、可扩展性的需求,又能方便、高效地进行多维数组的运算,因此,我们建议采用C++语言进行大型CFD软件的开发。利用C++的面向对象技术,我们可以根据CFD软件的特殊需求,设计各种基类和派生类,从而将各功能模块合理封装,即相对独立又相互关联,并可通过派生类实现新的功能模块的有机集成。

2.2 软件的整体架构

无论是分区并行计算,还是多重网格计算,CFD软件的本质实际上是在每个网格块上的科学计算。根据CFD软件的上述特点,我们设计了如图1所示的软件体系结构。整个软件系统由计算任务控制类(Simulation类)、计算区域类(Zone类)、网格信息类(Grid类)、解算器类(Solver类)、后置处理输出类(Post类)和“运行数据库”组成(“运行数据库”将在第三节详细介绍)。控制参数输入包含在Simulation类之中,而网格数据信息在创建Zone类时输入,同时创建Grid类。各类之间的关系类似于一种“网络”结构,彼此相对独立,而又通过Simulation类初始化时形成的“计算任务配置表”相互关联。这一设计理念与“结构化”软件的设计思想存在本质的不同。

整个软件的核心是Zone类,Zone之间通过边界信息(InterFace类)交换数据交换。这样做既有利于对大网格进行分区串行计算,也有利于进行多个CPU的并行/多重耦合计算,还可以在同一个Zone上加载若干个相关解算器,或者在不同的Zone上加载不同的解算器,这对多学科耦合计算是大有裨益的。

关于各主要类的功能简述如下:

(1)Simulation类

Simulation类起到对整个模拟进程的控制作用,通过对成员变量及函数的调用,形成“计算任务配置表”,实现对控制参数读入、网格数据读入、计算任务初始化、流场解算器选取和后置处理输入等操作的配置。

(2)Zone类

在进行并行计算或者分区计算时,每一个网格分区可以视为一个Zone对象,其中即包括了网格信息,又包括了解算器信息、流场控制信息以及流场数据,网格信息和解算器都以各自的类的方式存在于Zone类中,做为其成员变量。Zone类的主要作用是负责各个模块之间的调度工作,包括创建网格Grid信息、加载解算器并执行求解任务等。

(3)Grid类

Grid类中包括了网格的全部信息,包括点的坐标、单元及其关联信息、单元面积/体积信息等,同时还包括多重网格计算中的“粗-细”网格信息、非定常计算中动网格的新旧时刻坐标信息等。Grid类作为基类,又可从中派生出非结构网格子类(UnsGrid子类)、结构网格子类(StrGrid子类)以及混合计算时二者之间的交界面类(InterFace子类)。UnsGrid类中包括了非结构网格的点-面-单元的连接信息,StrGrid类中包括了结构网格的网格点标号,InterFace子类中包括了混合网格交界面处的面的编号、网格点编号、交界面交界单元数目等信息。Grid类的功能是负责Grid的几何量计算、存储网格信息、构建多重网格信息等。

(4)Solver类

Solver类是解算器类,根据任务需求,可以派生出不同的子类,如基于结构网格的NS方程解算器(StrSolver子类)和基于非结构网格的解算器(UnsSolver子类)等,同时还可以派生出湍流模型方程解算器(如SA_Solver、KE_Solver、KW_Solver等)、不可压缩NS方程解算器(IncompNS_Solver)、高阶精度DG解算器(DG_Solver)、高阶精度DG/FV混合解算器(DG/FV_Solver)、电磁流体解算器(MHD_Solver)等等。未来,还可以在Solver类基础上派生出其他学科的解算器。在整个Solver类中,各个不同的解算器之间地位平等,可以随时方便、安全地调用不同的解算器。

图1 通用CFD软件体系结构Fig.1 Frame of CFD software

2.3 解算器的层次结构

为了有效集成各种计算模型和计算方法,我们在流场解算器设计中应用了分层模型,如图2所示。整个解算器分为五个层次。第一层,根据不同的计算需要,将计算分为定常计算和非定常计算;第二层,根据流场性质分为无粘流、层流或湍流;第三层,针对非定常流中的动态网格性质以及不同的算法,将网格分为静态网格和动态网格;第四层,针对不同的方程,分别就方程中的空间项、时间项和源项进行离散;第五层是整个软件的最底层,其中包括了CFD技术中的各种离散方法、求解方法等具体算法。这种分层结构使得软件体系结构清晰明确,软件模块化规范,易于软件的维护和扩展。

图2 解算器层次结构Fig.2 Frame of solvers

2.4 程序运行基本流程

一旦Simulation类通过读入用户自定义的“动态参数控制文件”(所有控制参数存储于“运行数据库”之中),即可形成“计算任务配置表”。随后根据“计算任务配置表”读入网格数据信息,同时创建Zone类、Grid类,完成网格几何信息量的计算并存储至“运行数据库”之中;进而加载Solver类(选取不同的解算器),执行计算任务,在计算过程中和计算结束后输出计算结果。整个计算任务流程如图3所示。由此,原先各类之间的“网络”结构关系,根据具体任务需求,转化为自定义“局部结构化”计算任务流程。

图3 软件运行流程图Fig.3 Flow chart of CFD software

3 大型通用CFD软件数据结构

3.1 数据分类

在CFD软件运行过程中,会涉及到各种各样的数据存取与更新。这些数据主要包括:

(1)网格数据:网格点坐标、网格点编号(结构网格)、“点-线-面-体”连接关系(非结构网格)、面积、体积、动网格计算时的单元面运动速度等;

(2)流场数据:流场密度、速度、压力、温度、组分浓度、涡粘性系数、湍流相关参数等;

(3)状态参数:来流条件如马赫数、雷诺数、攻角等;

(4)控制参数:计算格式、限制器、湍流模型、时间推进格式等;

(5)其他数据:比如计算过程中的临时存储数据(如物理量梯度、残值)、一些用于流动显示和计算过程监控的数据等。

所有数据根据权限分为两类:永久保护数据和限制保护数据。永久保护数据是在整个计算过程中不能改变的量,如来流状态参数、计算控制参数、网格信息数据等。限制保护数据只能对某些特定的对象才能修改,如流场数据,其在计算过程中需随时间推进不断更新。

3.2 数据结构

为了便于CFD数据的跨平台和跨网络共享,以美国为主导的西方国家提出了CFD通用符号标准(CGNS)[12]数据格式,并开发了适应各种计算机软硬件环境的CGNS库。CGNS库是一个庞大的数据管理函数库,其几乎涵盖了所有CFD数据类型,其作为输入输出标准是很好的。但是在CFD软件中内嵌庞大臃肿的CGNS库,将大幅降低计算效率。为此,我们借鉴CGNS的数据定义方法,结合CFD软件运行的实际需求,定义了如下轻量级的层次数据结构:

1)变量名:如迭代步数iter、马赫数Ma、雷诺数Re等单变量参数,流场压力p、速度u/v/w、温度T等数组数据。

2)数据类型:整型、字符、浮点。

3)数据精度:单精度、双精度等。

4)数据维度:单参数、数组长度/维度等。

对于所有的数组数据均采用一维数组(指针)存取。在结构网格计算中,其隐含的i,j,k指标关系由特定函数(SetArrayLayout)给出,这样就保证了结构网格和非结构网格存取方式的统一。为了保证结构网格计算时多维数组运算的顺利进行,同时为了避免内嵌庞大臃肿的多维数组运算库,我们参考blitz++等开源软件,编制了一个轻量级的多维数组算法库。这里采用了C++最新的模板编程技术,并利用模板偏特化的一些成果,有效解决了C++中多维数组的运算问题。

3.3 数据存取与更新:“运行数据库”

大型通用CFD软件的一个重要基础是能够可靠、安全、高效地存取数据。数据流设计的合理性直接影响到软件平台设计的好坏和计算效率。为了保证数据的安全性和使用方便性,我们提出了“运行数据库”的概念。在CFD软件运行过程中涉及到的所有数据均按照统一的规范存储于“运行数据库”之中。“运行数据库”不是传统意义上的“固态”数据库,而是伴随CFD软件平台的运行自动生成,并随软件运行的结束而自动释放。其具体实现方式如下:

(1)限制保护数据类

(2)永久保护数据类

(3)数据库类

数据的存储通过“运行数据库”成员函数UpdataData(单参数存储)和UpdataDataPtr(数组数据或指针数据存取)实现;数据的提取通过成员函数Get-Data(单参数提取)和GetDataPtr(数组数据或指针数据提取)实现。所有数据均“封装”于“运行数据库”中。由此,在每个独立的模块内,编程人员可以根据自己的习惯自由定义局部变量,只需在使用该变量的值时采用上述规范统一的提取和更新方式,避免了各模块间数据(变量)定义和调用混乱。

4 软件测试与应用

基于以上研究成果,作者开发了集结构网格解算器和非结构网格解算器于一体的新一代CFD软件平台:HyperFlow。目前,我们已经对其中的结构网格NS方程解算器和非结构网格NS方程解算器进行了多方测试,并进行了二者同时运行的混合NS方程解算器进行了初步的测试。此外,我们在该软件平台上还集成了不可压缩虚拟压缩法解算器、高阶精度DG/FV混合解算器(二维标量方程和Euler方程)等多种解算器。以下给出了一下典型计算结果。

4.1 M6机翼计算

M6机翼是一个标准的三维跨声速算例,来流条件取为:Ma=0.8395,雷诺数为1.172×107,攻角为3.06°。计算网格分别采用了结构网格和非结构网格(图4a、b),非结构网格分为8个区并行计算,空间离散方法采用基于Roe分裂的MUSCL型格式,隐式时间推进采用BLU-SGS方法,湍流模型采用一方程S-A模型和二方程k-ε模型。图4(c、d)分别给出了结构网格和非结构网格计算得到的压力等值线,可以看到二者得到的流场结构大体一致,但结构网格的计算结果明显较非结构网格计算结果光滑。图4(e~h)给出了在四个典型站位的压力分布和实验结果的比较,其中同时给出了结构网格无粘流计算结果,对比风洞试验结果,可见粘流计算结果明显好于无粘流结果。

4.2 DLR-F6翼身组合体

DLR-F6翼身组合体外形是AIAA阻力预测研讨会(DWP)[13]的标准算例。对于该复杂外形,我们采用三棱柱/四面体混合网格进行计算,图5(a)所示为DLR-F6翼身组合体(带发动机和翼吊构型)的表面网格,半场空间网格总共有779万,分为30个区并行计算。计算状态与DPW-II的CASE2相同:Ma=0.75,雷诺数为3.0×106,攻角从-3°到1.5°范围内变化。计算方法仍采用与M6机翼计算相同的非结构流场解算器,湍流模型采用SST湍流模型。图5(b、c)所示为计算得到的气动力系数曲线,分别和实验结果以及国外软件FUN3D、USM3D、NSU3D的对比[13]。结果显示,HyperFlow计算结果和实验值及国外CFD软件的计算结果符合良好。

图4 M6机翼计算网格、压力等值线及典型站位压力分布Fig.4 Grid,pressure contours and pressure coefficient distributions of M6wing at z/b=0.2,0.44,0.8,0.95

图5 DLR-F6表面网格及气动特性曲线Fig.5 Surface grid of DLR-F6wing-body configuration and Aerodynamic coefficients

4.3 不可压缩非定常流解算器验证与应用

为了验证HyperFlow中不可压流非定常计算模块,我们数值模拟了在初始静止流场中横向振动的圆柱问题。该算例为经典不可压缩流非定常算例。圆柱中心点的运动方程为:

A表示振幅,f表示振动频率。Keulegan-Carpenter数(KC)是表示圆柱振动的无量纲数之一,其定义如下:

其中D代表圆柱的直径。雷诺数定义为:

Umax表示圆柱振动过程中的最大速度(经过中心点时的速度)。这里参照文献[14],取Re=100,KC=5。图6(a)显示了一周期内压差阻力、摩擦阻力、总阻力与Dutsch的实验结果[15]的比较,可见二者结果符合很好。图6(b)表示的是不同的时间步长下的计算结果对比,可见一周期内取不同的真实时间步数对结果影响并不大。我们还对不同截面上(x=-0.6d,0d,0.6d,1.2d)的速度剖面(u,v)进行了对比,如图6(c~h)所示,它们与Guilmineau的数值结果[14]、Dutsch的实验结果[15]都吻合的相当好。

为了展示不可压缩非定常计算模块对复杂非定常流动的模拟能力,我们数值模拟了三维鱼体巡游的非定常流场,图7所示为某时刻鱼体尾部的漩涡形态及相应的表面压力云图,并进行了层流和湍流状态的比较。

图6 圆柱在静止流场中横向振动计算结果Fig.6 Numerical results of oscillating cylinder

4.4 高阶精度DG/FV混合解算器验证

高精度格式是CFD发展的总体趋势,面向未来的CFD软件必须考虑到高精度格式计算的需要。DG格式是未来高精度格式研究的热点之一,因其对各种网格的适应能力而备受青睐,但是其计算量颇大。为此,我们发展了一类混合DG格式和有限体积的DG/FV格式[7,16],该格式的基本思想是利用较低阶的DG格式“动态重构”较低阶的自由度,利用FV格式“静态重构”高阶自由度,从而实现高阶精度计算。该格式已集成于HyperFlow之中。目前三阶精度的DG/FV混合格式已推广应用于二维Euler方程的求解,在提高计算精度的同时降低计算所需时间和内存需求,详见参考文献[7,16]。图8是利用三阶DG/FV混合解算器计算的绕NACA0012翼型跨声速流动的Mach等值线图和压力分布图。通过和实验数据以及其他学者的高精度格式计算结果对比,DG/FV混合计算格式的精度令人鼓舞。

图7 鱼体游动时的流动结构及压力云图Fig.7 The flow structure of fish swimming

图8 DG/FV格式计算NACA0012跨声速流动Fig.8 Pressure coefficient of NACA0012using DG/FV scheme

4.5 结构/非结构解算器混合求解初步测试

结构/非结构解算器混合求解是HyperFlow的目标,目前正在发展之中。混合求解的难点是如何将结构网格求解和非结构网格求解耦合起来,其关键在交界处的边界信息处理。目前我们仅针对简单的二维圆柱绕流算例进行了验证。图9(a)所示为计算网格,在边界层内用结构网格填充并用基于结构网格的有限体积法求解,以很好地模拟边界层的流场结构,在外场用非结构网格填充并用基于非结构网格的有限体积法求解。图9(b)为计算结果,由结果可见,混合求解算法能很好地模拟流场结构,在交接面处流场过渡光滑。

图9 基于结构/非结构网格混合求解圆柱绕流问题Fig.9 The flow past cylinder by hybrid solver

5 结 语

针对未来大型CFD软件发展的趋势,在综合调研、分析国外优秀CFD软件的基础上,设计了一套面向对象的、适用于计算流体力学的软件体系结构和数据结构,并开发了集结构网格解算器和非结构网格解算器于一体的新一代CFD软件平台HyperFlow。面向对象的体系结构使得软件有极强的扩展性和良好的维护性,很容易集成不同的物理模型解算器,为将来多学科耦合计算奠定坚实的基础。

HyperFlow软件目前业已集成了包含多种湍流模型的雷诺平均N-S方程的二阶精度解算器,正在进一步发展全流场结构/非结构混合求解、高阶精度DG/FV混合求解等先进算法。通过对典型算例的验证,确保了软件基本框架的正确性,为将来进一步的发展打下了基础。

[1]CFD resources at NASA Langley,Computational Fluid Dynamics:Codes development and applications.http://aaac.larc.nasa.gov/tsab/cfdlarc.

[2]BAKER T J.Mesh generation:art or science?[J].Prog.Aero.Sci.,2005,41:29-63.

[3]DENG X,ZHANG H.Developing high-order weighted compact nonlinear schemes[J].J.Comput.Phys,2000,165(1):22-44.

[4]LIU X D,OSHER S.Weighted essentially non-oscillatory schemes[J].J.Comput.Phys.,1994,115:200-212.

[5]JIANG G S,SHU C W.Efficient implementation of weighted ENO schemes[R].ICASE Report,1995,No.95-73.

[6]COCKBURN B,SHU C W.Discontinuous Galerkin methods[M].Berlin:Springer,2000.

[7]ZHANG L P,LIU W,HE L X,DENG X G.A class of hybrid DG/FV methods for conservation laws II:Two-dimensional cases[J].J.Comput.Phys.,2011,231:1104-1120.

[8]CHEN R F,WANG Z J.Fast,block lower-upper symmetric Gauss Seidel scheme for arbitrary grids[J].AIAA Journal,2000,38(12):2238-2245.

[9]ZHANG L P,WANG Z J.A block LU-SGS implicit dual time-stepping algorithm for hybrid dynamic meshes[J].Computers & Fluids,2004,33:891-916.

[10]ZHANG L P,ZHANG H X,CHANG X H,DUAN X P.A block LU-SGS implicit dual time-Stepping algorithm on hybrid dynamic meshes for bio-fluid simulations[J].Computers & Fluids,2009,38:290-308.

[11]SHAROV D,LUO H,BAUM J D,LOHNER R.Implementation of unstructured grid GMRES+ LUSGS method on shared-memory,cache-based parallel computers[R].2000,AIAA 2000-0927.

[12]STEVEN R,DOUGLAS R,MATTHEW F.The CGNS System[R].1998,AIAA 98-3007.

[13]LAFLIN K R,BRODERSEN O.Summary of data from the second AIAA CFD Drag Prediction Workshop[R].2004,AIAA 2004-0555.

[14]GUILMINEAU E,QUEUTEY P.A numerical simulation of vortex shedding from an oscillation circular cylinder[J].Journal of Fluids and Structures,2002,16:773-749.

[15]DUTSCH H,DURST F,BECHER.Low-Reynoldsnumber flow around an oscillating circular cylinder at low Keulegan-Carpenter number[J].J.Fluid Mech.,1998,360:249-271.

[16]张来平,刘伟,贺立新,等.基于静动态重构的高阶DG/FV混合格式在二维非结构网格中的推广[J].计算物理,2011,28(2):309-319.

猜你喜欢
数据结构流场网格
车门关闭过程的流场分析
数据结构线上线下混合教学模式探讨
为什么会有“数据结构”?
追逐
重叠网格装配中的一种改进ADT搜索方法
高职高专数据结构教学改革探讨
基于CFD新型喷射泵内流场数值分析
天窗开启状态流场分析
基于国外两款吸扫式清扫车的流场性能分析
高效学习数据结构