在UDEC中,生成节理通常有两种方式,一条一条的生成(crack)以及设置节理集(jset)的方式。二者有时候产生的效果是一致的。例如:
crack (0,0) (10,10)
与
jset angle 45 origin 5,5
的效果是一样的,都是产生一个45度的节理。
如果使用多个 crack 命令来生成节理,crack 的顺序对最终节理的生成没有影响,如生成下列锯齿状节理时将顺序打乱:
ro 0.1
bl 0,0 0,10 10,10 10,0
cr 2.5,6 5,5
cr 0,5 2.5,6
cr 5,5 7.5,6
cr 7.5,6 10,5
同样可以生成:
在设置节理时,节理必须要将块体完全切割,离散的区域必须是一个个独立的多边形,不能存在那种在块体内部而没有延伸至块体边界的节理,这种节理在模型开始求解后都将被自动删除,也可以在生成节理以后使用 JDELETE 命令手动删除。
同时,给块体边角指定的 rounding length 对节理的生成也有影响,并且产生这种影响时程序不会报错或警告。具体可查看《UDEC中round的取值及应该注意的一个隐蔽的问题》中所述。
JSET 可以看成是基于统计的节理集生成命令。主要参数如下:
angle 指定节理相对于X轴的方向, gap 指定一条节理片段中片段的间距, spac 指定多条节理之间的间距, trace 指定节理片段的迹长, origin 指定节理的原点, adev 指定偏离节理方向的角度。通过上图可以很清晰的知道每一个参数的意义。
下面是一个生成四个规则节理集的例子:
new
round 0.01
block 0,0 0,20 20,20 20,0
jset angle 0 spacing 3 origin 0,0
jset angle 90 spacing 3.5 origin 0,0
jset angle 30 spacing 4 origin 0,0
jset angle 50 spacing 6 origin 0,0
或者在圆形区域生成节理片段:
new
round 0.01
block circular 0.0,0.0 5.0 40
jset angle 0 trace 3,1 gap 0.25,0.2 spacing 0.5,0.2 origin 0,0
jset angle 70 trace 3,1 gap 0.25,0.2 spacing 0.5,0.2 origin 0,0
里面包含了大量无法将块体完全切割的节理,通过运行 JDELETE 命令之后这些节理将被删除:
当指定的节理片段可以完全将块体切割时,节理都可以存在:
new
round 0.1
block 0,0 0,10 10,10 10,0
jset angle 45 spacing 1 origin 0,0
jset angle 315 trace 1 gap 1 spacing 1 origin 0,0
jset angle 315 trace 1 gap 1 spacing 1 origin -1,0.354
如果想指定节理生成的范围,通过 JREGION 可以指定一个四边形区域定义这个范围。用法如下:
每个JREGION由一个id号标识。该区域的坐标按顺时针方向指定,并划定该区域的边界进行节理生成。如果给出了可选的关键字delete,则在以前的JSET、VORONOI或CRACK命令中存储的节点将被删除。当指定多个JREGION时是很有用的,以避免由相邻区域产生节理的相互切割。
Voronoi命令可以创建随机大小的多边形块。UDEC模型中的一个或多个块可以细分为任意大小的Voronoi子块,通常可以用来模拟裂纹的扩展过程。用法如下:
第一个参数指定了Voronoi多边形的平均边长,多边形的大小是随机的,但会有平均的边长。第二个可选参数指定迭代次数,通过增加迭代次数,可以使Voronoi块的大小分布更加均匀(默认值是n = 5)。第三个可选参数指定倒角的长度,倒角长度必须比平均边长至少小20倍。
通过指定 JREGION 区域与 JSET 节理集,按照计算好的角度设置可以生成下面这种上下分区的六边形节理:
new
ro 0.01
block 0,0 0,10 10,10 10,0
crack (0,5) (10,5)
jregion id 1 0.0,5.0 0.0,10.0 10.0,10.0 10.0,5.0
jregion id 2 0.0,0.0 0.0,5.0 10.0,5.0 10.0,0.0
; jregion 1 joints
jset angle 15 trace 1 gap 2 spacing 1.732 origin 1.932,0.518 range jreg 1
jset angle 15 trace 1 gap 2 spacing 1.732 origin 0.259,0.966 range jreg 1
jset angle 135 trace 1 gap 2 spacing 1.732 origin 1.932,0.518 range jreg 1
jset angle 255 trace 1 gap 2 spacing 1.732 origin 1.932,0.518 range jreg 1
jset angle 75 trace 1 gap 2 spacing 1.732 origin 0,0 range jreg 1
jset angle 315 trace 1 gap 2 spacing 1.732 origin 0,0 range jreg 1
jset angle 75 trace 1 gap 2 spacing 1.732 origin 1.225,1.225 range jreg 1
jset angle 135 trace 1 gap 2 spacing 1.732 origin 0.259,0.966 range jreg 1
; jregion 2 joints
jset angle 0 trace 1 gap 2 spacing 1.732 origin 0,0 range jreg 2
jset angle 0 trace 1 gap 2 spacing 1.732 origin 1.5,0.866 range jreg 2
jset angle 60 trace 1 gap 2 spacing 1.732 origin 1,0 range jreg 2
jset angle 60 trace 1 gap 2 spacing 1.732 origin 1,1.732 range jreg 2
jset angle 300 trace 1 gap 2 spacing 1.732 origin 1,-1.732 range jreg 2
jset angle 300 trace 1 gap 2 spacing 1.732 origin 1,0 range jreg 2
定义的 JREGION 区域保证了节理不会相互交叉,只在自己的范围生成。
Voronoi多边形生成的节理:
round 0.01
block 0,0 0,5 20,5 20,0
crack (9,5) (9,3)
crack (9,3) (11,3)
crack (11,3) (11,5)
;
vor edge 1.0 iterations 100 round 0.01 range atblock (10.0,2.5)
jdelete
定义的 JREGION 区域,联合 JSET 以及 VORONOI 命令可以生成下面这种模型:
round 0.01
block 0,0 0,30 10,30 10,0
crack (0,10) (10,10)
crack (0,20) (10,20)
vor edge 2.0 iterations 100 round 0.01 range atblock (5.0,5.0)
jdelete
jregion id 1 0.0,10.0 0.0,20.0 10.0,20.0 10.0,10.0
jset angle 45 spacing 1 origin 0,0 range jregion 1