程江涛
(中化地质矿山总局湖北地质勘查院 武汉 430080)
地质体三维数值模型的建立是进行岩土工程与工程地质问题数值模拟分析的前提。由美国Itasca公司开发的FLAC3D软件能有效模拟岩土介质的三维力学行为[1],但该软件在复杂模型建立及单元网格划分等前处理问题上存在明显不足。首先,该软件只能用自带的12种初始单元模型进行建模;其次,该软件在建模时采用数据/命令行文件方式,不仅需花费大量时间,而且人机交互性不强,存在建模难度大的问题。国内外一些学者针对FLAC3D前处理不足问题开展了一些研究工作[2],但大多数研究都集中在复杂的数据前处理方面,集成化和智能化的程度不足。
针对上述问题,本文试图以Visual Basic为控制平台,以CAD、Surfer、ANSYS、FLAC3D4种软件的接口技术与二次开发技术为基础,构建基于DSAF集成系统的滑坡三维动态建模平台。在此基础上,以数据文件为传输媒介,实现DSAF集成系统的无缝连接,开发滑坡三维动态建模DSAF系统。
滑坡三维建模可概化为滑床与滑体实体模型构建与网格划分2个关键步骤。如何利用已有的地形信息和钻孔信息资料实现上述2个关键步骤是滑坡三维动态建模的关键。为此,本研究从集成化的角度出发,以CAD、Surfer、ANSYS、FLAC3D4种软件在建模前处理中的特点构建了滑坡三维动态建模DSAF集成系统,见图1。
图1 滑坡三维动态建模DSAF集成系统结构图
首先,通过前处理DXF文件提取滑坡三维建模原始数据;然后,导入Surfer软件进行网格化插值形成地形和滑面空间曲面网格数据文件;在此基础上,利用APDL二次开发语言形成滑坡实体网格建模命令流,导入ANSYS软件形成滑坡三维实体网格模型,生成单元信息数据文件和单元节点坐标数据文件;最后,利用Fish二次开发语言形成模型转换命令流,导入FLAC3D生成滑坡三维数值模型。
滑坡三维地质建模所需的原始数据主要由地形信息数据、滑坡周界空间数据及控制点(钻孔)信息数据3部分构成,以上3种数据均可从CAD处理后的DXF文件中获取。
1.2.1DXF文件结构
1个完整的DXF文件一般由4个段(HEADER段、TABLES段、BLOCKS段、ENTITIES段)和1个文件尾组成[3]。其中ENTITIES段记录了CAD图形中每个图形对象的名称、所在的图层名称、线型名、颜色号、基面高度、厚度,以及有关的几何数据,是提取建模信息数据的关键段。
DXF文件本质上由一系列组码和组值组成。每个段由若干个组码和组值对组成,每个组对在DXF文件中占2行,第1行为组码,第2行为组值。DXF文件每个段均以1个组码为0,组值为SECTION的字符串开始;以1个组码为0,组值为ENDSEC的字符串结束。整个DXF文件以1个组码0,组值为EOF的字符串结束。在滑坡建模原始数据提取过程中所使用的主要组码及含义见表1。
表1 DXF文件常用组码及其含义
1.2.2DXF文件读取与控制
滑坡三维地质建模需获取3种不同类型的原始数据,为此需在CAD模型下设置相应的图层及实体图元进行控制性读取。对于地形信息数据而言,CAD模式下默认的实体图元类型为二维多义线AcDbPolyline;对于滑坡周界信息数据及控制点信息数据而言,可用三维多义线沿等高线切取,形成三维多义线AcDb3dPolylineVertex实体图元类型。在CAD前处理完成的基础上,即可通过设置的图层名和实体图元类型2个控制变量读取上述3种类型的原始数据。
通过DXF文件提取的等高线节点数据即可形成地形信息数据文件,通过滑坡周界空间数据及控制点信息数据即可形成滑面信息数据文件。由于从DXF文件提取的信息数据空间离散性较大,不利于建模软件形成连续的空间曲面,为此需对提取的原始信息数据进行网格化插值,以形成连续的空间曲面数据。
Surfer作为专用的地形处理软件,具有强大的插值功能,提供了12种插值函数,能迅速地将离散点数据通过网格化插值转换为连续的曲面数据。为此,可通过VB与Surfer的无缝连接,调用Surfer Kriging空间插值函数构建地形与滑面空间曲面数据,其关键步骤如下:
‘创建ActiveX对象
Dim SurferApp As Surfer.Application
Set SurferApp=CreateObject(“Surfer.Application”)
‘Kriging网格化插值生成方法
SurferApp.GridData(InFile, NumCols, NumRows, SrfKriging, OutFile, SrfGridFmtXYZ)
其中:InFile为输入的数据文件名(地形或滑面信息数据文件);NumCols、NumRows为插值网格的列数和行数;SrfKriging为Kriging网格化插值方法;OutFile为输出的网格化数据文件名;SrfGridFmtX、Y、Z为输出的数据格式(X、Y、Z坐标)。
1.4.1滑坡三维实体网格模型构建方法
滑坡三维实体网格模型构的关键点是滑床与滑体三维实体模型的构建及其网格划分,其实现具体步骤如下。
1) 地形三维实体模型构建。①按行提取网格化地形数据文件中网格节点的三维坐标,形成关键点,并用样条函数拟合该行上所有关键点,形成样条线;②将所生成的样条线利用ANSYS蒙皮技术形成地形曲面;③通过设置的模型底部高程、地形曲面边界线以及拐点坐标,形成模型左右侧面、前后侧面及底面。
2) 滑体与滑床三维实体模型构建。①将Surfer网格化的滑面数据形成滑面空间曲面;②利用滑坡周界在Z方向上的投影点数据形成封闭的二维曲面(X、Y方向),并利用ANSYS拉伸技术,将该二维曲面拉伸成空间柱体,进而利用ANSYS布尔操作,用滑面曲面切割该柱体形成上下隔离体;③利用体切割技术,用上隔离体切割地形三维实体模型形成滑体与滑床三维实体模型。
3) 滑体与滑床实体模型网格划分。①设置滑体与滑床各自的单元类型(SOLID45)、材料模型及网格划分的形状与尺寸大小;②用自由网格划分模式划分滑体网格,若无法划分则改用映射网格划分模式划分滑体网格;③按滑体网格划分的思路,划分滑床网格。
1.4.2VB对ANSYS的封装调用
1) 利用VB控制平台对APDL编写的建模命令流进行后台封装,然后调用ANSYS应用程序,对APDL命令流进行批处理。VB封装ANSYS的关键步骤如下。
‘创建与启动ANSYS应用程序
Dim Ansyspath As String
Ansyspath=GetAppPath(“ansys.exe”)
Shell(Ansyspath-b -i Infile-o OutFile)‘判断ANSYS计算结束
在ANSYS运行期间,file.bat是不可写的,只有当ANSYS运行完毕时,file.bat文件才可写。为此可将该文件作为判断ANSYS是否计算完毕的标志。
ANSYS模型转化为FLAC3D模型的关键点就是将ANSYS单元信息数据文件(ELE.DAT)和单元节点坐标数据文件(NODE.DAT)转化为FLAC3D可识别的数据文件。对于滑坡三维数值模型而言,五面楔形体、五面锥形体、四面体3种单元类型基本能满足建模的需要。这2种软件所采用的单元节点编制对应关系[4]见表2。
表2 ANSYS与FLAC3D单元数据关系对照表
根据上述FLAC3D与ANSYS单元数据转换关系,即可借助FLAC3D内嵌的Fish语言将ANSYS实体网格建模导出的单元信息文件(ELE.DAT)和单元节点坐标文件(NODE.DAT)转化为后缀为*.Flac3D的数值建模文件。该过程实现的关键步骤如下[5]。
1) 节点坐标转换。ANSYS导出的节点坐标信息文件格式如下。
NODE X Y Z
1 0.0000 0.0000 214.54
利用转换程序产生节点坐标的FLAC3D命令格式如下。
*GRIDPOINTS
G 1 0 0 214.54
2) 单元信息转换(以四面体为例)ANSYS导出的单元信息文件格式如下。
ELEM MAT TYP REL ESY SEC
1 1 1 1 0 1
NODES
1 2 3 3 4 4 4 4
利用转换程序产生单元的FLAC3D命令格式如下。
*ZONES
Z T4 1 1 2 3 4
3) VB对FLAC3D的封装调用。FLAC3D与ANSYS一样均支持命令流操作,所不同的是FLAC3D命令流采用Fish语言编写,其具有难以表达结构清晰的程序,不能提供图形化输入界面等缺点。为此,可借助VB控制平台对Fish语言编写的命令流进行后台封装,然后调用FLAC3D应用程序,对Fish命令流文件进行批处理,其关键步骤如下。
‘创建与启动FLAC3D应用程序
Dim Flac3Dpath As String
Flac3Dpath=GetAppPath(“f3300 .exe”)
Shell(Flac3Dpath)
‘读入FLAC3D命令流文件
SendKeys “CALL FLAC3D-CAL.txt”, True
首先,在CAD前处理的地形地质数据文件(*.DXF格式)中提取滑坡三维建模的原始数据信息,将其导入Surfer软件生成经过网格插值后储存了地形和滑面空间曲面网格数据的*.txt文件;然后利用APDL语言编写ANSYS可读取的*.txt滑坡三维实体网格建模命令流,将其导入ANSYS软件,生成三维实体网格模型的单元信息数据文件(ELE.DAT)和单元节点坐标数据文件(NODE.DAT);在此基础上,利用Fish语言编写的ANSYS与FLAC3D转换程序,生成FLAC3D可以读取的*.Flac3D三维数值建模文件;待FLAC3D三维数值模型建立后,利用FLAC3D内嵌的Fish语言,对其赋予相关物性、岩石力学物理或水力学参数、边界条件等,生成FLAC3D可以读取的*.txt滑坡三维数值模拟文件,见图2。
图2 滑坡三维动态建模DSAF系统开发框架图
1) 基础资料前处理部分。①根据滑坡范围在CAD模式下设置计算模型的范围,并将所有的等高线归并到一个图层下,设定地形图层名;②用三维多义段(3dpoly)沿地形等高线圈定滑坡周界、连接控制点,并设置滑坡周界和控制点图层;③将处理完毕的CAD模型另存为*.DXF文件格式。
2) CAD TO ANSYS转换部分。①通过*.DXF文件提取地形、滑坡周界和控制点的三维坐标数据,并将滑坡周界和控制点数据归并为滑面信息数据文件;②利用Surfer软件中的克里金插值算法按照一定的纵横网格间距对地形数据和滑面数据进行插值计算,形成地形曲面和滑面空间曲面网格数据;③按照滑坡三维实体网格模型的建模方法,利用APDL语言编写三维建模命令流文件。
3) ANSYS TO FLAC3D转换部分。①后台启动ANSYS软件,读入APDL编写的建模命令流文件,建立滑坡三维实体网格模型,并导出网格模型单元信息数据文件和单元节点坐标数据文件;②根据ANSYS模型与FLAC3D模型的转换关系,利用Fish语言编写的模型转换命令流,形成滑坡三维数值模型;在此基础上,利用Fish语言设置材料物性、力学参数及边界条件等,生成滑坡三维数值模拟计算命令流;③后台启动FLAC3D软件,读入Fish编写的命令流文件,进行数值模拟计算。
启动软件进入CAD TO ANSYS模块界面,见图3。在此界面下操作:①点击相应的“读入菜单”读入*.DXF文件,获取建模原始数据;②设置插值网格单元的横列数,点击相应的“网格化”菜单,后台调用Surfer生成地形和滑面曲面网格数据;③设置滑体和滑床的材料属性及网格划分的尺寸,点击“数据保存”菜单,生成APDL编写的滑坡三维实体网格模型建模命令流文件(*.txt)。
图3 CAD TO ANSYS模块界面
在CAD TO ANSYS模块界面操作完成的前提下,进入ANSYS TO FLAC3D模块界面,见图4。
图4 ANSYS TO FLAC3D模块界面
在此界面下操作:①点击“模型转换”菜单,后台调用ANSYS软件,读入APDL编写的建模命令流文件,生成用Fish语言编写的FLAC3D建模命令流文件;②设置滑体和滑床的材料属性,点击“数据保存”菜单,生成用Fish语言编写的数值模拟计算命令流文件;③点击“FLAC3D计算”菜单,调用启动FLAC3D软件,读入Fish编写的数值模拟计算命令流文件,进行数值模拟计算。
枣树坪滑坡位于奉节县鹤峰乡文锋村大溪河左岸斜坡地段,滑坡体平面形态呈“圈椅形”,滑坡前缘直抵大溪河,地形坡度20°~30°,后缘地形坡度40°~50°。滑体物质主要为第四系全新统滑坡堆积层,岩性为粉质黏土夹碎块石,滑体厚度15.6~23.3 m,中后部滑体厚度较大,中前部滑体厚度较小。滑带位于第四系粉质黏土夹碎块石与下伏砂岩、泥质粉砂岩之间,滑面形态呈折线形,滑坡后部滑面倾角较陡,约为35°,至滑坡前部滑面倾角渐缓。滑床为三叠系中统巴东组(T2b)的泥质粉砂岩组成,岩层产状为148°∠27°。
3.2.1计算模型范围确定
根据滑坡范围选取滑坡三维数值计算模型的范围,其中顺河轴线方向取680 m,垂直河轴线方向取710 m,垂直深度取高程0~+400 m,即模型的长、宽、高尺寸为680 m×710 m×400 m。
3.2.2CAD模式下基础资料前处理
三维数值建模前处理部分主要是在CAD模式下进行平面图图层控制处理和剖面图滑面数据控制处理,并另存为*.DXF文件格式。经处理后的枣树坪滑坡平面图和剖面图见图5和图6。
图5 枣树坪滑坡三维建模前处理平面图
图6 枣树坪滑坡三维建模前处理剖面图
3.2.3滑坡三维数值模型建立
在前处理工作完成的基础上,启动软件进入CAD TO ANSYS模块界面,读入前处理平面图数据文件(*.DXF),并根据剖面图输入控制点的滑体厚度。点击“数据保存”菜单后,启动ANSYS TO FLAC3D模块界面,点击相应的菜单,即可建立基于FLAC3D环境的三维数值模型,整体及剖面数值模型分别见图7和图8。
图7 枣树坪滑坡三维数值模型 图8 枣树坪滑坡剖面数值模型
1) 本文提出通过DXF文件提取滑坡三维建模原始数据,导入Surfer软件进行网格化插值形成地形和滑面空间曲面网格数据;通过APDL语言形成滑坡实体网格建模命令流,导入ANSYS生成单元信息数据文件和单元节点坐标数据文件;通过Fish语言形成模型转换文件,导入FLAC3D生成滑坡三维数值模型的建模方法。
2) 以VB为控制平台,以CAD、Surfer、ANSYS、FLAC3D4种软件的接口技术与二次开发技术为基础,构建了基于DSAF集成系统的动态建模平台。在此基础上,以数据文件为传输媒介,实现了DSAF集成系统的无缝连接。
3) 该系统具有数据准备简单、人机交互性强、简单明了、操作方面等特点。工程实例验证了该系统的建模功能和适用性,该系统从基础资料的前处理到滑坡三维数值模型的建立整个过程仅需5 min左右,大大提高了建模的效率。