【技术实现步骤摘要】
适用于GPU纯矩阵运算的快速离散元数值计算方法
本专利技术涉及颗粒离散元模拟,尤其适用于GPU纯矩阵运算的快速计算方法。
技术介绍
离散元法是解决不连续介质问题的一种主要数值模拟方法,可以动态模拟岩体的大变形、断裂破坏,在岩土、矿冶、环境、制药等领域取得了较为广泛的应用。长期以来,由于离散元法巨大的计算量,其计算颗粒通常在几千至几万个,极大地限制了离散元的发展和应用。近年来,GPU(通用图形处理器)凭借其强大的密集矩阵数据计算能力,在通用计算领域的应用越来越广泛,如医疗成像、油气勘探和科学计算等。在浮点运算、矩阵计算等方面,GPU可以提供数十倍乃至于上百倍于CPU的性能,能显著提高数值计算速度。但是,由于离散元模拟涉及大变形和断裂作用,离散元颗粒连接关系和联结数量不固定等原因,其计算过程缺乏纯矩阵运算特点,在实现GPU快速纯矩阵运算上存在困难。因此,需要采用特定的方法以实现离散元GPU纯矩阵运算,并提高离散元法的计算效率。
技术实现思路
为了克服离散元法存在的计算量大,计算效率低的问题。本专利技术目的是,提出一种适用于GPU纯矩阵运算的快速离散元数值计算方法。通过建立特定的邻近颗粒矩阵,实现纯矩阵的GPU运算。该方法全部计算均可通过矩阵运算实现,能有效地提高离散元法的计算效率,实现大规模的颗粒离散元模拟,并且可进一步用于超大规模颗粒离散元并行计算,实现复杂岩土工程问题的快速模拟。本专利技术为解决离散元快速计算问题提出的技术方案是,一种适用于GPU纯矩阵运算的快速离散元数值计算方法。其步骤包括:(1)建立邻近颗粒矩阵和颗粒离散元堆积模型;将颗粒由1到m编号,将可 ...
【技术保护点】
适用于GPU纯矩阵运算的快速离散元数值计算方法,其特征是步骤包括: (1)建立邻近颗粒矩阵和颗粒离散元堆积模型;将颗粒由1到m编号,将可能与颗粒接触的邻近颗粒编号存储在邻近颗粒矩阵Pn的相应行中,行长度差异用m+1虚颗粒编号填充; (2)实现纯矩阵迭代计算颗粒受力;基于邻近颗粒矩阵,将邻近颗粒坐标和属性转化成与邻近颗粒矩阵对应的m*n矩阵形式;在离散元迭代运算中,通过矩阵计算得到颗粒初步受力矩阵Fn0、矩阵大小m*n; (3)使用接触关系矩阵对受力计算结果进行过滤,完成迭代计算;根据受力等因素计算接触关系布尔矩阵Bc,利用Bc筛选出Fn0中的实际受力单元,得到颗粒实际受力矩阵Fn,计算合力并完成颗粒运动模拟。
【技术特征摘要】
1.适用于GPU纯矩阵运算的快速离散元数值计算方法,其特征是步骤包括:1)建立邻近颗粒矩阵和颗粒离散元堆积模型;将颗粒由1到m编号,将可能与颗粒接触的邻近颗粒编号存储在邻近颗粒矩阵Pn的相应行中,行长度差异用m+1虚颗粒编号填充;2)实现纯矩阵迭代计算颗粒受力;基于邻近颗粒矩阵,将邻近颗粒坐标和属性转化成与邻近颗粒矩阵对应的m*n矩阵形式;在离散元迭代运算中,通过矩阵计算得到颗粒初步受力矩阵Fn0、矩阵大小m*n;3)使用接触关系矩阵对受力计算结果进行过滤,完成迭代计算;根据受力等因素计算接触关系布尔矩阵Bc,利用Bc筛选出Fn0中的实际受力单元,得到颗粒实际受力矩阵Fn,计算合力并完成颗粒运动模拟;步骤1)建立邻近颗粒矩阵和颗粒离散元堆积模型的步骤:步骤10构建初始的颗粒离散元堆积模型,颗粒由1开始编号到m;根据颗粒编号,将颗粒的几何参数和力学参数存储于各数组中;步骤11通过常规方法获得各颗粒的邻近颗粒、即可能接触颗粒,并将其逐行存储于邻近颗粒矩阵Pn中;每个颗粒的邻近颗粒编号存储于邻近颗粒矩阵相应行中,矩阵大小为m*n,即m行n列;步骤12将颗粒属性转成与Pn矩阵对应的m*n形式,并进行纯矩阵离散元数值计算,得到颗粒的初步受力矩阵Fn0、m*n阶;初步受力矩阵与邻近颗粒矩阵中颗粒编号一一对应,记录了颗粒与其邻近颗粒间的初步作用力;步骤13使用接触关系布尔矩阵Bc来记录颗粒的连接和接触状态;接触关系矩阵与邻近颗粒矩阵一一对应,接触关系矩阵记录邻近颗粒是否与中心颗粒接触,即是否存在力的作用;计算颗粒接触关系布尔矩阵Bc,由于邻近颗粒矩阵中仅部分颗粒与中心颗粒有接触关系,将初步受力矩阵Fn0逐项乘以Bc获得颗粒实际受力矩阵Fn、m*n矩阵;步骤14根据离散元颗粒计算合力和运动计算进行颗粒运动模拟;根据实际受力矩阵求取各颗粒所受合力,并通过经典力学方法计算颗粒运动;具体见步骤(30)-(36);步骤(30)输入颗粒的初步正作用力矩阵Fn0和颗粒连接布尔矩阵Bb、均为m*n矩阵;Bb与邻近颗粒矩阵一一对应,记录了颗粒与邻近颗粒间是否有联结力,即是否允许拉力作用;步骤(31)根据Fn0更新颗粒连接矩阵Bb,当颗粒间拉力超过特定值即抗拉力矩阵值时,颗粒间连接断裂;通过矩阵布尔运算实现:Bb=(Bb&Fn0<Fnmax)、Matlab矩阵指令,下同;其中Fnmax为颗粒间抗拉力矩阵m*n;步骤(32)根据Fn0计算颗粒间压作用力、压力为负的布尔矩阵Bp:Bp=(Fn0<0);步骤(33)计算颗粒间接触关系布尔矩阵Bc,即标明颗粒间是否有实际作用力;颗粒间实际作用力包括压力和拉力,因此,Bc通过对颗粒连接矩阵Bb和压作用力矩阵Bp取并集得到:Bc=(Bb|Bp);步骤(34)根据Fn0计算颗粒间实际受力Fn;邻近...
【专利技术属性】
技术研发人员:刘春,施斌,王宝军,张丹,索文斌,顾凯,吴静红,
申请(专利权)人:南京大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。