UDEC中块体可以分为变形体和刚体,UDEC中的Voronoi块体也是块体,所以既可以为变形体,也可以为刚体。
下面先介绍一下Voronoi是什么
沃罗诺伊图(Voronoi Diagram,也称作Voronoi镶嵌(Voronoi tessellation)或Dirichlet镶嵌(Dirichlet tessellation))是由俄国数学家Georgy Voronoy建立的空间分割算法。灵感来源于笛卡尔用凸域分割空间的思想。在几何、晶体学、建筑学、地理学、气象学、信息系统等许多领域有广泛的应用。划分的Voronoi 单元(即形成的多边形)通常被称为泰森多边形(Thiessen polygons) ——维基百科
这里有一篇泰森多边形的起源及特点简单的介绍:从自然到空间-认识Voronoi(泰森多边形),感兴趣的可以看一看,或者继续在网上搜索一下相关关键词。
通常的Voronoi图形会像下面这样:
回到UDEC,在一个块体里边我们可以划分节理生成多个块体,UDEC中的voronoi
命令相当于执行一种自动剖分泰森多边形的算法,将大块体分割成形状更小的泰森多边形块体,这些块体都是独立的,可以分离、移动等。
而划分单元是在针对块体的计算来说的,即将块体离散成有限差分网格单元,从而进行计算应力应变等数据,且单元之间不能分开(裂开)的,变形也是共同(协调)变形。这就是为什么说用 voronoi 划分块体通常可以用来模拟裂纹扩展,实际上就是将泰森多边形块体看成试样内部的晶体结构,在力的作用下,多边形块体之间发生分离移动形成裂纹。具体的例子可以去B站看下面的视频:
【ITASCA】UDEC7.0 使用Voronoi块体模拟含裂隙试样的压缩及裂纹扩展
所以有些小伙伴在对一个大区域的块体使用 VORONOI
命令进行Voronoi划分以后,误以为这是对这个大块体进行了网格划分,这是不正确的,这时候只是把一个大块体分成了许多个Voronoi小块体,但仍然是块体。
最开始说到块体可以分为变形体和刚体,变形体需要划分单元,而刚体不需要;也说到Voronoi块体既可以为变形体,也可以为刚体。如果你使用 GENERATE
命令继续对Voronoi小块体进行单元划分,这时候的Voronoi小块体就可以变形,为变形体,如果不划分就看成刚体使用。
对于刚体的例子,可以参考我的上一篇文章中的实例:UDEC实例图文讲解:斜坡上坠落块体的运动、反弹模拟
是变形体还是刚体,一个简单的判断方法就是有没有对块体进行单元划分,且是否仅设置了块体的密度。变形体要变形是需要进行划分单元的,而且需要设置单元的本构模型(如摩尔库伦、Hoek-Brown模型、Drucker-Prager模型等),所以相应的还需要设置本构模型涉及到的参数的值。
而刚体不考虑变形,只有两个方向的平动和转动自由度,所以考虑重力的话仅需要设置密度即可。
对于边界条件的设置来说,变形体和刚体也有较大的区别。
通常使用Boundary
命令施加模型的边界力和应力时,可同时应用于刚性块和可变形块。 但施加边界速度则只能应用于可变形块,也就是说不能用 Boun vel=0
来固定某个方向的刚体边界,即使写了这种命令也是无法固定的。
对于刚体某个自由度的固定,需要使用 fix
命令,后面可以接关键字 x , y , rotation,用于固定某个方向的自由度,不接关键字就是固定所有自由度。注意 fix
命令只能用于刚性块。下面用UDEC6.0模拟一下边坡的崩塌破坏,破坏区域使用Voronoi划分成泰森多边形:
B站地址:https://www.bilibili.com/video/BV1La411c7a7
完整的命令流如下:
config cell
ro 0.1
bl 0,0 0,30 20,30 60,100 120,100 120,0
cr 30 60 110 105
;划分上部块体为泰森多边形块体
vor edge 2 iterations 100 round 0.01 range atblock 60,90
;不划分网格当成刚体计算
;gen edge 2
;赋予块体和接触的属性
change mat 1
property mat 1 density 2.5e-3
group joint 'joint'
joint model area jkn 5E3 jks 5E3 jfriction 25 range group 'joint'
set jcondf joint model area jkn 5E3 jks 5E3 jfriction 25
; 不能使用boun vel命令进行边界固定
; bound xvel=0.0 range -0.1,0.1 -0.1,30.1
; bound xvel=0.0 range 119.9,120.1 -0.1,100.1
; bound yvel=0.0 range -0.1,120.1 -0.1,0.1
;使用fix命令进行固定下部块体
fix 0 120 0 50
set grav 0.0 -9.81
;设置阻尼
damping .23 318.3 stiffness
;求解5s内的边坡破坏情况
solve age 5
如果将下部块体设置成变形体划分单元,则命令流如下:
可以看一下与上面命令流的区别
config cell
ro 0.1
bl 0,0 0,30 20,30 60,100 120,100 120,0
cr 30 60 110 105
hide range atblock 60 90
group block 'base'
show
vor edge 2 iterations 100 round 0.01 range atblock 60,90
gen edge 5 range group 'base'
property mat 1 density 2.5e-3
change mat 1
property mat 2 den 2.5e-3 bulk 1E4 shear 3E3
change mat 2 range group 'base'
group joint 'joint'
joint model area jkn 5E3 jks 5E3 jfriction 25 range group 'joint'
set jcondf joint model area jkn 5E3 jks 5E3 jfriction 25
; fix 0 120 0 50
bound xvel=0.0 range -0.1,0.1 -0.1,30.1
bound xvel=0.0 range 119.9,120.1 -0.1,100.1
bound yvel=0.0 range -0.1,120.1 -0.1,0.1
set grav 0.0 -9.81
damping auto ;.23 318.3 stiffness
solve age 10
模型如下:
破坏状态: