第1章 绪论
随着计算机硬件技术和计算方法的迅速发展,计算力学已经逐渐成为解决工程问题的重要手段,在航空航天、国防武器以及其他大型装备研制中起到了至关重要的作用。计算力学将计算机技术、计算数学和力学交叉结合,通过数值算法和计算机程序研究工程和科学中与力学有关的各种复杂问题,是计算科学和工程的一门核心学科。
近些年来,我国在航空航天工程、战略武器工程以及其他大型装备研制方面取得了较快发展,其结构复杂性的不断增加,精度和可靠性要求的不断提高对国内计算力学尤其是结构动力学的有限元数值模拟提出了新的挑战,主要体现在以下几方面。
(1)计算规模和求解效率。一方面,*近几十年大量涌入的商业有限元软件对国内冲击巨大,严重阻滞了自主软件的研发;另一方面,这些涌入的商业软件对国内科研机构尤其是军工部门采取了严格的技术禁运措施,受技术封锁影响,这些商业软件基本都是单机版,其结构动力学的计算能力维持在百万自由度量级,单次计算时间达数小时以上,加之反复的模型修正和重新计算,对一个百万自由度规模问题的动力学分析往往数月之久。求解规模和效率的瓶颈问题很大程度上限制了国内大型复杂装备的数值模拟能力。
(2)求解精度。受计算规模影响,目前航空航天、武器工程以及其他大型装备的数值模拟大多采用了简化建模的方式,或者将整体结构分解成几个子结构单独计算,再考虑边界连接等因素综合分析整体结构的响应。这种简化建模和模型综合的处理方式大大降低了数值模拟的精度。
(3)数值求解算法。商业软件具有稳定性高和适应性广等优点,弊端也很突出,因为商业软件大多采用了传统、成熟的串行数值算法,这些算法构成了商业软件的核心,如果直接进行并行化改造就需要对整个商业软件各模块结构进行重新设计,无异于开发一个新的商业软件。因此在一些行业对大规模数值计算需求还不是非常强烈的现状下,各商业软件公司基本就是在软件维护和功能扩充等方面进行一些微小改进,很少添加先进算法。
在国外的层层技术封锁下,引进国内的商业有限元软件无论在计算规模、求解效率还是求解精度以及数值求解算法等方面都无法满足大型装备从部件级到整体系统级的精细数值模拟需求。在相关典型需求方面,本书以如下两个装备实例进行说明。
在武器工程领域中,以美国圣地亚国家实验室对某武器系统数值模拟的追求和发展为例 [1],便可以看出复杂武器系统对细节模拟和结构动力学计算规模上的需求(图 1.1)。圣地亚实验室近些年在武器结构振动分析中,网格的尺度也已经达到毫米量级,在各组件级振动分析中的网格尺度则达到了 0.1毫米量级,有限元计算规模达到数千万至上亿自由度以上,美国对复杂武器系统的细节模拟和对计算规模的追求在近些年引领了数值模拟能力的新高度。
图1.1 圣地亚国家实验室在细节模拟与计算规模上的发展情况[1]
在大型装备领域,以巨型光机装置为例 [可参照图 1.2给出的美国国家点火装置 (National Ignition Facility,NIF)图片 [2]],该装置是研究热核聚变、高能密度物理、高能激光等科学技术的重大科学实验装置,激光打靶所需的聚焦精度( 20~50μm)对其动力学稳定性设计提出了苛刻要求。为满足其定位精度、稳定性设计指标等方面的苛刻要求,动力学分析须充分地考虑装置的细节和整体响应(从镜架系统的厘米尺度到建筑结构的数十米尺度)以及部件到整体的动力学传递特性。经初步估算,整体系统的精细有限元模型至少达到数亿自由度。由于该类装置投资巨大,不可能多建并开展预试验,系统级动力学稳定性评估只能依赖于数值模拟。
图1.2 美国国家点火装置示意图[2]
我国类似的复杂装备同样面临超大规模精细模拟的需求。此外,在航空航天大型装备、高层建筑、超级大坝等军民复杂结构的整体级分析中也面临类似的超大规模计算需求。面对这些重大需求,传统商业软件的弊端日益显现,其在计算能力和算法等方面的限制已经远不能满足大型复杂装备整体系统级的精细数值模拟需求。
面对这些挑战和需求,美国近 30年来将高性能科学计算提升到了一个前所未有的高度。美国能源部在 20世纪 90年代中期针对涉及国家安全的工程领域推行“加速战略计算创始( Accelerated Strategic Computing Initiative,ASCI)”计划,试图通过高性能数值计算解决上述领域中的产品研制以及产品延寿任务中的问题。美国“竞争力委员会”(Council on Competitiveness)2004年发布白皮书将“建模、模拟和分析的高性能计算”视为维系美国制造业竞争力战略优势的一张王牌,呼吁“从竞争中胜出就是从计算中胜出( to out-compete is to out-compute)”。
针对商业有限元软件的壁垒,美国、日本等发达国家近些年来一方面在努力弥补商业软件在高性能计算方面的缺陷(受原始软件架构和内核影响,目前看来该方面的工作收效甚微);另一方面投入巨资开展高性能数值计算研究,研发了一系列新的大规模高性能分析框架和应用软件。然而,国外这些高端软件产品对国内几乎完全禁运,只能从其有限公开的理论手册中探寻少量的功能描述,相关代码和软件产品根本不对国内开放。
从总体上看,无论在算法研究、高性能计算软件研制,还是高性能计算的应用方面,我国和国际先进水平都还有一定差距。面临国外层层技术封锁,我国钟万勰、贺贤土院士等对事关国家竞争力和国家安全战略的高性能计算技术提出了诸多建议,强调发展自主力学软件,突破“禁运”才是“道”[3,4]。2007年,中国科学院向国家提出了《关于发展事关国家竞争力和国家安全战略的 CAE软件产业的建议》,再次吹响了自主发展 CAE软件的号角。同年,国家自然科学基金委员会将“计算力学软件集成与标准化”列入宏观调控方向,并从 2008年开始在数理科学部力学科学处的面上项目中专列“计算力学软件”项目予以倾斜资助。
在各类项目基金的资助下,国内近几年涌现出大量的自主力学软件,如大连理工大学陈飙松教授团队开发的面向工程和科学计算集成软件系统 SiPESC[5]、北京理工大学宁建国教授团队开发的三维爆炸与冲击问题高性能仿真软件 EXPLOSION-3D[6]、清华大学张雄教授团队基于物质点法( MPM)开发的三维显式并行数值仿真软件 MPM3D[7]、中国科学院张林波教授团队开发的并行自适应有限元软件平台 PHG[8]、中国科学院梁国平教授团队开发的自动生成有限元程序的分析平台 FEPG[9]等。这些自主力学软件各有特色,为各类工程问题分析提供了重要工具。
面对复杂装备对大规模高效计算的迫切需求和国内外高性能计算的研究热潮,中国工程物理研究院从 2007年开始,也一直在探索和推进结构力学相关的高性能计算研究,着力解决复杂装备研制过程中的大规模高效数值模拟问题。在国家自然科学基金课题、国家重点研发计划课题等资助下,中国工程物理研究院高性能数值模拟软件中心研发了面向非结构网格并行计算的 JAUMIN (J Parallel Adaptive Unstructured Mesh applications INfrastructure)框架 [10,11],形成了支撑有限元应用软件研发的底层核心数据结构。在 JAUMIN框架基础上,作者所在团队研发了有限元并行计算平台 PANDA (Parallel Adaptive Nonlinear Dynamic-and-static Analysis)[12]。在 PANDA平台基础上,作者团队针对大型装备数值模拟需求,先后在大规模模态分析以及谐响应分析、地震响应谱分析、随机振动响应分析及瞬态时域响应分析等迫切需求的动力学分析类型方面开展了一系列的高效算法研究和并行软件研发,既紧跟国外动力学高性能计算研究前沿,又根据具体应用需求开展理论创新,形成了一套相对完善的结构动力学并行求解理论体系和软件,为复杂装备研制和评估提供了高效精细数值模拟途径。
本书的相关内容将对各类动力学分析类型的算法研究和软件研发进行详细介绍,相关研究内容和成果可直接应用于我国下一代巨型光机装置、武器系统以及其他军民领域大型装备的研制中,一方面为复杂装备的高效数值模拟和可靠性评估提供理论及技术支持,提升数值模拟能力和置信度;另一方面,对于提升我国自主高性能并行计算软件地位,打破国外高端软件禁运,促进我国向国际前沿靠拢将起到至关重要的作用。
本书相关研究工作紧密结合 JAUMIN框架数据结构和 PANDA软件平台,采取目前国际上流行的“基于共性支撑框架开发应用软件”模式,按照“理论分析 -算法设计-并行实现和验证优化 -大规模应用”的研究思路和面向对象的软件编程思想,开展结构动力学各分析类型的并行分析软件研发。其中模态分析是各类大规模振动响应分析的基础,本书将在模态分析研究基础上,对后续各类振动分析类型按照“综合设计,逐个突破”的方式开展研究,各类振动分析类型的研发主体思路比较相近,算法的具体实现细节又相对独立,对于每种动力学分析类型,将按照图 1.3所示的整体思路开展工作,结合图 1.3简要说明如下所示。
(1)以模态分析取得的成果为基础,根据载荷特征等参数建立各类动力学分析对应的动力学方程,对各分析类型涉及的核心理论公式进行前沿追踪和逐一推导;在各类型算法研究过程中,基于 JAUMIN框架数据结构对关键求解环节分别研究适应性强的求解算法,对计算流程进行详细分析,研究求解过程中的并行策略,采用“抽取共性、剥离个性”。共性部分(矩阵向量等数学操作运算)借助底层框架进行实现,个性部分(响应求解过程等)由算法和软件本身进行实现,在兼顾计算过程中负载平衡的同时,尽可能地减少各进程之间的数据通信,形成“层次化、模块化”较强的动力学算法设计。
图1.3 各振动分析类型采取的研究方法
(2)在此基础上,采用“面向对象编程”的思想,以 C++和 MPI为主要代码工具,在 JAUMIN框架和 PANDA平台基础上开展并行程序设计,形成各分析类型的软件源代码,对算法设计进行逐步跟进和实现。研发过程中结合数值试验对算法复杂度、计算流程和负载平衡等关键环节进行优化,形成鲁棒性和可扩展性较强的动力学软件模块。
(3)对研发形成的软件模块,通过理论解、商业软件有限元解以及部分动力学试验等对软件的正确性和可扩展性等进行验证和反复优化,*终形成同时包含算法设计和自主软件代码的动力学并行求解模块。针对现有武器系统、光机装置等复杂装备,依托 JAUMIN框架的前后处理功能,建立相关装备的大规模有限元模型,开展大规模动力学精细模拟应用研究,实现包含“物理/数学建模-算法核心设计 -算法实现和验证优化-装备应用”全过程的高效动力学模拟,验证算法和软件的有效性。
1.1 大规模结构动力学分析国内外研究现状
结构动力学有限元分析的基本思路是通过对结构物理模型进行有限元离散,根据不同分析类型形成所需的动力学离散方程并进行求解,*终获取所需的物理量并对结构特性进行评估。经有限元离散后的结构动力学基本方程可用式( 1.1)进
行统一描述:
(1.1)
式中,M、C和 K分别为结构离散后的质量矩阵、阻尼矩阵和刚度矩阵; x为离散结构上各自由度位移向量;f为载荷向量。式(1.1)所描述的二阶常微分方程包含了丰富的动力学分析类别和求解算法等方面的内涵,是一个典型的历久弥新问题。在考虑有限元分析达到亿自由度量级以上的大规模问题时,结合并行设计思想探索式(1.1)的求解具有较强的前沿性和挑战性,涉及各类动力学问题高效求解算法和软件研发问题。根据实际分析需求,式(1.1)所描述的动力学方程可以大致分为时域分析(待求变量 x为时间相关)和经过傅里叶变换后的频域分析(待求变量 x为频率相关)两大类。对于超大规模结构动力学问题,这些分析类型大多建立在模态分析
展开