欢迎来到天天文库
浏览记录
ID:46649015
大小:751.82 KB
页数:4页
时间:2019-11-26
《光滑粒子流体动力学的一种并行数值计算方案》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第29卷第l期航天器环境工程20l2年2月SPACECRAFTENvIRONMENTENGINEERING23光滑粒子流体动力学的一种并行数值计算方案周浩,汤文辉,冉宪文,陈华(国防科学技术大学理学院工程物理研究所,长沙410073)摘要:在三维超高速碰撞数值计算方面,针对三维光滑粒子动力学【SPH)方法计算量大和耗时长的缺点,文章提出了一种简单直接、易于编程实现的SPH并行计算方案,并简述了该方案的基本思想、任务划分、变量存储、信息传递以及主要计算步骤。最后利用自编并行程序计算了两个超高速碰撞实例,结果表明:针对几百万个粒子,在运算速度为每秒5万亿次的“
2、银河”计算机上申请23个核并行计算,每步约需要8S,加速比约为10,并行效率约为50%,计算时间显著减少。关键词:超高速碰撞;并行SPH算法;并行树搜索算法;加速比;并行效率中图分类号:0246文献标识码:A文章编号:1673—1379(2012)01—0023一04DoI:10.3969巧.issn.1673—1379.2012.01.0050引言随着航天科技的迅速发展以及航天发射任务的急剧增加,大量的空问碎片散布在近地轨道上,形成了复杂的空间碎片环境,对航天器的安全构成了极大的威胁。如何确保航天器的飞行安全,成为当前航天器设计中一个十分重要的问题。对超
3、高速碰撞问题进行理论研究非常困难,而现有的试验技术又很难达到超高速碰撞所需要的速度条件,因此数值模拟是一种重要的研究手段。有限元方法作为当前计算力学领域主要的数值计算方法,经过多年的发展,日渐成熟和完善,被广泛应用于解决工程问题。但是在面对超高速碰撞等涉及到大变形的问题时,应用有限元方法经常会产生网格畸变,严重影响计算精度,甚至导致计算终止。光滑粒子流体动力学(smoothedparticlehydrodynamics,简称SPH)方法【l。J是近年来比较热门的一种无网格流体动力学算法,它既保留了拉氏计算描述物质界面准确的优势,又具备欧拉方法的长处,而且逻
4、辑简单,统一地处理不同维数的问题,能够避免有限元方法中的网格缠绕和扭曲等问题,因而特别适合计算多物质的大变形问题。在SPH方法中,物质被离散为一系列“粒子”,每个粒子携带如密度、压力、速度、内能等属性,通过质量、动量、能量三个守恒方程,利用附近粒子相应物理量插值得到各个粒子物理量的随体导数,使拉氏流体力学偏微分方程组变成差分方程组,从而易于数值求解。SPH中的一个主要问题是计算量比较大,耗时较长,所以开展并行计算研究十分必要。1SPH方法并行计算方案并行编程比较复杂,面临着执行结果的不确定、如何在各个进程问合理地划分任务、如何减少通信,以及对于不同进程数(
5、即不同数量的核)具有伸缩性等问题H。0J。本文从实际需要出发,采用基于MPI(MessagePassingInterface)的信息传递并行程序设计平台和粒子分割算法。每个进程中都有arrayl和array2两个数组,分别用来存储所有粒子信息和所有粒子随体导数信息。在信息处理中,只需维护每个进程中互不重叠的一部分信息。虽然这样处理每个进程会降低程序编写复杂度(特别是在递归搜索粒子对以及计算各个粒子随体导数时),但仍存在一些冗余信息。1.1近邻粒子搜索的并行方案SPH计算最耗时的部分是近邻粒子搜索,而并行的SPH方法对近邻粒子采用了并行搜索算法,可有效减少计
6、算时间。目前主要的并行搜索算法有收稿日期:2011-04—29;修回Et期:2011-06—04作者简介:周浩(1986一),男,硕士研究生,主要从事光滑粒子流体动力学并行算法研究;E-mail:zhouhaonudt@139.corn。汤文辉(196仁),男,教授,博士生导师,主要从事高压物理和爆炸力学研究。航天器环境工程第29卷全配对搜索、链表搜索和树搜索3种,其中:全配对搜索算法最简单直接,但是计算量为^产,只适合于极少数粒子的情况;链表搜索算法效率比较高,但是对于可变光滑长度缺乏自适应能力;而树搜索算法效率相对较高,且对于可变光滑长度具有良好的自适
7、应能力。因此,本文采用了树搜索算法。近邻粒子树搜索算法是Hemquist和Katz于1989年在TreeSPH方法研究中提出来的。它首先通过递归的方法构造一棵树,树的每个节点代表一块空间。树的根节点代表整个计算空间,子节点代表父节点空间的子空间。如果某个子节点包含的粒子数大于1,则继续划分此节点,直到所有子节点只包含一个粒子。对于任意粒子i,以两倍的光滑长度为边长构造一个立方体,使i粒子位于立方体的中心。检验该立方体与树的根节点所代表的空间是否有重合,如果有。则遍历此树节点的所有子节点,直到当前树节点所代表的空间处仅有一个粒子为止。然后判断该粒子是否在粒子
8、i的影响域内,如果是,则该粒子为i粒子的近邻粒子;如果不是,则停止
此文档下载收益归作者所有