一种高效率岩土体离散元数值计算颗粒搜索和运行方法

文档序号:6623704阅读:495来源:国知局
一种高效率岩土体离散元数值计算颗粒搜索和运行方法
【专利摘要】一种高效率岩土体离散元数值计算颗粒搜索和运行方法,该方法包括基于划定空间网格和颗粒窗口搜索最优邻近颗粒,以及通过累积颗粒位移控制和减少搜索算法运行。对于岩土体等非流体数值模拟,使用位移矩阵控制窗口搜索算法,通常数万次迭代才需要运行一次搜索算法,显著提高了离散元数值方法的速度,可实现岩土体大规模颗粒系统的动态模拟。
【专利说明】一种高效率岩土体离散元数值计算颗粒搜索和运行方法

【技术领域】
[0001]本发明涉及岩土体离散元数值模拟,尤其是基于窗口搜索和颗粒位移控制的高效率计算方法。

【背景技术】
[0002]离散元法是解决岩土体不连续问题的一种主要数值模拟方法,可以动态模拟岩体的大变形、断裂破坏,在岩土、矿冶、环境等领域取得了较为广泛的应用,如大型高边坡稳定变形机理、深埋地下工程围岩破坏、矿山崩落开采等。离散元对模型在空间上进行分解,在时间上进行迭代计算,其计算量非常巨大。离散元计算主要包含两个部分:搜索每个颗粒的邻近接触颗粒和迭代计算颗粒运动。其中颗粒搜索计算需要从颗粒系统中找出与当前颗粒接触的颗粒,然后进一步计算颗粒受力和运动。当颗粒数量较多时,颗粒搜索的运算量急剧增加,成为大规模颗粒离散元数值模拟的瓶颈。因此,需要在搜索算法本身以及运行方法上对其进行改进,以满足复杂岩土工程问题对大规模颗粒离散元数值模拟的要求。


【发明内容】

