1 引言
3DEC模型转换到FLAC3D模型比转换到UDEC模型【三维模型输出到二维模型(3DEC to UDEC)】要复杂的多,原因是三维模型对象的属性比二维模型多,涉及到点,线,面,体,组,槽的转换。一个最基本的要求是在3DEC内必须把block划分成zone才能进行转换,在3DEC内直接的转换方式为:File>Grid>Export to FLAC3D...。转换时可以选择ASCII Format,也可以选择Binary Format。二进制文件的尺寸比文本文件的尺寸小,读入速度快,因此,一个经验规则是在调试程序时使用文本文件,可以观察文件内容,在执行程序时使用二进制文件。
2 工作原理
3DEC转换成FLAC3D后,会产生两个同名但不同扩展后缀的文件,一个是网格文件*.f3grid, 一个 *.dat文件,*.dat文件的内容如下所示。
zone import 3.f3grid
zone interface create-from-3dec
fish define interface_group
loop foreach local ip interface.list
local int_name = interface.name(ip)
local pos = string.find(int_name, '_')
local ip_grp = int_name(1, pos - 1)
interface.group(ip) = ip_grp
;
loop foreach local el interface.elem.list(ip)
local facenum = interface.elem.host.face(el)
local hostzone = interface.elem.host.zone(el)
local dfngroup = zone.face.group(hostzone,facenum,'dfn')
if dfngroup != 'None'
interface.group(ip,'dfn') = dfngroup
endif
end_loop
end_loop
end
[interface_group]
转换程序将3DEC的单元导出到*.f3grid中,将节理导出到*.dat中,使用interface_group创建FLAC3D的interface。FLAC3D单元将被分配到与3DEC中的块组相同的组名和槽位(slot)。如果Merge-Join设置为 "true",那么单元也将被分配与slot ID相同的组名。faces将被设置成在slot "jset "中与节理ID相关的组名。
3 命令选项
上述在File>Grid中生成的FLAC3D文件实际上执行的是命令block to-flac3d,这个命令可以带一些其它关键字用来控制文件的输出。
(1) face-groups [true/on] 输出用户定义的face group名称(不是joint set ids). 默认情况下,不输出face group名称。
(2) filename [s] 设置输出文件的名称。产生两个输出文件,一个网格文件 .f3grid, 一个 .dat文件,调用网格文件。
(3) binary [false/off] 默认情况下输出文件格式是二进制文件,可以输出为ASCII format.
(4) block-id [true/on] 设置等于3DEC块体ID的单元组。如果连接了块体,那么单元组将被设置成联合组的主ID。这些组将被分配到槽位BlockID。默认情况下是off。
(5) zone-groups [true/on] 输出用户定义的单元组名(不是块体组)。默认情况下不输出。
4 FLAC3D文件格式
导出的*.f3grid文件由以下几部分组成:
*GRIDPOINTS
*ZONES
*GROUPS (ZGROUP, FGROUP)
*FACES
* FACE GROUPS
单元型式有:
B8 – brick单元
W6 – wedge单元
P5 – pyramid单元
B7 – degenerate brick单元
T4 – tetrahedral单元