摘要
【应用背景】面向高速列车在复杂场景中的气动性能仿真与气动外形优化问题,以提高仿真精度与并行计算效率为目的。【方法】自主研发了高性能流体力学计算软件CCFD v3.0,开发了高精度NS方程空间离散算法、高效线性代数求解、湍流模拟、网格并行处理等核心功能模块,并移植到了两款国产异构超算平台,分别针对性地开展了深度并行计算优化。【结果】CCFD v3.0的计算结果表明,在高速列车头部外形中,底阻和摩阻是列车行驶中的最主要阻力来源,分别占比71%与23%;而车体的阻力构成则为摩阻占比89%,型阻占比11%。【结论】CCFD v3.0表现出了良好的并行加速效果,实现了高速列车的气动性能预示与流场机理分析。
关键词: 高性能计算; CCFD v3.0; 并行优化; 高速列车; 气动性能
引言
计算流体力学(Computational Fluid Dynamics, 简称CFD),是对流体力学问题在计算机上进行数值模拟与分析的方法。随着计算机硬件水平的提高和CFD数值方法的发展,CFD技术发展成为一门以计算机为基础模拟流动问题及相关现象的交叉学科,涉及到数学、物理和计算机科学等。目前以数值求解Euler方程和RANS(Reynolds Averaged Navier-Stokes)方程为代表的CFD技术已经被广泛的应用于航空、航天、气象、船舶水利、医药卫生、机械建筑、国防装备及石油工业等领域里的流体流动及各种多学科耦合的复杂问题[1]。随着计算机硬件水平的发展,促使超算平台计算能力的极大提升,我国经过多年持续投入与努力,相继研发了曙光系列、天河系列、神威系列等超级计算机,并且目前正在积极部署E级超算,为国产自主CFD软件的更快发展提供了优质的平台。
高速列车目前已成为我国的核心技术和产业之一,而空气动力学性能是高速列车设计的重要指标[2]。由Davis公式可知,高速列车的气动阻力与速度的平方成正比,随着车速提升,气动阻力急剧增加,并成为高速列车行驶阻力的主要部分。此外,高速列车流场中存在复杂的作用机制,包括地面效应、底盘与地面的半受限空间流动、大特征长度车体壁面流动的转捩与分离、底部大范围分离流动等。准确预示高速列车气动性能并精确分辨复杂流场结构,对高速列车气动设计有重要意义,对CFD软件提出了较高要求。
本文介绍了由中国科学院计算机网络信息中心自主研发的高性能流体力学计算软件CCFD v3.0,其采用分层模式进行模块化开发,针对高速列车的空气动力学研究问题,发展了高精度NS方程空间离散算法、高效线性代数求解技术、湍流模拟技术、网格并行处理技术等在内的核心功能与算法,并基于国产异构超算平台完成了代码移植与并行优化,初步实现了高速列车的气动性能预示与流场机理分析。
1 研究背景
目前,全世界CFD软件超过200种,这些CFD软件可以简单地被归纳为三类:商业软件、内部科研软件、较为完整的开源程序。目前被广泛使用的主流商业CFD软件主要以国外商业软件为主,例如ANSYS FLUENT、CFX、CFD++、STAR-CD/CCM+等国外软件正广泛地活跃于工业界,但国内目前尚无可以与之对标的成熟商业CFD软件。在并行计算方面,早期的商业软件普遍扩展性较差,即使并行规模仅有数百核,但并行效率依然不高。随着软件的发展与版本的更新,以及工业计算对并行效率的强烈需求,商业软件在并行计算方面也做出了改进,例如ANSYS FLUENT在2016年进行了17.2万核计算测试[3-4],该测试由斯图加特大学高性能计算中心(HLRS)在当时全球排名第14的超级计算机Hazel Hen上开展,实现了82%的运行效率,峰值性能达到了7,403 TFlop/s。但需要特别强调的是,几乎所有国外的商业CFD软件,在国内的使用中都受到严格限制,最大可并行核数被软件Licence设置了使用上限,例如ANSYS FLUENT国内Licence被限制在计算不能使用超过512核。
内部科研CFD软件主要是一些科研机构在专业细分领域所开发的内部In-House程序,例如FUN3D、OVERFLOW、EDGE、GASP等,并且国外的一些优秀软件对国内严格保密。内部科研CFD软件普遍都具有在通用CPU平台上进行MPI并行的能力,并且部分软件的并行性能非常优秀。例如由美国国家宇航局(NASA)开发的非结构网格不可压缩流动求解器FUN3D,通过集成著名的可扩展科学计算工具包PETSc,于1999年获得了“戈登·贝尔”奖[5]。
国外开源CFD程序以OpenFOAM(Open source Field Operation And Manipulation)为最典型代表,其于2004年正式发行并开源其源代码[6]。它的最大优势是其核心功能是由大量的基础库实现的,用户可以基于此通过一些必要的数学、物理和编程知识来创建新的求解器和工具,具有很好的扩展性,用户在创建定制化的方法或对象(例如边界条件或湍流模型)时,无需修改或是重新编译上层应用,便可在已有的求解器上工作。目前,OpenFOAM已成为众多超级计算机平台上的主流应用之一,上海交通大学高性能计算中心[7]通过C/C++混合语言编程,将OpenFOAM成功移植到“神威·太湖之光”超算平台上,解决了C++软件与国产平台编译器不兼容的问题;在网格规模为256万的多节点并行扩展测试中[8],相较于单进程计算,使用512个MPI进程达到了87.6%的强扩展性与90%的弱扩展性。
OpenCFD(An Open CFD code with High Order Accuracy Method)是国内最具有代表性的并行开源CFD程序之一,是由中国科学院力学研究所李新亮研究员团队开发的一套高精度计算流体力学软件[9]。2014年,OpenCFD在广州国家超算中心“天河-2”上采用MPI+OpenMP混合编程模式,对10亿网格的某升力体飞行器进行DNS模拟,24万核的并行效率达到了65.14%