当前位置: 首页 > 专利查询>河海大学专利>正文

基于并行RCB三维势函数离散元的放矿仿真方法技术

技术编号:22058211 阅读:54 留言:0更新日期:2019-09-07 16:19
本发明专利技术公开了基于并行RCB三维势函数离散元的放矿仿真方法,通过采用RCB方法进行区域分解,以分配各进程的计算单元;采用MPI通信函数在各区域间进行通信;采用图论的方式进行区域间通信的免死锁优化;采用动态区域分解的方法保证各进程的负载平衡;计算过程中由牛顿第二定律求解颗粒的加速度与角加速度;通过velocity verlet算法计算块体的速度与位移。本发明专利技术解决了离散元并行计算中区域边界单元频繁运动引起进程间复杂交互的问题,解决了由于颗粒运动导致的负载不平衡问题,可用于在多核处理器或计算机集群上的多进程并行DEM仿真。

Simulation Method of Ore Drawing Based on Parallel RCB Three-Dimensional Potential Function Discrete Element

【技术实现步骤摘要】
基于并行RCB三维势函数离散元的放矿仿真方法
本专利技术涉及基于并行RCB三维势函数离散元的放矿仿真方法,可以实现超大规模三维非连续介质的变形与运动计算,属于高性能并行计算

技术介绍
离散单元法(DiscreteElementMethod,DEM)是一种拉格朗日方法,其根据牛顿第二运动定律计算单个粒子,从而在粒子水平上研究粒状流动特性,并精确地评估粒子运动。另一方面,当粒子数量很大时,计算成本变得过大,从而将DEM限制在小规模系统中,因此迫切需要开发新颖的建模和并行计算技术,以便在复杂和大规模的仿真过程中更好地进行DEM计算。目前关于DEM的并行计算方法通常基于分布式内存或共享式内存环境开发,其中分布式内存环境多见于超级计算机和计算机集群中,相对于共享式内存环境而言,虽然其需要额外的通信开销,但其可扩展性强,可以处理规模更大的问题,且由于其每个进程都拥有自己的独立变量和内存,内存读写时不需要对数据进行频繁的加锁解锁。目前大部分的分布式并行化策略通常试图将大型问题(计算域)划分为多个较小的子问题,各子问题由单独的子进程执行,各子进程之间则通过通信进行协调,离散元也是如此。其划本文档来自技高网...

【技术保护点】
1.基于并行RCB三维势函数离散元的放矿仿真方法,其特征在于,包括如下步骤:步骤1,为放矿建立块体离散单元模型,得到所有的块体单元,并对块体单元进行编号,各进程分别读取所有块体单元的位置坐标、几何信息、弹性模量、粘度、摩擦系数,全局仿真环境中的边界信息、重力加速度,以及边界的弹性模量、粘度、摩擦系数;步骤2,确定分区的重叠区宽度,并采用RCB方法对步骤1的模型进行初次空间区域分解,得到分区,于此同时各进程对各块体单元进行分类标记,确定各块体单元位于分区的外重叠区、内重叠区或内区,并确定分区之间的关联列表,采用图论方法进行初始分区通信优化,确定初始分区通信的顺序和步骤;步骤3,确定计算时间以及计...

