[发明专利]一种颗粒流动仿真方法在审
申请号: | 201710200190.5 | 申请日: | 2017-03-30 |
公开(公告)号: | CN107016180A | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 杨晨;周福建;高李阳;冯炜 | 申请(专利权)人: | 中国石油大学(北京) |
主分类号: | G06F17/50 | 分类号: | G06F17/50;G06F9/50 |
代理公司: | 北京科家知识产权代理事务所(普通合伙)11427 | 代理人: | 莫文新 |
地址: | 102249*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 颗粒 流动 仿真 方法 | ||
技术领域
本发明涉及颗粒流动仿真技术领域,尤其涉及一种颗粒流动仿真方法。
背景技术
颗粒系统一直是人们关注的研究内容。在工业领域如:食品控制、化学、土木工程、油气、采矿、制药、粉末冶金、能源等领域都有大量应用;在理论研究方面,如何堆积能达到最密集堆积、沙堆在什么情况下坍塌以研究雪崩等问题。为研究相关颗粒系统,人们需要搭建大型实验用颗粒系统,费时费力。并且某些颗粒系统由于成本高,需要在极端的条件下运行,不可能通过实验搭建完成,而基于虚拟实验的仿真系统则不存在类似的问题。
目前颗粒系统模拟的计算方法主要以DEM(离散单元算法)方法为主。DEM方法是继有限元法、计算流体力学(CFD)之后,用于分析物质系统问题的又一种数值计算方法。DEM方法通过建立微元体系的参数化模型,进行颗粒行为模拟和分析,为解决众多涉及颗粒、结构、流体与电磁及其耦合等综合问题提供了一个平台,已成为科学过程分析、产品设计优化和研发的一种强有力的工具。目前DEM方法除了在科学研究中运用,也在科技应用和工业领域逐渐成熟,并已从颗粒物质研究、岩土工程和地质工程等科学及应用拓展至工业过程与工业产品的设计、研发领域,在诸多工业领域取得了重要成果。
DEM方法的特点是仿真精度高,但计算量大。当前,DEM方法的实现以CPU为主,这些方法由于CPU计算能力不足导致计算规模不足,在可以接受的机时内只能计算很小的空间尺寸和时间尺寸;或者因建设成本高,需要建设大规模甚至超大规模的CPU计算机集群,而且耗电量过大,使用和维护成本极高。此外,目前用CPU实现的DEM方法要么颗粒数较少,要么是低密集颗粒碰撞,无法完全实现高密度大量颗粒碰撞模拟。
使用GPU(图形处理器,Graphics Processing Unit)进行通用计算的技术越来越成熟,如当今两大显卡制造商nVIDIA和AMD均支持GPU通用计算。鉴于上述问题,本申请发明人提出了一种颗粒流动仿真方法和方法。
发明内容
根据本发明,提出一种颗粒流动仿真方法,能够实现高密度颗粒虚拟实验仿真,并降低能耗的同时提高运算效率。
根据本发明一方面,提出了一种颗粒流动仿真方法,其在并行的多个GPU上执行离散单元算法(DEM)方法来进行颗粒流动仿真,该方法包括以下步骤:
a、使用DEM方法对颗粒建模,并将建立的DEM模型分配为多个粒子,将该多个粒子分配给多个计算节点进行处理,每个计算节点的CPU和GPU分别分配有内存空间,并在CPU中进行初始化数据,将初始化后的数据从CPU内存空间拷贝入所述GPU的内存空间中;
b、上述每个计算节点的GPU对每个粒子进行处理,其中每个计算节点的GPU的每个流处理器负责处理一个粒子,并更新粒子存储在GPU内存空间中的坐标及粒子速度;
c、在步骤b的处理过程中,确定每个计算节点控制的粒子,将每个计算节点控制的粒子个数拷贝至CPU内存空间中,并根据GPU内存空间中的粒子数进行动态划分,以按照均衡负载原则动态地确定出每个计算节点计算哪些粒子;
d、利用MPI(Message Passing Interface)接口协议把上述进行数据动态划分后的粒子在每个计算节点间迁移;
e、根据步骤c得到的每个计算节点控制的粒子,在GPU中计算重叠区域,并将数据拷入CPU内存,而后通过MPI接口协议进行数据交换;
f、每个计算节点的GPU中的每个流处理器根据每个粒子的坐标,计算每个粒子所在GPU内存空间中网格的编号;
g、每个计算节点的GPU中的每个流处理器处理计算每个粒子运动中的受力和加速度;
h、每个计算节点的GPU中的每个流处理器处理每个粒子速度;
i、回到步骤b直至达到指定步数;
j、释放主控节点和计算节点的内存空间。
在一个实施例中,步骤b、步骤f、步骤g和步骤h利用GPU对每个粒子进行并行数据处理,即每个GPU对粒子的处理是同步进行的。
在一个实施例中,步骤d中所述粒子在各节点间迁移利用粒子在节点间传输迁移的方法,即用MPI接口发送和接收函数,实现粒子各物理量的发送和接收,进而实现了粒子在节点间的传输迁移。
在一个实施例中,在步骤e中,所述在GPU中计算重叠区域(Overlap区)包括:利用在GPU计算Overlap区,GPU的一个流处理器处理一个网格。在三维情况下,每个网格有26个网格与之相邻,判断相邻网格是否在当前计算节点中,如果不是,则算作overlap区,从其他节点迁移获得。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国石油大学(北京),未经中国石油大学(北京)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710200190.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种安装快速的断路器
- 下一篇:漏电断路器