基于面向对象的非结构航空CFD软件体系结构设计
来源:用户上传
作者:乔龙 李艳亮 杨思源 唐海龙 尹强 吴奥奇 曾凯 钱战森
摘要:基于面向对象程序设计思想和航空计算流体力学(CFD)流程,设计了包含基础功能层、功能模块层和应用程序层的CFD软件体系结构,实现了面向航空飞行器空气动力学问题的非结构网格Navier-Stokes方程求解软件ARI-CFD V1.0的研制。同时,也通过二维零压力梯度平板和二维翼型算例对软件的有效性进行了验证。此外,ARI-CFD软件采用面向对象设计,有效解决了早期航空CFD软件采用面向数据流的结构化设计所带来的可维护性差、可重用性低以及大型工业程序研制周期长等问题,可以为面向航空飞行器设计的多学科仿真软件高效、可持续性研制提供有效支撑。
关键词:CFD软件;面向对象;软件体系结构;空气动力学
中图分类号:V211.3文献标识码:ADOI:10.19452/j.issn1007-5453.2022.07.008
随着计算机硬件技术及数值计算技术的快速发展,计算流体力学(CFD)已成为航空飞行器设计阶段性能评估的重要手段,并有效地促进飞行器型号的快速迭代。CFD软件作为航空飞行器设计过程中的重要工具,在飞行器设计的多个阶段得到广泛应用。
早期的航空CFD软件主要采用面向数据流的结构软件设计技术,具有资源分散、代码独立、研发周期长等特点。同时,受早期软件研发环境影响,这些软件普遍采用Fortran或C等语言实现向过程的开发,大量代码的积累也使其难以摆脱面向过程的开发模式。这对现代软件工程中代码的复用带来了难以克服的障碍,更阻碍了CFD软件所包含工业知识的共享与传播[1]。随着现代软件工程技术的快速发展,以及相对高级的程序语言的开发推广,基于C++或Python等语言的面向对象程序设计技术得到广泛应用。面向对象程序O计主要利用抽象、封装等机制,实现包含对象、类、继承等内容的软件系统设计[2-3]。其中,类包含了数据和操作,对象是类的实例化,继承是类之间的信息传递关系,对象和继承的功能有效地支撑了代码复用。此外,面向对象所带来的多态性,也能够有效提升操作的透明性、可理解性和维修性。基于上述特点及优势,面向对象程序设计目前已应用于多个相对较新的CFD软件中,如OpenFOAM[4]、SU2[5]等。
国内在CFD理论研究及软件研发方面已经开展了大量工作,并取得了丰硕的成果。近年来,国内工业CFD软件研制单位也紧密结合现代软件工程技术开展面向对象CFD软件研制,如中国空气动力研究与发展中心研发的大规模并行CFD软件PHengLEI[1, 6],该软件基于C++语言和插件化思想开发,具有良好的可扩展性,目前已在国内众多高校、研究所进行了推广应用。
中国航空工业空气动力研究院作为航空工业下属的唯一气动力研究机构,在CFD理论研究、CFD软件研发及风洞试验验证方面已有大量积累,初步形成了包含ENSMB[7]、UNSMB[8]、OVERSET[9]等核心模块的专业CFD软件平台,且依靠自主高性能计算硬件在多个航空型号研制中发挥了重要作用。在此基础上,中国航空工业空气动力研究院紧密结合软件工程及国产高性能硬件发展趋势,联合西安交通大学陶文铨院士团队和西安数峰信息科技有限责任公司开展面向对象非结构航空CFD软件体系结构研究,发展大规模航空CFD软件ARI-CFD,为进一步形成可服务于航空器型号设计的生产型CFD工具奠定基础。
本文主要通过航空CFD软件体系结构需求分析、面向对象软件体系结构设计以及软件测试与验证等研究,系统介绍了面向对象非结构航空CFD软件ARI-CFD V1.0的设计思路及软件功能。
1航空CFD软件体系结构需求分析
作为航空器选型过程中的重要工具,CFD软件在航空领域具有广泛的应用,同时,飞行器精细化设计也对CFD软件复杂流场仿真能力提出了明确的需求。
首先,航空CFD软件体系结构设计需要满足大规模复杂流动仿真需求。当前,航空型号计算任务具有规模大、工况多、模型复杂、周期短等特点,这也对CFD软件提出了明确的需求,如网格生成耗时短、并行可扩展性强、鲁棒性高、结果精准度高、前后处理接口丰富等。基于非结构网格、粗粒度MPI并行、二阶精度有限体积法离散的CFD软件,具有较好的复杂几何适应能力、并行计算效率、鲁棒性及守恒性;同时,通过结合大量风洞数据验证保证CFD软件的精准性,可以满足常规航空器设计中复杂流动数值仿真的需求,目前已在飞行器型号设计中得到广泛应用。
其次,航空CFD软件体系结构设计需要满足可持续性快速研制需求。目前,以空气动力学为核心的多学科数值仿真已逐渐成为航空飞行器多学科设计的重要手段,国外已形成多个工业级多学科仿真软件。作为飞行器多学科仿真的核心,CFD软件应满足其面向多学科软件快速可持续性扩展的需求,如软件功能模块独立、维护性高、开发周期短、复用性高、可扩展性强、适应多学科多物理场仿真等。采用面向对象程序设计思想,以物理场为数据载体,以微积分方程离散求解为目标,发展用于微积分方程求解的通用基础框架,并基于此研制航空CFD软件,可以保证CFD软件具有良好的可持续性,同时也可满足面向航空飞行器多学科多物理场仿真的可扩展性需求(如高超声速气动热[10]、直升机噪声[11]等)。
基于上述对航空CFD软件体系结构需求的分析,中国航空工业空气动力研究院CFD软件研发团队结合面向对象程序设计思想,实现基于非结构网格、粗粒度MPI并行及二阶精度有限体积法离散的航空CFD软件体系结构设计,形成了大规模自主航空CFD软件ARI-CFD V1.0。
2面向对象软件体系结构设计
2.1软件总体框架设计
为保证软件具有较好的易维护性及可扩展性,ARI- CFD软件整体采用分层式程序设计,主要包括通用基础功能层、功能模块层和应用程序层。通用基础功能层是软件前处理、求解器及后处理功能实现的基础,也可作为面向不同应用场景其他求解器研制的基础。功能模块层为前处理、求解器及后处理应用程序的核心支撑模块,主要功能是基于基础层模块实现多种CFD前后处理及求解算法。ARI-CFD软件体系结构如图1所示。
nlc202208122105
转载注明来源:https://www.xzbu.com/1/view-15437561.htm