将单元zone转化为四面体tetrahedron---block zone list poly (BBM)
1 引言
list命令一般用于屏幕显示块体或单元的属性值,如果不附加写入文件的命令,那么这些显示的数据仅保存在内存中,不能直接保存到文件里面。但有两个例外,一个是 block list poly <s>命令,这个命令产生出一个包含block create polyhedron face命令的文件,这个文件可以直接作为一个数据文件来调用。这个命令的主要用途是提取一个模型的可见块内容,可以用来减少在建造过程中删除了许多块后模型所占的内存量。如果不指定文件名,那么系统会命名该文件为spoly.txt。有效位数等于12位或全局模型精度,以较大者为准。如果要增加精度到12位以上,使用model precision命令来设置。
另一个与之类似的命令是block zone list poly <s>,这个命令产生一个包含一系列block create tetrahedron命令的文件,其作用是将每个单元(zone)转化成变成一个四面体块(block)。原有的块组、区域、材料号和本构号将应用于新的四面体块。如果没有指定文件名,那么系统会命名为 "poly.dat"。有效位数等于12或全局模型精度,以较大者为准。如果要增加精度到12位以上,使用model precision命令设置。
使用block zone list poly的主要用途是在FLAC3D或3DEC中产生粘结块体模型[bonded block model (BBM)], BBM的生成由两个步骤组成,第一步产生离散的块体,第二步插入随机的DFN或者输入的节理组。下面分别演示这两种途径。
2 poly+DFN=BBM
在这个例子中,首先产生一个brick, 然后划分单元,block zone list poly命令将每个单元转化为block,写入poly.dat文件。
block create brick -3 3 -3 3 -5 5block zone generate edgelength 0.5block zone list poly
新产生一个DFN,然后导入上面生成的poly.dat, 产生出BBM.
model domain extent -6 6 -6 6 -10 10fracture template create 'dfn1' size power-law 3 size-limit 0.5 10fracture generate template 'dfn1' dfn 'realization_1' fracture-count 200program call 'poly'block cut dfn name 'realization_1' jointset-id 99block zone gen edgelength 0.25
3 poly+joint-set=BBM
在这个例子中,首先产生一个tunnel,然后考虑到圆心巷道的对称,取其1/4部分划分单元,block zone list poly命令将每个单元转化为block,写入poly.dat文件。
block create tunnel length -1 1 blocks-radial 8 blocks-tangential 2 ... boundary 8 radius-ratio 1.1block delete range position-x -100 0block delete range position-z -100 0block zone generate center 0 0 0 edgelength-center 0.1 distance 9 ... edgelength-distance 0.5block zone list poly
导入上面生成的poly.dat, 这个导入过程需要占用输入一组节理,产生出BBM。
program call 'poly'block cut joint-set dip 30 dip-direction 90 spacing 0.5 number 20 ... jointset-id 999block zone generate center 0 0 0 edgelength-center 0.1 distance 9 ... edgelength-distance 0.5