【技术特征摘要】
1.基于并行RCB三维势函数离散元的放矿仿真方法,其特征在于,包括如下步骤:步骤1,为放矿建立块体离散单元模型,得到所有的块体单元,并对块体单元进行编号,各进程分别读取所有块体单元的位置坐标、几何信息、弹性模量、粘度、摩擦系数,全局仿真环境中的边界信息、重力加速度,以及边界的弹性模量、粘度、摩擦系数;步骤2,确定分区的重叠区宽度,并采用RCB方法对步骤1的模型进行初次空间区域分解,得到分区,于此同时各进程对各块体单元进行分类标记,确定各块体单元位于分区的外重叠区、内重叠区或内区,并确定分区之间的关联列表,采用图论方法进行初始分区通信优化,确定初始分区通信的顺序和步骤;步骤3,确定计算时间以及计算的时间步长,得到所有时间步;步骤4,由上一个时间步计算所得的各块体单元的坐标、速度和加速度,预估当前时间步块体单元的速度,更新各块体单元的坐标;步骤5,判断是否需要重新进行RCB分区,如果需要,则重新RCB分区,记为新分区,并将步骤2的分区作为老分区,将老分区的单元列表和形心、速度、角速度物理量传递给与之关联的新分区;否则进入步骤6;若重新RCB分区,则步骤6-9所述分区即为新分区,否则即为老分区;步骤6,根据步骤4更新的坐标,各进程对穿越分区的块体单元进行信息交换;步骤7,各进程对分区内的块体单元进行接触检测,得到接触链表,与此同时计算当前时间步对应分区内且包含外重叠区每个块体单元所受的接触力和力矩;步骤8,将各分区内重叠区中块体单元接触力和对应相邻分区的外重叠区中块体单元接触力进行交换;步骤9,由刚体运动方程,根据接触力计算出每个块体单元当前时间步的加速度,再由verlet算法计算出每个块体单元下一时间步的速度;步骤10,重复步骤4至步骤9计算下一时间步,直至计算完所有时间步,得到放矿后岩石散落的形态。2.根据权利要求1所述基于并行RCB三维势函数离散元的放矿仿真方法,其特征在于,所述步骤2的具体过程如下:2.1计算各块体单元的形心坐标,求块体单元各角点与形心之间的距离,取最大距离作为块体单元的半径,取半径的2.01倍作为块体单元的直径,将所有块体单元对应的直径中最大直径的1.05倍作为内、外重叠区的宽度;2.2根据块体单元的编号,将块体单元平均分配到各进程中;2.3创建保存初始分区信息的自定义类型cpuRCB_type,类型中包含四个变量,分别为:分区单元数量ne、单元索引列表liste、分区左下角坐标Domleftlow、分区尺寸Domsize;2.3.1cpuRCB_type类型数组长度的确定指定每个分区方向的分区层数,由RCB二分的性质得到:(1)若第一个分区方向的分区层数是N1,则该方向最后一层分区条带数总分区数(2)若第二个分区方向的分区层数是N2,则该方向最后一层分区条带数总分区数(3)若第二个分区方向的分区层数是N3,则该方向最后一层分区条带数总分区数令N=N1+N2+N3,则最后一层总分区数ncpu=M1×M2×M3=2N-3;所有层的总分区数ncpuRCB=L1×L2×L3,以ncpuRCB为大小创建cpuRCB_type类型数组;2.3.2变量ne、liste、Domleftlow和Domsize的确定(1)设定分区单元数量允许容差ratioRCB和二分法最大迭代次数niterRCB,指定二分方向为idimn,idimn=1,2,3分别表示二分方向为X,Y,Z;(2)以指定idimn方向的空间区域两侧坐标为边界,以中间坐标为界限将空间区域划分为两个区域,以二分方向idimn=1为例:初始空间区域左下角顶点坐标为(X0,Y0,Z0),空间区域在三个方向上的长度分别为[Lx,Ly,Lz],则该方向以X1=X0+Lx/2作为分割线,分割为两个区域:区域1:左下角坐标为(X0,Y0,Z0),区域尺寸为[X1-X0,Ly,Lz];区域2:左下角坐标为(X1,Y0,Z0),区域尺寸为[X0+Lx-X1,Ly,Lz];当块体单元的形心(Cx,Cy,Cz)都在区域1内时,即:X0<Cx<X1-X0Y0<Cy<LyZ0<Cz<Lz若上述三个条件都满足,则判断该块体单位在区域1内,同理判断单元是否在区域2内,由此统计两个区域内的分区单元数量ne和单元索引列表liste;(3)各进程归约统计得到区域1和2块体单元的实际总数量,若区域1块体单元总数量大于区域2块体单元总数量,则令新的分割线为X2=(X0+X1)/2,反之,则令新的分割线为X2=(X0+X1+Lx)/2;(4)重复步骤(1)-(2),直到区域1和2块体单元总数量的差值与总块体单元数量的比值小于允许容差ratioRCB时,或者循环次数大于最大迭代次数niterRCB时,退出循环,此时得到的分割线坐标Xn即为二分法要得到的值,且二分法后两个区域的空间位置:区域1:左下角坐标为(X0,Y0,Z0),区域尺寸为[Xn-X0,Ly,Lz];区域2:左下角坐标为(Xn,Y0,Z0),区域尺寸为[X0+Lx-Xn,Ly,Lz];(5)将区域1的左下角坐标、尺寸分别存入cpuRCB_type类型数组的第1个元素中,区域2的左下角坐标、尺寸分别存入cpuRCB_type类型数组的第2个元素中;(6)将上述(2)-(4)的操作称为idimn方向的第1层分区,则第2层分区为:将第1层分区得到的两个区域分别作为(2)中的初始空间区域,重复(2)-(3),得到的4个子分区,存入cpuRCB_type类型数组的第3至第6个元素中;以此类推,直至idimn方向执行完第Nidimn层分区;(7)按照上述(6)中的方法进行其他两个方向的分区,并填充到cpuRCB_type类型数组中;2.4建立分区关联列表2.4.1获取分区三维编号分区三维编号由其所在空间分区拓扑中的位置确定,例如,分区编号(I,J,K)代表该分区在所有分区中的排序为:第I行(X方向),第J列(Y方向),第K层(Z方向);2.4.2确定进程编号和分区编号的关系通过MPI_CART_CREATE函数创建笛卡尔拓扑通信域Cart_Comm,笛卡尔拓扑的各方向进程数量与分区在各方向的数量一致,由此,在通信域Cart_Comm中,由MPI_CART_RANK函数获取分区三维编号(I,J,K)所对应的进程编号,通过MPI_CART_COORDS函数由进程编号获取分区三维编号(I,J,K);2.4.3获取各分区的内外重叠区将2.3中划分好的各分区的边界E向内收缩一个重叠区宽度,得到边界E内,将边界E向外扩展一个重叠区宽度得到边界E外,则边界E外到边界E之间的区域称为该分区的外重叠区,边界E到E内之间的区域称为该分区的内重叠区,边界E内以内的区域称为该分区的内区;根据各分区中块体单元所在位置将块体单元标记为如下三种情况:(1)若块体单元位于内区,标记为1;(2)若块体单元位于内重叠区,标记为2;(3)若块体单元位于外重叠区,标记为3;2.4.4分区关联判断具体步骤:(1)创建cpuDB_type类型的数组,...

【专利技术属性】
技术研发人员:毛佳赵兰浩贾国新刘勋楠李同春
申请(专利权)人:河海大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1