[0003]为了克服大规模离散元数值计算搜索算法计算量大,计算效率低的问题。本方法提出一种高效率岩土体离散元数值计算颗粒搜索和运行方法。通过建立空间网格和划定颗粒窗口,迅速查找最优邻近颗粒。该方法采用位移累积矩阵减少搜索算法的运行频率,能有效地提高离散元法的计算效率,实现大规模颗粒离散元数值计算模拟和复杂岩土工程问题快速模拟。
[0004]本发明为解决离散元快速计算问题提出的技术方案是,一种高效率岩土体离散元数值计算颗粒搜索和运行方法,其步骤包括:
[0005](I)建立初步邻近颗粒数组;依据颗粒坐标,建立具有特定单元边长的空间立方单元网格,以覆盖所有颗粒,并建立相应的网格编号矩阵;计算颗粒在网格位置,将每个颗粒的邻近网格中的颗粒存储为初步邻近颗粒数组,每个颗粒相对于其邻近颗粒为中心颗粒;
[0006](2)采用窗口法计算最优邻近颗粒;以每个颗粒为中心(即中心颗粒)建立特定大小的窗口,搜索初步邻近颗粒位于窗口内的颗粒,并存储于最优邻近颗粒数组;而窗口外颗粒至少沿坐标轴方向移动dS距离才能与中心颗粒接触;
[0007](3)利用位移累积矩阵控制搜索算法;在离散元迭代运算中,累积计算每个颗粒位移矩阵D [X,Y, Z],当D某一位移分量超过dS/2时,意味着可能有新颗粒与中心颗粒接触,运行步骤1-2重新计算最优邻近颗粒数组,并重置颗粒位移矩阵D为O。
[0008]步骤(2)中应用窗口法计算最优邻近颗粒,得到最优邻近颗粒数组,并通过位移矩阵来控制窗口搜索算法的运行;数组也是一维矩阵;
[0009]步骤10构建初始的颗粒离散元堆积模型,颗粒总数为m,颗粒由I开始连续编号到m ;
[0010]步骤11通过空间网格划分计算得到初步邻近颗粒;网格单元的边长为wg,所有颗粒均包含在网格中;
[0011]步骤12通过建立半径为Rw颗粒窗口确定最优邻近颗粒;由此获得颗粒窗口内最优邻近颗粒数组,将颗粒位移矩阵D [X,Y, Z]全部数值设为零,重新开始累积颗粒位移;(步骤31里窗口半径为:RW = l+dS+R.,这个半径保证了窗口外颗粒运动dS距离才可能与窗口内颗粒接触,那么通过位移矩阵累积颗粒位移,当颗粒位移超过dS/2时,才需要运行搜索算法。)
[0012]步骤13利用最优邻近颗粒数组完成离散元数值计算;在每次迭代中,仅需判断中心颗粒与最优邻近颗粒矩阵中的颗粒接触关系,并计算相互作用力;一次迭代计算完成后,得到中心颗粒的位移量d[X,Y,Z];
[0013]步骤14累积中心颗粒位移矩阵D[X,Y, Z] = D[X, Y, Z]+d[X, Y, Z];通过累积每次迭代中的中心颗粒位移,位移矩阵D记录了从前一次最优邻近颗粒搜索后的颗粒位移;
[0014]步骤15判断max |D [X,Y,Z] I是否大于dS/2 ;即判断颗粒位移在某一坐标轴方向上是否超过dS/2。如果其大于dS/2,返回步骤11重新计算最优邻近颗粒;反之,进入步骤16 ;
[0015]步骤16根据迭代次数等限定,判断是否继续迭代。如果是,进入步骤13 ;反之进入步骤17。步骤15在颗粒位移达到一定量时才进入步骤11重算最优邻近颗粒矩阵,再进行迭代计算;而步骤16则可直接进入步骤13进行迭代计算,而无需运行搜索算法。由于岩土体数值模拟中颗粒相对静态,而dS—般取0.1?0.5R(颗粒半径)。通常数万次以上迭代才需运行一次搜索算法;
[0016]步骤17返回数值模拟结果。
[0017]离散元亦是指每个颗粒位移矩阵数据是离散的。
[0018]迭代方法是利用计算机不断用变量的旧值递推新值的过程。
[0019]通过空间网格计算初步邻近颗粒矩阵的具体实现过程;
[0020]步骤20输入颗粒坐标P [X,Y, Z]和颗粒半径数组R、采用m*l矩阵;
[0021]步骤21根据颗粒坐标数据,建立空间网格并包含中心和邻近颗粒所有颗粒;网格立方单元的边长取:Wg = 2*Rmax+dS
[0022]其中Rmax为最大颗粒半径,dS为窗口半径增量,通常取0.1-0.5R(颗粒半径);
[0023]步骤22根据颗粒的坐标,计算颗粒在三维网格中的位置索引矩阵[IX,IY, IZ]、采用大小m*3矩阵,即颗粒在xyz坐标方向上的网格单元序号;
[0024]步骤23将网格内的颗粒编号记录在对应的四维矩阵中,即第一至第三维分别对应颗粒在xyz方向上的网格编号,第四维上记录存储颗粒编号;
[0025]步骤24找出每个颗粒所在的中心网格单元索引[ix,iy,iz],将邻近网格中的颗粒定义为初步邻近颗粒。从网格四维矩阵中将邻近网格内颗粒编号合并,建立初步邻近颗粒数组Pntl ;
[0026]窗口法计算邻近颗粒,以颗粒为中心划定特定大小窗口,并将窗口内颗粒定义为最优邻近颗粒。附图3a给出了二维情况下的窗口示意图。暗色颗粒PO为中心颗粒,以PO为中心划定半径为Rw的窗口,窗口内灰色颗粒为最优邻近颗粒。
[0027]步骤30输入各颗粒初步邻近颗粒数组PnQ,以及颗粒坐标P [X,Y, Z]和半径R。
[0028]步骤31以每个颗粒为中心建立窗口,窗口半径(Rw)为:
[0029]Rw = RfdS+R.其中Rtl为中心颗粒半径;dS为窗口半径增量;Rmax为最大颗粒半径。此公式保证窗口外所有颗粒至少须在坐标轴方向上运动dS距离才可能与中心颗粒接触。
[0030]步骤32计算xyz坐标方向上初步邻近颗粒与中心颗粒的距离分量数组dPX, dPY,dPZ ;
[0031]步骤33将dPX,dPY,dPZ各距离分量均小于dS的颗粒定义为最优邻近颗粒,并存储于最优邻近颗粒数组Pu;
[0032]步骤34重置颗粒位移矩阵D[X,Y,Z]为O ;在进一步离散元迭代运算中即可使用最优邻近颗粒数组进行受力和运动计算。
[0033]每一个颗粒计算其邻近颗粒时,均称为中心颗粒。特定单元边长的设定与颗粒的粒径有关(1-2倍颗粒直径的长度)。
[0034]本发明的有益效果是:结合使用窗口搜索算法和位移累积矩阵,一方面窗口搜索算法可以迅速得到最小化的邻近颗粒数组,加快了迭代计算效率;另一方面通过位移累积矩阵控制搜索算法,极大地减少了搜索算法的运行频率。本方法避免了传统离散元计算方法搜索算法效率低,且需要在迭代运算中不断运行等缺点,而是通过颗粒位移矩阵记录颗粒在各坐标方向上位移,当其位移超过一定值时运行窗口搜索算法,以减少搜索算法运行频率。对岩土体等非流体模拟,使用位移累积矩阵控制窗口搜索算法,通常数万次迭代才需要运行一次搜索算法,显著提高了离散元数值计算的速度,可实现岩土体大规模颗粒系统的动态模拟。

