[发明专利]一种颗粒流动仿真方法在审
申请号: | 201710200190.5 | 申请日: | 2017-03-30 |
公开(公告)号: | CN107016180A | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 杨晨;周福建;高李阳;冯炜 | 申请(专利权)人: | 中国石油大学(北京) |
主分类号: | G06F17/50 | 分类号: | G06F17/50;G06F9/50 |
代理公司: | 北京科家知识产权代理事务所(普通合伙)11427 | 代理人: | 莫文新 |
地址: | 102249*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 颗粒 流动 仿真 方法 | ||
1.一种颗粒流动仿真方法,其在并行的多个GPU上执行离散单元算法(DEM)方法来进行颗粒流动仿真,该方法包括以下步骤:
a、使用DEM方法对颗粒建模,并将建立的DEM模型分配为多个粒子,将该多个粒子分配给多个计算节点进行处理,每个计算节点的CPU和GPU分别分配有内存空间,并在CPU中进行初始化数据,将初始化后的数据从CPU内存空间拷贝入所述GPU的内存空间中;
b、上述每个计算节点的GPU对每个粒子进行处理,其中每个计算节点的GPU的每个流处理器负责处理一个粒子,并更新粒子存储在GPU内存空间中的坐标及粒子速度;
c、在步骤b的处理过程中,确定每个计算节点控制的粒子,将每个计算节点控制的粒子个数拷贝至CPU内存空间中,并根据GPU内存空间中的粒子数进行动态划分,以按照均衡负载原则动态地确定出每个计算节点计算哪些粒子;
d、利用MPI接口协议把上述进行数据动态划分后的粒子在每个计算节点间迁移;
e、根据步骤c得到的每个计算节点控制的粒子,在GPU中计算重叠区域,并将数据拷入CPU内存,而后通过MPI接口协议进行数据交换;
f、每个计算节点的GPU中的每个流处理器根据每个粒子的坐标,计算每个粒子所在GPU内存空间中网格的编号;
g、每个计算节点的GPU中的每个流处理器处理计算每个粒子运动中的受力和加速度;
h、每个计算节点的GPU中的每个流处理器处理每个粒子速度;
i、回到步骤b直至达到指定步数;
j、释放主控节点和计算节点的内存空间。
2.根据权利要求1所述的一种颗粒流动仿真方法,其中,步骤b、步骤f、步骤g和步骤h利用GPU对每个粒子进行并行数据处理。
3.根据权利要求1所述的一种颗粒流动仿真方法,其中,步骤d中所述粒子在各节点间迁移利用MPI接口发送和接收函数实现粒子各物理量的发送和接收。
4.根据权利要求1所述的一种颗粒流动仿真方法,其中,在步骤e中,所述在GPU中计算重叠区域包括:利用在GPU计算重叠区域包括,GPU的一个流处理器处理一个网格;
在三维情况下,每个网格有26个网格与之相邻,判断相邻网格是否在当前计算节点中,如果不是,则算作重叠区域包括,从其他节点迁移获得。
一种基于GPU的颗粒流动仿真方法,包括:
建模步骤,确定颗粒材料、颗粒参数、边界条件和几何体形状,以及颗粒初始分布的区域,并根据预定的颗粒分布区域和数量生成颗粒;
任务管理步骤,根据颗粒总数和多个计算节点上空闲GPU的数目,确定最优GPU数目,并结合最优GPU数目和当前空闲GPU数目确定参与计算的GPU,并将参与计算的GPU状态设置为非空闲;以及
计算步骤,包括
初始化各计算节点的参与计算的GPU,并向各GPU发送计算所需的颗粒信息,
各GPU并行更新预定的速度和坐标,对接收的颗粒信息排序以生成各自的排序元胞列表,
各GPU并行计算当前各自进程中非零网格编号及网格中颗粒数目,并发送至主控节点,由主控节点依照每个GPU最优颗粒数目进行动态划分网格,确定每个GPU并行计算的网格数目和编号,
根据主控节点的确定结果,各GPU并行发送和接收颗粒信息,并在各GPU中重新生成各自的排序元胞列表,
在各GPU中生成当前时刻的碰撞列表,根据当前时刻的碰撞列表以及前一时刻的碰撞列表和切向相对位移,在各GPU中并行调整切向相对位移的位置,
根据接触力学模型,在各GPU中并行计算每个颗粒的受力和加速度,
存储当前计算结果,和
如果计算没有完成,就返回至各GPU并行更新预定速度和坐标的步骤,否则计算步骤结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国石油大学(北京),未经中国石油大学(北京)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710200190.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种安装快速的断路器
- 下一篇:漏电断路器