2. 空气动力学国家重点实验室, 四川 绵阳 621000
2. State Key Laboratory of Aerodynamics, Mianyang 621000, China
随着综合国力和科学技术的发展,我国飞行武器装备和航空航天飞行器研制正面临发展转型,将逐步摆脱仿制、跟踪、再现的发展模式,转向自行设计、自主创新的发展阶段,核心技术的获取只能通过自主创新。在新一代重大武器型号的研制中,存在着大量关键气动技术。现有风洞试验难以给出这些新型型号飞行包线内的全部气动数据,其中的很多状态必须依靠CFD给出,而CFD提供数据的可信度是当前迫切需要解决的问题。
由于CFD在型号研制中的作用越来越大,型号单位纷纷建立自己的CFD团队,但是他们在独立自主开发CFD软件方面的能力较弱,于是大量引进商业CFD软件,一大批国外商业CFD软件涌入我国市场,在市场竞争中占据很大优势。而他们的成功经验之一是引入了ISO认证体系,软件一般经过了比较严格的验证与确认(V & V)。
CFD的验证与确认研究在国外一直受到高度重视[1-7],如NASA和AIAA数值模拟软件验证与确认系列研究(阻力预测DPW系列研讨会、高升力预测HiLift系列研讨会、高精度High-Order系列研讨会等),欧盟框架计划项目:QNET-CFD、FLOMANIA和DESider等[8]。在此基础上,他们建立了系列专业的CFD验证与确认数据库。但是,在作者所了解的范围内,尚未见到关于CFD软件自动化测试平台方面的报道。
国内的CFD应用已在航空航天飞行器设计和流体力学基础研究方面发挥着越来越重要的作用。相关研究机构和高等院校均开发有自己的专业CFD软件,但是这些软件的适应性较国外软件有一定的差距,急需发展我国自主知识产权的通用CFD软件平台。而软件的测试及验证与确认无疑是非常关键的问题。
国内学术界和工业界已经逐步认识到CFD的验证与确认研究的重要性,一些前期基础研究工作已经开展。如张涵信、邓小刚、陈坚强等从基础认识到方法应用方面开展了相关的研究工作[9-11];白文、李立等在空气动力预研项目的支持下,在国内较早开展了验证与确认研究工作,并初步设计了验证与确认共享数据库,利用这些数据资源进行了航空CFD的验证与确认工作[12];沈泓萃[13]等依照ITTC推荐规程,对船舶CFD不确定度的分析方法进行了一些探讨,并进行了一些初步的应用实践。飞行器设计部门以召开数据对比会的形式,对特定流动速域飞行器标模亦开展了CFD数据的可信度分析工作。与此同时,在国家重点基础研究发展计划(973)项目资助下,由空气动力学国家重点实验室牵头组织、国内多家单位参与,开展了航空可信度系列研究活动,并取得了初步成绩[14]。但是整体而言,相对日益增长的不确定度研究和CFD软件验证与确认的需求而言,仍存在较大的差距。主要体现在以下方面:
1)可用于CFD软件验证与确认的开放共享数据库比较缺乏,国内相关单位仅能对一些简单的标模问题,利用国外文献数据,开展粗略的验证与确认。
2)缺乏可用于CFD软件验证与确认的自动化软件平台。中航工业631所研制了一款CFD可信度分析平台WiseCFD,提供了相关的可信度分析工具[15],而西安电子科技大学的孙久振[16]设计开发了基于OSGi的CFD可信度分析平台,在软件集成、项目管理、计算结果显示等方面开展了研究。但是以上工作对于CFD软件的自动化测试方面涉及较少。
CFD的验证与确认是一项系统工程,国外CFD软件的每一处细小的改动,均需要经过系列算例的严格对比计算,方可在新版本的软件中得到认可。由于我国自主CFD软件正处于蓬勃发展之中,软件的系统测试是软件升级过程中必不可少的流程,而目前只能依靠开发者人工发送计算作业,手动收集计算结果进行对比分析,这占去了CFD软件开发者的大量时间,严重影响了大型CFD软件的开发效率。
为了提高大型CFD软件的开发效率,减少测试工作对于人力资源的过多占用,本文在自主研发的通用CFD软件(HyperFLOW)基础上,开展了自动化的测试及验证与确认平台的研制工作。通过研究,初步实现了本地算例管理、远程算例计算和计算结果自动收集与分析等功能,初步具备了自动化测试的能力。该平台性能的提升将对CFD软件的开发具有十分重要的推动作用。
1 通用CFD软件-HyperFLOW简介HyperFLOW (Hybrid Platform for Engineering and Research of FLOWs)软件平台是在中国空气动力研究与发展中心自主发展的结构和非结构主力软件的基础上,独立开发的一款面向工程应用和学术研究的通用CFD软件平台。该软件借鉴了面向对象的大型软件设计理念,采用C++语言编程。为了适应结构网格、非结构网格和混合网格的计算,设计了具有良好通用性、可扩展性的体系结构和数据结构[17];提出了“运行数据库”的概念,用于各类数据的管理和调用,实现了在同一软件平台上,结构解算器和非结构解算器的独立运行,并初步实现了结构解算器和非结构解算器的同步耦合计算[17-19]。
HyperFLOW的核心计算模块采用二阶精度的格心型有限体积方法。无粘项通量计算集成了Roe、VanLeer、AUSM、Steger-Warming等格式;通过梯度重构得到二阶精度的物理量分布。为了抑制激波附近的振荡、保持单元内物理量分布的单调性,集成了多种限制器。粘性项采用中心格式计算,而湍流效应通过“松耦合”湍流模型方程的形式进行求解。目前已集成了SA一方程湍流模型和SST两方程湍流模型,以及相关的改进模型;湍流模型方程本身的计算与N-S方程的求解类似。时间离散集成了显式Range-Kutta、隐式LU-SGS方法等。为了适应工程计算的需求,两种解算器均发展了基于网格分区的大规模并行计算技术。关于该软件的设计思想和研究进展,请参见文献[17-19]。
2 自动化测试平台顶层设计方案该自动化测试平台设计的总体思路是:通过建立规范统一的V & V数据库输入和输出标准,在CFD软件代码更改的情况下,利用交互式GUI操作界面,自动进行代码编译,对指定算例和备选算例实时远程计算,收集计算结果并对计算结果进行对比分析,给出计算结果的不确定度。该平台总体设计框架如图 1所示,具体的技术路线如下:
1)利用MySQL数据库存储标准算例信息,对于每次测试的信息进行分析后分类存储。使用标准SQL语言实现对于算例信息的添加、查询、删除和更改等操作,并实现对于每次算例测试信息的查看和实验结果对比分析等功能。
2)在CFD软件版本更新或直接提交CFD软件可执行代码的情况下(如自主开发的HyperFLOW软件系统,在软件版本升级或局部修改后,一旦提交给SVN版本控制服务器,即可自动编译生成可执行代码),对于算例库中的选定算例进行自动测试,每次测试结果给出结果分析,并保存每次分析记录。
3)在集群环境下计算,可以进行远程控制。后台管理的实现基于Python和Shell script,完成算例的配置、作业管理、进度跟踪和计算完成后的分析归档等任务;前台界面实现基于QT,实现算例的管理、测试的监控和分析结果的查看等功能。前后台网络交互通过Python语言的网络模块实现。
初步设计的功能模块包含:算例管理模块、测试管理模块、结果分析和查询模块等。
3 自动化测试平台数据库设计MySQL是一种开放源码的关联数据库管理系统,采用最常用标准化语言访问数据库,具备体积小、速度快、总体运行成本低等特点,尤其是开放源码这一特点,一般中小型网站开发都选择MySQL作为网站数据库。
基于上述原因,平台采用MySQL作为后台数据库,用于对算例和测试等信息进行管理。其主要数据库表包含:
1)算例信息表cases。算例信息表用于存储算例信息,包含算例添加者名字add_user,添加时间add_time,算例名称case_name,声速范围speed_range,外形configuration,网格文件gridfile,壁面文件wallDistanceFileName,算例状态参数编号state_id,算例说明case_caption,算例验证说明vv_caption,是否标准算例isStandard等。
2)算例状态参数表state_parameter。包含算例的状态参数信息,如迎角attackd,侧滑角sideslipd,马赫数reference_mach_number,雷诺数Reynolds_number,计算模型iviscous,最大迭代步数maxsimustep,壁面温度twall,网格类型gridtype,来流温度reference_temperature_dimensional,时间离散格式tscheme,结构网格离散格式str_scheme_name,非结构空间离散格式unstr_scheme_name等等。
3)测试单基本信息表test_bases。测试信息表用于记录测试单的一些基本信息,包含测试者名称user_name,开始时间start_time,解算器编号solver_id等等。
4)测试算例信息表test_caseinfo。测试算例信息表用于记录测试单里的测试算例的信息。包含测试算例编号test_case_id,测试编号test_id,算例编号case_id,算例结束时间end_time,算例运行时间run_time,结果文件result_files,结果评估值result_evaluate等。
5)解算器信息表solvers。解算器信息表用于记录解算器的一些信息。如解算器名称solver_name,解算器版本solver_version,解算器参数对应表solver_parameter_list等。
其中的参数列表可以根据需要随时添加。其数据库表相互关系如图 2所示。
平台使用标准SQL语言实现对于算例信息的添加、查询、删除和更改,支持每次测试信息的查询,并支持手动添加测试算例。
4 平台前台管理和GUI设计QT是一种跨平台的C++图形用户界面应用程序开发框架。由于其优良的跨平台优势、面向对象编程、支持2D/3D渲染、丰富的API和大量的开发文档等特点,平台选择QT作为前台GUI开发的工具。其基本界面如图 3所示。
界面通过优化设计,目前主要包含4个窗口:自动编译,算例管理,测试监控和结果查看。
图 3显示的是测试监控窗口。
窗口中左边列表是所有测试单的基本信息,右边列表是左边列表所选测试单中的测试算例的测试信息情况。
窗口中点击算例管理,将会显示测试添加和算例管理窗口,如图 4所示。
窗口中点击结果查看,将会显示结果显示窗口,如图 5所示,其中用不同的图示显示了计算结果的优劣,还可以对算例结果的一些统计值进行查看。
GUI设计之前进行了深入的用户需求分析,基本设计已经实现,能较好满足用户需求,具备良好的人机交互体验。通过用户使用测试,目前已基本稳定。
5 网络通信和后台管理Python是一种面向对象、解释型计算机程序设计语言。Python语法简洁而清晰,拥有丰富而强大的类库,能快速实现很多有用的功能。
网络通信模块即通过Python的网络模块实现,主要包含文件的传输和命令的传达。这样实现的好处在于,后台无需通过socket服务器端时刻监听窗口,而利用远程服务器一般自带的ftp服务器和ssh认证服务器即可,在后台配置方面具备良好的兼容性。
后台对目前正在计算的算例进行进度的实时监控,为前台显示提供进度信息。
后台接收到前台传达的命令之后,调用后台脚本完成命令内容。主要的命令包含自动编译命令、添加测试命令、查询测试信息命令、回收结果命令等。该平台的后台作业计算依托于中国空气动力研究与发展中心计算空气动力研究所的大型计算机集群。该集群系统以Linux为操作系统,目前拥有300万亿次/秒的计算能力。
6 计算结果的验证与确认方法测试算例计算完成之后,平台会自动回收结果文件,并对计算结果进行初步分析与评估。
验证过程:CFD验证过程包括代码验证与数值解验证两方面[1, 10],平台目前主要针对后者进行验证,主要通过网格收敛性研究完成。
CFD偏微分方程组(PDEs)的四类误差来源[20]:
1)物理模型误差,包括由于添加人工粘性、边界条件设置、湍流模型等引入的误差;
2)空间离散误差和解算误差;
3)程序误差,可理解为是代码错误;
4)舍入误差。
程序误差属于计算机科学和软件工程范畴,通过代码验证过程可以充分消除其影响,而现代计算机的计算舍入误差大多是可忽略的。针对求解N-S方程的定常问题,解算误差主要是迭代收敛误差。验证过程主要考虑不完全迭代收敛误差和空间离散误差两项。对于前者,可通过观察求解过程中网格解的最终收敛结果随迭代次数的变化幅值获得。而研究空间离散误差的方法通常是利用基于误差行列展开式的Richardson插值法[20],利用多套网格的计算结果,通过网格收敛性研究,最终获得插值解及空间离散误差。
确认过程:确认的简单定义即是否求解正确的方程[1, 10]。确认是模型精确表示的物理状态与模型预期用途逼近程度的测度过程,强调求解问题是否正确。确认的基本内容是指出和量化在概念模型和计算模型中的误差和不确定度,量化数值解的数值误差,评估实验的不确定度,最后进行计算结果和实验数据的确认比较。通常采用层次结构的方法由下至上逐层确认,只有在较低层次上完成确认,才有可能对复杂系统进行确认。
在不确定度估计方面,张涵信参照实验不确定度估计的研究方法,提出了不确定度估计方法[8],用计算数据有效位数可以达到真值的前n位来表示计算结果的准确度。
Oberkampf[3]提出一种确认不确定度尺度,表达为:
式中,I是需进行确认的位置点的总数,y(xi)与Y(xi)分别是位置xi处的计算与实验值,后者实际以平均值代替。V越接近1,实验值与计算值的一致性越好。本平台初步将评价Oberkampf的不确定度作为确认过程的一种方法。
7 自动化测试平台的初步应用下面就高超声速圆柱绕流、球头和双椭球等算例的自动测试应用进行简要介绍,以说明利用该平台对HyperFLOW软件的测试情况。
7.1 高超声速圆柱绕流算例1)添加算例过程:
选择基本参数文件路径,如图 6所示,在界面上设置基本参数如下:
马赫数:8.03;雷诺数:1.835×105;来流温度:T∞=124.94K;壁面温度:TW=294.44K。网格为二维单块结构网格,流向和法向网格点数分别为121和81;空间格式:Steger;时间格式:LU-SGS。
在算例说明描述框中可以加入描写算例的说明。如果参数配置框中还需要设置另外的参数,可以手动添加设置新的参数名字和参数值。
算例设置完毕后,点击添加按钮,高超圆柱绕流算例即加入到本次即将测试的算例数据库中。
2)添加测试过程:
平台支持手动添加测试和自动添加测试,手动添加测试时可以根据需要选择不同的解算器版本和多个不同算例。
当解算器版本有更新时,平台则会自动添加测试,调用数据库中的基本算例进行计算。
3)自动测试过程:
测试添加成功后,平台即进入自动测试过程,同时可以实时监控进度,给出计算时间、剩余时间等信息,如图 7所示。
4)数据回收和分析过程:
计算完毕之后,平台会自动回收计算结果,并自动分析结果文件,自动生成与试验结果对比文件,如图 8是压力分布和试验结果的对比,图 9是热流分布和试验结果[21]的对比,并计算出不确定度指数分别为Vp=0.9687,Vhf=0.9458,说明与实验值符合良好。
7.2 高超声速球头算例
1)算例添加:
在界面上设置基本参数如下:
马赫数:10;雷诺数:1×105;来流温度:T∞=79K;壁面温度:TW=294K。网格为三维单块结构网格,网格点数为61×81×19(流向×法向×周向);空间格式:Steger;时间格式:LU-SGS。
2)和3)过程和上述相同。
4)数据回收和分析过程:
自动生成与试验结果对比文件,如图 10是压力分布和试验结果的对比,图 11是热流分布和试验结果的对比,并计算出不确定度指数分别为Vp=0.9886,Vhf=0.9485,说明与实验值[22]符合良好。
7.3 高超声速双椭球算例
1)算例添加:
在界面上设置基本参数如下:
马赫数:8.15;雷诺数:9.6×105;来流温度:T∞=56K;壁面温度TW=296K。网格为三维多块结构网格,网格点数为21×61×21+81×61×61(流向×法向×周向);空间格式:Steger;时间格式: LU-SGS。
2)和3)过程和上述相同。
4)数据回收和分析过程:
自动生成与试验结果对比文件,如图 12是上表面子午线上压力分布和试验结果的对比,图 13和图 14是上下表面子午线上热流分布和试验结果[23]的对比,并计算出不确定度指数分别为Vp=0.7966,Vhf_up=0.7105,Vhf_down=0.7262。该算例压力分布与实验数据符合较好,但是热流分布的一致性较差,主要误差来源是第二椭球突起位置的热流预测,此处正是分离区位置,又存在激波和旋涡的干扰,对于热流的数值预测与实验测量都存在一定难度。不确定度计算结果表明,对于该算例仍有需要改进的空间,比如网格分布、计算格式和边界处理选取等,由于本文仅涉及自动化测试,关于计算结果的改进这里不再讨论。事实上,可以通过选用其他计算格式改进计算结果。
8 总结与展望
在大型CFD软件开发过程中,版本的更新速度很快,每个修改或升级版本,都需要对基本算例进行测试,进而进行全面系统的验证与确认。本平台实现了解算器的自动编译,并建立了基本算例数据库,每次解算器版本的更新,平台都会自动对基本算例进行测试,并对计算出来的结果进行初步的验证与确认分析,通过和以往的结果分析进行对比,就可能发现当前解算器版本的问题所在,及时修改完善。该平台基于MySQL数据库,具备友好的人机交互界面,目前具备算例管理、算例测试监控和初步的算例结果分析等功能,有助于提高CFD软件的开发效率。
虽然我们对自动化测试平台进行了初步的设计与开发,但是其仅仅是一个初样,其中的验证与确认分析功能还非常简单,对于不确定度的量化分析尚需深入研究,算例数据库中的算例也比较简单。下一步我们将着力丰富数据库中的算例,构成覆盖低速到亚跨、高速到高超声速、由简单到复杂的算例体系,提供标准的计算网格(包括结构网格、非结构网格和混合网格等,并提供不同密度的网格以便于开展网格收敛性研究),研究完善各种计算结果的统计分析方法,尤其是不确定度量化方法,开发GUI分析工具,实现分析过程的自动化和智能化,从而更好地解放人力资源,提高大型CFD软件的开发效率。
[1] | AIAA. Guide for the verification and validation of computational fluid dynamics simulations[S]. AIAA G-077-1998, 1998. http://arc.aiaa.org/doi/abs/10.2514/4.472855 |
[2] | Rahaim C P, Oberkampf W L, Cosner R R, et al. AIAA Committee on standards for computational fluid dynamics: Status and plans[R]. AIAA 2003-0844. |
[3] | Oberkampf W L, Trucano T G. Validation methodology in computational fluid dynamics[R]. AIAA 2002-2549. |
[4] | Roache P J, Chia K, White F. Editorial policy statement on the control of numerical accuracy[J].Journal of Fluids Engineering, 1986, 108(1):2.DOI:10.1115/1.3242537 |
[5] | AIAA. Editorial policy statement on numerical accuracy and experimental uncertainty[J].AIAA Journal, 1994, 32(1):3.DOI:10.2514/3.48281 |
[6] | Editorial policy statement on numerical accuracy[J]. Journal of Heat Transfer, 1994, 116: 797-798. |
[7] | MacCormack R W. A perspective on a quarter century of CFD research[R]. AIAA-93-3291-CP, 1993. |
[8] | Validation Cases[EB/DB]. http://www.cfd-online.com/Links/refs.html. |
[9] |
Zhang H X, Zha J. The uncertainty and truth-value assessment in the verification and validation of CFD[J].Acta Aerodynamica Sinica, 2010, 28(1):39–45. (in Chinese) 张涵信, 查俊. 关于CFD验证确认中的不确定度和真值估算[J]. 空气动力学学报, 2010, 28(1) : 39–45. |
[10] |
Deng X G, Zong W G, Zhang L P, et al. Verification and validation in computational fluid dynamics[J].Advances in Mechanics, 2007, 37(2):279–288. (in Chinese) 邓小刚, 宗文刚, 张来平, 等. 计算流体力学中的验证和确认[J]. 力学进展, 2007, 37(2) : 279–288. |
[11] |
Chen J Q, Zhang Y R. Verification and validation in CFD based on the Richardson extrapolation method[J].Acta Aerodynamica Sinica, 2012, 30(2):176–183. (in Chinese) 陈坚强, 张益荣. 基于Richardson插值法的CFD验证和确认方法的研究[J]. 空气动力学学报, 2012, 30(2) : 176–183. |
[12] | Bai Wen, Li Li. CFD V & V and open benchmark database[J].Chinese Journal of Aeronautics, 2006, 19(2):160–167.DOI:10.1016/S1000-9361(11)60295-1 |
[13] |
Shen H C, Yao Z Q, Wu B S, et al. A new method on uncertainty analysis and assessment in ship CFD[J].Journal of Ship Mechanics, 2010, 14(10):1071–1083. (in Chinese) 沈泓萃, 姚震球, 吴宝山, 等. 船舶CFD模拟不确定度分析与评估新方法研究[J]. 船舶力学, 2010, 14(10) : 1071–1083. |
[14] | Bai W, Qv L X, Li Q, et al. Summary of China high credible aeronautical CFD workshop[C]//The abstract book of the 8th international conference on computational fluid dynamics, pp233-234, Paper Number ICCDF8-2014-0343. July, 14-18, 2014. |
[15] |
Liang Y H, Yang Y, Zhu C, et al. Analyze platform of CFD reliability-WiseCFD[C]//The proceeding of the 12th national conference on CFD. 2004-08, Shanxi, Xi'an. 梁益华, 杨永, 朱朝, 等. CFD可信度分析平台WiseCFD, 计算流体力学研究进展[C]//第十二届全国计算流体力学会议论文集. 2004-08, 陕西西安. http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGKQ200408001152.htm |
[16] |
Sun Jiuzhen. The design and application of CFD credibility analysis platform based on OSGi[D]. Master Thesis of Xidian University, 2012. (in China) 孙久振.基于OSGi的CFD可信度分析平台的设计与实现[D].西安电子科技大学硕士学位论文, 2012. http://cdmd.cnki.com.cn/Article/CDMD-10701-1013110912.htm |
[17] |
He X, Zhang L P, Zhao Z, et al. Research of general large scale CFD software architecture and data structure[J].Acta Aerodynamica Sinica, 2012, 30(5):557–565. (in Chinese) 赫新, 赵钟, 张来平. 大型通用CFD软件体系结构与数据结构研究[J]. 空气动力学学报, 2012, 30(5) : 557–565. |
[18] | He X, Zhao Z, Zhang L P. The research and development of structured-unstructured hybrid CFD software[J].Transactions of Nanjing University of Aeronautics & Astronautics, 2013, 30(sup):116–126. |
[19] |
He X, Zhao Z, Zhang L P. The research and development of structured-unstructured hybrid CFD software HyperFLOW[C]//The proceedings of the 15th Chinese CFD Conference, Yantai, Shandong, Aug. 2012. (in Chinese) 赫新, 赵钟, 张来平.结构非结构耦合计算CFD软件HyperFlow初步验证[C]//第15届全国计算流体力学会议论文集, 2012年8月, 山东烟台. |
[20] | Roy C J. Grid convergence error analysis for mixed-order numerical schemes[R]. AIAA 2001-2606. http://cn.bing.com/academic/profile?id=2123077535&encoded=0&v=paper_preview&mkt=zh-cn |
[21] | Wieting A R. Experimental study of shock wave interference heating on a cylindrical leading edge[R]. NASA TM-100484, 1987. http://cn.bing.com/academic/profile?id=254145052&encoded=0&v=paper_preview&mkt=zh-cn |
[22] |
Yuan Xianxu. Numerical simulation for unsteady flows and research on dynamic characteristics of vehicle[D]. Mianyang: China Aerodynamics Research and Development Center, 2002. (in Chinese). 袁先旭.非定常流动数值模拟及飞行器动态特性分析研究[D].绵阳:中国空气动力研究与发展中心, 2002. http://www.oalib.com/references/16767296 |
[23] | Aymer D, Alziary T, Luca L De, et al. Experimental study of the flow around a double ellipsoid configuration[M]. In: Desideri J A, Glowinski R, Periaux J. Hypersonic Flows for Reentry Problems: Vols. Ⅰ & Ⅱ, Springer-Verlag, 335-357. 1991. |