案例代码见文末,感谢您关注PFC小姐姐,麻烦您多多对推文点赞、收藏及转发,并衷心希望您多多指教🙏,帮助PFC小姐姐进步提升。
说明
本算例说明如何在 3DEC 中导入和使用由 Rockmass Technologies 测缝/构造测量仪器采集的结构面数据(见 https://www.rockmasstech.com)。
算例使用的是加拿大安大略省 Kidd 矿山地下实测的裂隙数据。
结构面数据(Structural Data)
利用 Rockmass Technologies 仪器采集的结构数据可以保存为 csv 格式,该格式也被 Leapfrog 软件使用(https://www.seequent.com/products-solutions/leapfrog-software)。文件由一行表头加多行数据组成。可以包含或略去许多不同的数据字段——3DEC 在导入时会读取文件中存在的所有字段和数据。
为了让 3DEC 正确导入,csv 文件中必须至少包含以下表头:
X
Y
Z
Dip(倾角)
Dip Direction(倾向方向)
Feature #(构造编号)
Window #(测窗编号)
图 1 给出了一个示例文件的前几行。
(该文件实际为逗号分隔格式,但为了便于展示,这里用电子表格形式显示。)
Figure 1:由 Rockmass Technologies 测量软件导出的文件片段。实际文件是逗号分隔格式,这里用表格显示以便说明。
3DEC 模型——确定性用法
实测的结构面可以导入到 3DEC 中,并生成 DFN(离散裂隙网络)中的裂隙。此时假定用户希望在模型中直接表示每一条实测构造面。若希望基于实测数据生成随机的裂隙分布,则参考后面“随机(Stochastic)模型”一节。
在导入时,可以将每一条测量记录视为一个单独裂隙,也可以对具有相同 Feature # 和 Window # 的测量进行位置与方位的平均。默认行为是进行“平均”。
导入 Kidd 数据的示例命令如下(也就是完整的数据文件内容):
fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 1
需要注意的是,在导入这类数据时必须指定一个 size(直径)。因为 csv 文件无法提供构造面的尺寸信息,3DEC 需要一个直径值来生成 DFN 中的圆盘裂隙。图 2 显示了按上述命令导入后得到的裂隙盘;每个测窗对应的隧道外表面也以 dxf 形式导入,并一同绘制。
Figure 2:导入的裂隙,以直径 1 m 的圆盘表示。具有相同 Feature # 和 Window # 的测量被取平均。
在图 2 中,对拥有相同 Window # 和 Feature # 的测量记录进行了平均,因此原本 81 条测量记录被合并为 12 个 DFN 裂隙。裂隙的着色可以按照 csv 文件中的任意字段进行设置;图 2 的例子中是按 Window # 着色。
如果希望 每一条测量都对应一个裂隙,而不进行平均,只需在上述命令末尾增加 average false:
fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 1 average false
这样就得到图 3 所示的裂隙(按 Feature # 着色),81 条测量均被单独表示;这些裂隙的极射赤平投影见图 4。
Figure 3:导入的裂隙,以直径 1 m 的圆盘表示。具有相同 Feature # 和 Window # 的测量不被平均,按 Feature # 着色。
Figure 4:81 条未平均裂隙的极射赤平投影图。
接下来可以用导入的裂隙来切割 3DEC 模型中的断层/节理。这里先在 3DEC 中构建一个简化的隧道模型,为方便起见假定隧道截面为正方形。创建模型的数据文件见后文。构建模型时,裂隙直径取 5 m(而前面的展示图中是 1 m)。模型生成完成后,用以下命令用导入裂隙切模型:
block cut dfn name 'leapfrog-2022-12-19-1948'
注意:导入的裂隙会自动归入一个名为 'leapfrog-2022-12-19-1948' 的 DFN,该名称等于 csv 文件名去掉扩展名 .csv 后的字符串。也可以在导入时手动设置 DFN 名称。使用平均后裂隙的切割模型见图 5。
Figure 5:切割并网格划分后的 3DEC 模型。模型前半部分被剖切,隧道块体被隐藏,以显示隧道内部。绿色圆盘为导入的裂隙。
在 3DEC 中,一次切割必须贯穿整个块体,不允许只切一部分。因此,在 DFN 裂隙真实延伸范围未知的情况下,图 5 这种模型可以理解为“最不利情形”(裂隙无限延伸)。如果想限制裂隙的实际延伸范围,可以通过给圆盘裂隙内外的接触子单元指定不同的材料参数来实现。例如下面的命令对圆盘内外采用不同粘聚力:
block contact property cohesion 1e20block contact property cohesion 0 range dfn-3dec 'leapfrog-2022-12-19-1948'
第一条命令把所有接触的粘聚力设为 1e20(非常大),第二条命令再把属于 DFN 圆盘内部的接触粘聚力设为 0。这样就实现了“圆盘内为弱面,圆盘外为强岩体”的效果。图 6 给出了按粘聚力着色的接触分布。
Figure 6:3DEC 模型中按粘聚力着色的裂隙接触。
3DEC 模型——随机
另一种使用现场数据的方式是:只用实测的方位信息来指导一个随机生成的 DFN,让 DFN 含有大量裂隙。可以以相同的方位分布生成多个不同的 DFN,以反映随机性。
导入的 Rockmass 数据可以用来“自助采样”(bootstrap)随机裂隙的方位分布。对于 Kidd 数据,示例命令如下:
fracture template create 'template1' orientation rockmass 'leapfrog-2022-12-19-1948.csv' ... size power-law 3 size-limits 5 50fracture generate template 'template1' fracture-count 5000
这里先创建一个模板 template1,指定位置、方位和尺寸的统计分布;然后按照该模板生成一个具体的 DFN。上面的命令会生成一个包含 5000 条裂隙的网络。
生成的 DFN 如图 7 所示,裂隙按直径进行等值线着色;5000 条裂隙的极射赤平投影见图 8。可以同图 4 中原始实测数据的极射赤平投影比较。
Figure 7:基于导入裂隙数据“自助采样”生成的 DFN,按裂隙直径进行等值线着色。
Figure 8:该 DFN 中 5000 条裂隙的极射赤平投影。
之后可以像前面的确定性情形一样,用这些裂隙来切割 3DEC 模型(图 9)。
Figure 9:用 5000 条 DFN 裂隙切割得到的 3DEC 模型。
代码文件
代码1-deterministic.dat
model newgeometry import 'kidd_left.dxf'geometry import 'kidd_middle.dxf'geometry import 'kidd_right.dxf'model domain extent -50 50fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 1
代码2-deterministic-model.dat
model newmodel domain extent -50 50fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 5 ; 创建 3DEC 模型program call 'model'; 用 DFN 裂隙切割模型block cut dfn name 'leapfrog-2022-12-19-1948'; 隧道周围采用更小的单元尺寸block zone size edge 2block zone size edge 0.5 range pos-y -16 -4 pos-z -5 5block zone gen-new min-edge 0.5 max-edge 2; 接触参数设置:先全局大粘聚力,再在 DFN 内部置零block contact property cohesion 1e20block contact property cohesion 0 range dfn-3dec 'leapfrog-2022-12-19-1948'model save 'deterministic'
代码3-stochastic.dat
model newmodel domain extent -30 30; 基于 Rockmass 数据创建 DFN 模板,方位由 rockmass 文件给定,尺寸服从幂律分布fracture template create 'template1' orientation rockmass 'leapfrog-2022-12-19-1948.csv' ... size power-law 3 size-limits 5 50; 按模板生成 5000 条裂隙fracture generate template 'template1' fracture-count 5000; 调用通用模型生成脚本program call 'model.dat'; 用生成的 DFN 切割模型block cut dfn name 'dfn1';; 下面这段需要在默认值基础上提高内存;; 参见 Tools - Options - Configuration;block zone gen edge 0.5model save 'stochastic'
代码4-model.dat
block tol 0.001; 创建基础块体block create brick -15 10 -28 8 -15 15; 在感兴趣区域增加更多切割以细化几何block densify join seg 1 3 3; 定义隧道截面轮廓(两个表——入口和出口截面)table '1' add -1,-1 -1,2 2,2 2,-1table '2' add -1,-1 -1,2 2,2 2,-1; 按给定截面表和轴线切出隧道,并把块体归为组 'tunnel'block cut tunnel table-1 '1' table-2 '2' axis -6.757,10,0.5 -2.75,-30,0.5 ... group 'tunnel'
参考文献
①、3DEC HELP文档
特别声明:
以上代码与文案均为帮助文档中英文翻译而成,仅供广大同行们参考学习,如有侵权请联系删除,同时请广大同行支持正版软件,自行购买正版Itasca系列软件。