1 引言
块体和单元的划分质量直接影响着模拟是否能顺利进行,3DEC在运行时出现的大多数错误信息与块体的差的几何形状的有关(bad block geometries)。尽管一个项目使用的划分方法不能完全照搬到另一个项目中,但必须遵守一些通用的规则。3DEC提供了非常强大的以任何角度和任何尺寸切割块体的能力。第一种方法是似随机方法,多次使用block cut joint-set命令即可产生出任意角度和任意尺寸的块体;第二种方法是真随机方法,使用断裂模板产生离散断裂网络fracture template create和fracture generate dfn (离散断裂网络 (DFN) [P2]: fracture generate)。不过,无论使用哪种方法,都会产生一些非常薄或者非常小的块体,这导致了当块体发生大变形时(小应变和大应变),系统会出现错误信息,如显示负体积单元(negative volume zone) 或坏的面法线向量(bad face normal)。因此在运行之前,需要检查块体的几何形状是否合适。
Cubit提供了非常强大的网格质量控制功能【sculpt parallel 网格质量控制(12);Griddle与Cubit网格生成质量的比较】,不过由于目前Cubit网格转换到3DEC网格时还存在一些暂时解决不了的问题,因此需要配合使用3DEC内置的检查功能。
2 检查方法
3 试验例子
下面显示的例子是由DFN产生的块体模型,共有2390个块体,然后使用上述准则进行检查,结果发现face-area,edge-length,aspect-ratio这三项都有问题:
model new
model random 10000
model domain extent -50 50 -50 50 -50 50
; -- Generate DFN --
fracture template create 'dfn_template' size power-law 3 size-limits 1 100
fracture generate template 'dfn_template' dfn '99' mass-density 0.1
; create block
block tolerance 0.001
block create brick -20 20 -20 20 -20 20
block cut dfn name '99'
;
; --- find and group bad blocks ---
;
block group 'bad_face' slot '1' range face-area 0 0.0001
block group 'bad_edge' slot '2' range edge-length 0 0.005
block group 'bad_aspect' slot '3' range aspect-ratio 10 1000
block group 'bad_volume' slot '4' range volume 0 0.001
为了得到合适尺寸的块体,一种方法是试着使用fracture combine angle命令合并其中的一些小的断裂,另一种方法是阻止断裂继续生成,这包括使用mass-density, p10和fish-stop关键字。在fish-stop中,可以联合使用下面的FISH函数改善块体的生成:
fracture.area
fracture.len
fracture.ddir
fracture.dip
fracture.density
4 其它途径
还有其它一些块体检查方法,例如:
(1) 使用z.vol检查块体的体积[it.zone.near((5,5,5))>z.vol()];
(2) 使用block zone list命令,其中ratio, state和metric三个关键字可以检查单元生成质量。