【专利附图】

【附图说明】
[0035]图1颗粒搜索和运行方法总体结构和工作原理流程图;
[0036]图2划分空间网格计算初步邻近颗粒流程图;
[0037]图3窗口法计算最优邻近颗粒示意图。

【具体实施方式】
[0038]图1为本方法实施的总体结构和工作原理,其特点是应用窗口法得到最优邻近颗粒矩阵,并通过位移矩阵来控制窗口搜索算法的运行。
[0039]步骤10构建初始的颗粒离散元堆积模型,颗粒总数为m,颗粒由I开始连续编号到m0
[0040]步骤11通过空间网格划分计算得到初步邻近颗粒。相应附图1a为二维情况下的网格示意图,网格单元的边长为wg,所有颗粒均包含在网格中。以暗色颗粒PO为中心颗粒,黑色虚线范围为邻近网格,灰色颗粒为PO的初步邻近颗粒,共11个。
[0041]步骤12通过建立颗粒窗口确定最优邻近颗粒。相应附图1b为二维情况下的窗口示意图,窗口内的颗粒可能不与中心颗粒接触(如P5),而窗口外的颗粒需要一个方向上(如X方向)运动至少dS距离,才可能与中心颗粒接触(如P6和P7)。图中灰色的最优邻近颗粒共有5个,通过窗口搜索有效减少了可能接触颗粒数目。获得新的最优邻近颗粒数组后,将颗粒位移矩阵D [X,Y, Z]全部数值设为零,重新开始累积颗粒位移。
[0042]步骤13利用最优邻近颗粒数组完成离散元数值计算。在每次迭代中,仅需判断中心颗粒与最优邻近颗粒矩阵中的颗粒接触关系,并计算相互作用力,因此计算量大大减少。一次迭代计算完成后,得到颗粒的位移量d[x,Y, Z]。
[0043]步骤14累积颗粒位移矩阵D [X,Y, Z] =D [X,Y, Z] +d [X,Y, Z]。通过累积每次迭代中的颗粒位移,位移矩阵D记录了从前一次最优邻近颗粒搜索后的颗粒位移。
[0044]步骤15判断111&1|0[乂,¥,2]|是否大于(15/2。即判断颗粒位移在某一坐标轴方向上是否超过dS/2。如果其大于dS/2,返回步骤11重新计算最优邻近颗粒;反之,进入步骤
16。由于中心颗粒和邻近颗粒均可运动,所以最大位移取dS的一半。
[0045]步骤16判断是否继续迭代。如果是,进入步骤13 ;反之进入步骤17。步骤15和16的区别在于:步骤15在颗粒位移达到一定量时才进入步骤11重算最优邻近颗粒矩阵,再进行迭代计算;而步骤16则可直接进入步骤13进行迭代计算,而无需运行搜索算法。由于岩土体数值模拟中颗粒相对静态,而dS —般取0.1?0.5R(颗粒半径)。通常数万次以上迭代才需运行一次搜索算法,因此最大限度地减少了搜索算法的运行时间。
[0046]步骤17返回数值模拟结果。
[0047]图2表示通过空间网格计算初步邻近颗粒矩阵的具体实现过程(步骤11的细化),其特点是网格边长取特定值,以保证进一步的窗口法可以正确有效运行,以及通过多维矩阵来迅速完成计算。
[0048]步骤20输入颗粒坐标P [X,Y, Z]和颗粒半径数组R (m*l矩阵)。
[0049]步骤21根据颗粒坐标数据,建立空间网格并包含所有颗粒。网格立方单元的边长取:
[0050]Wg = 2*R眶+dS
[0051]其中Rmax为最大颗粒半径,dS为窗口半径增量,通常取0.1-0.5R(颗粒半径)。此式可保证所有的窗口颗粒(最优邻近颗粒)都包含在初步邻近颗粒矩阵中。附图2a给出了二维情况下的网格划分示意图,暗色颗粒为中心颗粒。
[0052]步骤22根据颗粒的坐标,计算颗粒在三维网格中的位置索引矩阵[IX,IY, IZ](大小m*3),即颗粒在xyz坐标方向上的网格单元序号。例如,在x方向的索引(IX)可以通过下式计算得到:
[0053]IX = floor ((PX-min (PX)) /Wg) +1 ; (Matlab 矩阵指令)
[0054]其中PX为颗粒X坐标数组。
[0055]步骤23将网格内的颗粒编号记录在对应的四维矩阵中,即第一至第三维分别对应颗粒在xyz方向上的网格编号,第四维上记录存储颗粒编号。如附图2a 二维网格中,网格[ix, iy] = [2,4]中包含Pl和P8两个颗粒。
[0056]步骤24找出每个颗粒所在的中心网格单元索引[ix,iy,iz],将邻近网格中的颗粒定义为初步邻近颗粒。从网格四维矩阵中将邻近网格内颗粒编号合并,建立初步邻近颗粒数组Pu。。图2a中虚线范围内为邻近网格,其包含9个网格单元,网格内灰色颗粒为邻近颗粒。在三维模型情况下,邻近网格包含27个立方单元。
[0057]图3为窗口法计算邻近颗粒示意图(步骤12的细化),其特点是以颗粒为中心划定特定大小窗口,并将窗口内颗粒定义为最优邻近颗粒。附图3a给出了二维情况下的窗口不意图。暗色颗粒PO为中心颗粒,以PO为中心划定半径为Rw的窗口,窗口内灰色颗粒为最优邻近颗粒。
[0058]步骤30输入各颗粒初步邻近颗粒数组PnQ,以及颗粒坐标P [X,Y, Z]和半径R。
[0059]步骤31以每个颗粒为中心建立窗口,窗口半径(Rw)为:
[0060]Rw = R0+dS+Rmax
[0061]其中Rtl为中心颗粒半径;dS为窗口半径增量;Rmax为最大颗粒半径。此公式保证窗口外所有颗粒至少须在坐标轴方向上运动dS距离才可能与中心颗粒接触。
[0062]步骤32计算xyz坐标方向上初步邻近颗粒与中心颗粒的距离分量数组dPX, dPY,dPZ。例如X方向上的距离分量dPX为:
[0063]dPX = PX (Pn0) -Px0 ; (Matlab 矩阵指令)
[0064]其中PX(m*l矩阵)为颗粒x坐标;公式右边第一项得到初步邻近颗粒x坐标数值^xci为中心颗粒坐标。
[0065]步骤33将dPX,dPY,dPZ各距离分量均小于dS的颗粒定义为最优邻近颗粒,并存储于最优邻近颗粒数组Pn。
[0066]步骤34重置颗粒位移矩阵D[X,Y, Z]为O。在进一步离散元迭代运算中即可使用最优邻近颗粒数组进行受力和运动计算,并且可以通过颗粒位移矩阵来控制和减少颗粒搜索算法的运行,提高计算效率。
【权利要求】
1.一种高效率岩土体离散元数值计算颗粒搜索和运行方法,其步骤包括: (1)建立初步邻近颗粒数组;依据颗粒坐标,建立具有特定单元边长的空间立方单元网格,以覆盖所有颗粒,并建立相应的网格编号矩阵;计算颗粒在网格位置,将每个颗粒的邻近网格中的颗粒存储为初步邻近颗粒数组,每个颗粒相对于其邻近颗粒为中心颗粒; (2)采用窗口法计算最优邻近颗粒;以每个颗粒为中心(即中心颗粒)建立特定大小的窗口,搜索初步邻近颗粒位于窗口内的颗粒,并存储于最优邻近颗粒数组;而窗口外颗粒至少沿坐标轴方向移动dS距离才能与中心颗粒接触; (3)利用位移累积矩阵控制搜索算法;在离散元迭代运算中,累积计算每个颗粒位移矩阵D[X,Y, Z],当D某一位移分量超过dS/2时,意味着可能有新颗粒与中心颗粒接触,运行步骤1-2重新计算最优邻近颗粒数组,并重置颗粒位移矩阵D为O。
2.根据权利要求1所述的高效率岩土体离散元数值计算颗粒搜索和运行方法,其特征是步骤(2)中应用窗口法计算最优邻近颗粒,得到最优邻近颗粒数组,并通过位移矩阵来控制窗口搜索算法的运行; 步骤10构建初始的颗粒离散元堆积模型,颗粒总数为m,颗粒由I开始连续编号到m ;步骤11通过空间网格划分计算得到初步邻近颗粒;网格单元的边长为Wg,所有颗粒均包含在网格中; 步骤12通过建立半径为Rw颗粒窗口确定最优邻近颗粒;由此获得颗粒窗口内最优邻近颗粒数组,将颗粒位移矩阵D [X,Y,Z]全部数值设为零,重新开始累积颗粒位移; 步骤13利用最优邻近颗粒数组完成离散元数值计算;在每次迭代中,仅需判断中心颗粒与最优邻近颗粒矩阵中的颗粒接触关系,并计算相互作用力;一次迭代计算完成后,得到中心颗粒的位移量d[X,Y,Z]; 步骤14累积中心颗粒位移矩阵D[X,Y, Z] = D[X, Y, Z]+d[X, Y, Z];通过累积每次迭代中的中心颗粒位移,位移矩阵D记录了从前一次最优邻近颗粒搜索后的颗粒位移; 步骤15判断max |D [X,Y,Z] |是否大于dS/2 ;即判断颗粒位移在某一坐标轴方向上是否超过dS/2。如果其大于dS/2,返回步骤11重新计算最优邻近颗粒;反之,进入步骤16 ;步骤16根据迭代次数等限定,判断是否继续迭代。如果是,进入步骤13 ;反之进入步骤17。步骤15在颗粒位移达到一定量时才进入步骤11重算最优邻近颗粒矩阵,再进行迭代计算;而步骤16则可直接进入步骤13进行迭代计算,而无需运行搜索算法。由于岩土体数值模拟中颗粒相对静态,而dS —般取0.1?0.5R、R为颗粒半径;通常数万次以上迭代才需运行一次搜索算法; 步骤17返回数值模拟结果。
3.根据权利要求1所述的高效率岩土体离散元数值计算颗粒搜索和运行方法,其特征是通过空间网格计算初步邻近颗粒矩阵的具体实现过程; 步骤20输入颗粒坐标P [X,Y, Z]和颗粒半径数组R、采用m*l矩阵; 步骤21根据颗粒坐标数据,建立空间网格并包含中心和邻近颗粒所有颗粒;网格立方单元的边长取:
Wg = 2*Rfflax+dS 其中R_为最大颗粒半径,dS为窗口半径增量,通常取0.1-0.5R(颗粒半径); 步骤22根据颗粒的坐标,计算颗粒在三维网格中的位置索引矩阵[IX,IY, IZ]、采用大小m*3矩阵,即颗粒在xyz坐标方向上的网格单元序号; 步骤23将网格内的颗粒编号记录在对应的四维矩阵中,即第一至第三维分别对应颗粒在xyz方向上的网格编号,第四维上记录存储颗粒编号; 步骤24找出每个颗粒所在的中心网格单元索引[ix,iy,iz],将邻近网格中的颗粒定义为初步邻近颗粒。从网格四维矩阵中将邻近网格内颗粒编号合并,建立初步邻近颗粒数组 Pn0 ; 窗口法计算邻近颗粒,以颗粒为中心划定特定大小窗口,并将窗口内颗粒定义为最优邻近颗粒。附图3a给出了二维情况下的窗口示意图。暗色颗粒PO为中心颗粒,以PO为中心划定半径为Rw的窗口,窗口内灰色颗粒为最优邻近颗粒。 步骤30输入各颗粒初步邻近颗粒数组Prv以及颗粒坐标P [X,Y, Z]和半径R。 步骤31以每个颗粒为中心建立窗口,窗口半径(Rw)为:
Rw = R0+dS+Rmax 其中Rtl为中心颗粒半径;dS为窗口半径增量;Rmax为最大颗粒半径。此公式保证窗口外所有颗粒至少须在坐标轴方向上运动dS距离才可能与中心颗粒接触。 步骤32计算xyz坐标方向上初步邻近颗粒与中心颗粒的距离分量数组dPX,dPY,dPZ ;步骤33将dPX,dPY,dPZ各距离分量均小于dS的颗粒定义为最优邻近颗粒,并存储于最优邻近颗粒数组Pn ; 步骤34重置颗粒位移矩阵D [X,Y,Z]为O ;在进一步离散元迭代运算中即可使用最优邻近颗粒数组进行受力和运动计算。
【文档编号】G06F17/30GK104239414SQ201410405178
【公开日】2014年12月24日 申请日期:2014年8月15日 优先权日:2014年8月15日
【发明者】刘春 , 施斌, 王宝军, 张丹, 索文斌, 梁修雨, 张驰 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1