1 引言
在《离散断裂网络Discrete Fracture Network (DFN)[P1]》中,简要介绍了DFN的特性以及两个重要的术语:Fracture和Intersection, 同时引入了生成确定性断裂的命令fractue create以及计算相交的命令fracture intersections compute,本文接着介绍随机产生的断裂网格。
2 生成随机断裂网格DFN
一个DFN是一组断裂。在文章【P1】中,使用四个fractue create命令创建出4条断裂,形成一个DFN。可以同时存在多个DFN, 尽管一条断裂只能属于一个DFN。下图所示的是两组确定性的DFN,其中一组DFN是垂直的,另一组DFN是水平的。DFN分组对于计算是有用的,因为可以对不同组设置不同的断裂属性。
通常的情况是我们不能直接确定岩体中断裂的大小、方向和频率,而是使用地质测绘或地球物理技术来断裂的特征。在检查现场数据后,可以确定出断裂尺寸(size)、位置(position)和方向(dip, dip-direction)的边界(domain)。断裂模板(Fracture Template)包含了这些统计参数,使用fracture generate命令产生随机断裂(上篇文章已经使用过这个命令fracture generate fracture-count 400) 。断裂模板包含了断裂的大小、位置和方向分布的描述。为了使用断裂模板,采用fracture template create命令。断裂模板是一组断裂的随机表示,能够用来产生任意数目的断裂。
3 生成随机的DFN
与fractue create命令不同,fracture generate命令从一个统计描述中生成断裂,在生成之前必须首先指定模型域(model domain extent)。如果不指定断裂生成模板,也就是不使用fracture template create命令,那么就使用系统默认的模板(上一篇的例子就没有使用fracture template create命令)。可以使用fracture template modify-default 命令改变默认的模板参数,如果不提供modify关键字,并且模板不是默认值, 那么DFN 可以链接到断裂模板,在满足指定的停止条件之前生成断裂。这些条件包括:
目标断裂数目 (fracture-count);
目标 P10 (p10);
目标密度 (P21 in 2D; P32 in 3D) (mass-density);
目标渗透量 (percolation);
连接阈值处的 DFN (connectivity-threshold);
用户定义的准则 (fish-stop)
此外,在每个断裂生成之后,可以调用用户定义的 FISH 函数来修改断裂,跳过或添加/计算特定数量 (modify)。然后可以使用fracture attribute命令修改断裂特征,使用fracture property命令分配属性。用于接触模型的按照断裂生成顺序分配断裂优势(fracture contact-model命令)。注意:指定的DFN必须不存在或为空。如果未指定DFN,则使用下一个可用ID创建DFN,DFN 名称为 dfn XX,其中 XX 是 ID。
3.1 实例1---fracture generate
为了生成一个DFN,首先需要使用fracture template create命令指定断裂随机分布的参数,这些参数如下所示。
然后使用fracture generate 命令产生出一个DFN。如下面的例子所示。
model new
model random 10000
model domain extent -50 50
; ---生成 DFN ---
fracture template create 'dfn_template' size power-law 3 size-limits 2 20 ...
position uniform orientation uniform
fracture generate dfn 'my_dfn' template 'dfn_template' mass-density 0.1
; merge sub-parallel fractures that are close together
fracture combine angle 10 distance 0.1 merge
3.2 实例2---fracture combine
fracture combine 命令用来合并小的断裂。在这个例子中,合并了角度小于10度和距离小于0.1的断裂。去掉和合并小的断裂有助于划分单元,因为我们的目的是要进行力学计算。
下面的例子首先合并了角度<20度的断裂,然后把角度小于50的断裂投影在同一平面上面,但不合并。在没有合并之前,共有400条断裂,使用第一个combine命令后,只剩下178条断裂,使用第二个combine命令后只剩下152条断裂。如图所示。
model new
model domain extent -5 5
fracture template create 'default' orientation gauss (50,20)
fracture generate dfn 1 fracture-count 400
fracture combine angle 20 distance 0.5 merge
fracture combine angle 30 distance 0.5 collapse
return
3.3 实例3---stop停止条件
下面的例子演示了三种阻止断裂继续生成的方法。第一层使用了mass-density关键字,第二层使用了p10关键字,第三层使用了fish-stop关键字。
这段代码的运行结果如下图所示。
4 DFN 2D和3D命令差异
尽管2D和3D的命令格式相同,但是毕竟一个在二维空间,另一个在三维空间,因此个别命令还是不一样的。本节仅就上面例子中出现的命令简要说明一下二者的区别。(1) geometry
geometry在2D是由线组成的,而在3D是由面组成的,因此
2D: geometry edge create by-position (-5,3) (5,3)
3D: geometry polygon create by-positions (-5,-5,3) (-5,5,3) (5,5,3) (5,-5,3)
(2) fracture.geomp
fracture.geomp10 是geometry线段每单位长度上切割断裂的数目,只在2D上使用;fracture.geomp20 是geometry多边形每单位面积上切割断裂的数目,只能在3D上使用;fracture.geomp21是fracture.geomp20中切割长度的总和,只能在3D上使用。下面的例子演示了这个函数的用法。
把四个DFN得到的切割数相加,与geometry求出的切割数进行比较,可以看出,二者结果相等。顺便说一下,model random 10000这个语句一定要有,否则每次运行得出的结果不一样。
5 结束语
本文描述了断裂模板fracture template create命令和fracture generate命令的使用方法,这是DFN的核心命令。下一篇将继续讨论DFN各个函数的使用方法。
本文相似文档:
FLAC3D 7.0 新特性简介(P2)---FISH的显著改进