三维爆炸与冲击问题的大规模高性能计算研究(5)
表1 x方向模糊输运表Table1 Fuzzy transport table along x directionContribution meshAcceptation meshTransport priorityTransport factorα m1arbitrarym11 mix m1 with m2 have m2 no m1 others m2>m1 m2>m1 m1>m2 β mix m1 with m2 and m3 no m1 or m2 no m1 others m3>m1>m2 m2>m1>m3 m1>m2>m3 β
模糊界面方法的特点是逻辑简单、计算量小,特别适合于处理三维、3种以上介质的计算问题,其缺点是计算过程中会使得物质界面变的模糊,但可以通过增加网格数、缩小网格步长的方法来解决,采用大规模高性能计算可以有效解决这一问题.
2 动态并行程序实现方法
域分解是指把计算域分成若干重叠或非重叠的子区域,一个处理器处理一个或多个子区域.分解成非重叠的子区域的方法主要用于隐式或半隐式差分格式,这种格式所需要求解的大型稀疏矩阵将会随着子区域分裂成若干子矩阵,并行实现起来比较复杂[6].MMIC3D程序中采用显示的差分格式,因此并行实现采用把计算域分解成若干重叠的子区域的方法.为说明情况以二维为例,如图1所示,将一个二维的计算域分解成4个子区域,其中灰色的重叠的网格称为“子区域边界虚网格”.
图1 重叠子区域Fig.1 Subdomains and overlapping
在采用固定分区方式的静态并行程序的基础上,MMIC3D动态并行程序增加了初始计算域分割、计算域扩充及数据定位等模块,修改了数据通信、二维三维结果输出等模块.
2.1 初始计算域分割
初始计算域的确定与所模拟的问题的有关,一般为能描述清楚模型的基本状态的最小立方体.比如对于空中爆炸问题,初始计算域为能描述清楚炸药形状的最小立方体;对于射流问题,初始计算域为能描述清楚药型罩形状的最小立方体.计算域随着扰动传播而扩大,程序中判定扰动到达计算域边界的标准为:待扩充计算域边界的压力或速度变化的绝对值是否大于特定的阈值.程序中压力阈值为大气压的10-4倍,速度阈值为炸药CJ爆速的10-6倍.计算域扩充可以在3个方向沿着两端进行,但大部分的问题可简化为一个方向沿着一端扩充.下面以z方向为例说明计算域扩充及子区域计算起始位置的确定.
设模型在z方向的总网格数为kmax,初始计算域z方向的参与计算的网格数为icoutz,采用域分界策略,z方向分了npz个子区域,z向的子区域坐标mepz分别为0,1,…,npz-1.由于icoutz随着计算域的扩大而增大,icoutz可能不是npz的整数倍,则每个子区域z向分配的网格数dmaxz有两种情况,如图2所示,其中灰色为网格数较多的子区域.为了方便动态并行扩充数据时数据移动,初始时每个子区域在其一端预留一段空闲网格,其个数kidl=kmax/npzdmaxz,如图3所示.
其中,remz=mod(icoutz,npz),[]为舍掉小数的取整数方法.
图2 各子区域网格数的分布图Fig.2 Meshes in every subdomain distribution
图3 空闲网格分布图Fig.3 Free mesh distribution
2.2 计算域扩充与数据定位
当扰动到达计算域边界时,要进行计算域扩充,以保证计算可以正确的完成.假设子区域内部网格(不含用来存储临近子区域信息的子区域边界网格)的范围为[dkeb,dkee],计算域向z方向正方向扩充步骤如下:
1)子区域npz-1向扩充方向增加一层网格量;并把dkeb层网格信息传递个子区域npz-2;更新dkeb,dkee,即dekb,dkee都向前推进一层网格,内部网格数不变;
2)子区域npz-2接受从子区域npz-1传递来的网格信息;并把dkeb层网格信息传递给子区域npz-3;dekb,dkee都向前推进一层网格,内部网格数不变;
3)子区域坐标mepz>remz的子区域进行步骤1)和2)操作;
4)子区域remz接受从子区域remz+1传递来的网格信息;dkeb不变,dkee向前推进一层网格,内部网格数在z向上增加一层;
5)扩充过程中,若子区域npz-1的dkee=kmax/npz,则扩充无法继续进行,则必须调整所有子区域内部网格的位置,使得空闲网格如图3所示分布.
图4 初始数据定位Fig.4 Initial data location
3 MMIC3D动态并行程序测试
空中爆炸算例用来研究爆轰气体、冲击波在空气中的传播及其相互作用,涉及到炸药、空气等介质.为测试程序,设计了无限空气介质中爆炸场的模型.初始数据定位见图4,浅灰色为未反应区,沿着z方向分4个区.为了和经验公式比较,该模型采用球状装药,具体模型参数见表2.
表2 TNT装药模型Table2 The model of TNT chargem/Tr/mΔs/mL/m ×0.20×0.2040.0×40.0×80.0
爆轰产物主要参数见表3和表4.其中k0为爆轰产物的多方指数,k1是爆轰产物充分膨胀下的多方指数,b是调节系数.
文章来源:《爆炸与冲击》 网址: http://www.bzycjzz.cn/qikandaodu/2021/0709/1303.html
上一篇:三维多物质弹塑性流体动力学方法的并行算法研
下一篇:爆炸与冲击征稿启事