采用CAD、surfer、FLAC3D多软件联合生成高仿真地形

我之前曾将ANSYS建立三维模型,并成功导入到FLAC3D中,但使用ansys建模有个缺点,就是得一行行输入命令,先生成关键点key point,然后得把关键点连成线spline,再把线生成面,之后再将面生成体,很是麻烦。最近在使用surfer软件生成地形的时候,发现该软件功能非常强大,而且生成的地形面仿真度较高,因此考虑能否使用AutoCAD、surfer、FLAC3D等多软件联合,建立起三维模型,这样可以大大降低工作强度,而且难度较低,模型的仿真度更高。下面简要介绍一下我的工作步骤:

首先,第一步,对CAD图进行修整,去除不必要的图元,这里需要说明的是,由于原图中等高线不对,所以我干脆把等高线全部都删除了,只留下台阶边坡。附图如下:

a. 原图

b. 修整后,带高程的台阶边坡图

第二步,将修整后的图另存为dxf格式,读出坐标点,存为数据格式。这里读坐标点,可以仁者见仁智者见智了,我使用的是DXF2XYZ小软件,直接读取,存为*.xyz格式文件。软件工作界面如下图所示:

第三步,将前面生成的*.xyz文件用excel打开,处理一下,删除重复的数据和其他不必要的数据,原因是:考虑到图中有很多单独测量的高程点,以及一些未删除的钻孔数据,防止CAD图未修整干净,导致数据文件中有点坐标重复,生成的图不好看,而且对后续的模型网格剖分造成影响。(这也是为何我不直接将dxf文件导入surfer,而多从这两步“绕一下”的原因。如果你的

图很干净整洁,可以考虑直接用surfer读入dxf文件)

这一步中,我用excel删除了1936个重复数据,剩下15460个点,果然证明了前面的猜想,即:图元没有删除干净。

excel处理完数据以后,将其另存为*.xyz或者*.dat格式,后缀名无所谓,因为后面另有他用。

第四步,打开surfer,导入数据文件。具体做法是:Grid--Data,读入第二次生成的*.dat文件,surfer软件将会进行自动插值计算,插值方法有很多中,可以根据自己的需要选择其中一种。数据导入成功后,将会有Griding report,同时生成*.grd文件。

第五步,surfer中菜单栏:Map---New----3D wireframe...,读入刚刚生成的*.grd文件,生成曲面模型。这一步主要是为了对模型有个直观的感受,看生成的模型与实际情况是否吻合,否则应进行修改。结果如下图:

这样,一个漂亮的曲面模型就生成了。下面最终的步骤终于来临了,这是重点,也是难点,就是导入到FLAC3D中,这样才可

以进行有限差分计算。

第六步,采用已有的surfer 2 FLAC3D程序,导入到FLAC3D里面。具体做法是将第三步生成的*.dat重命名为surfnd.dat,FLAC3D 读入main.dat文件,分别调用网格节点、面节点、模型剖分fish子程序,生成最终的模型。结果如下图所示。

我的模型非常大,有节点778688个,网格753571个,我的计算机开了两夜,大概至少花了30多个小时才得到最后结果。

结语:

由于研究区域比较庞大(x=995m, y=1000m, z=400m),此次建模之前,没有估计到细化的网格会造成多么庞大的数据量,结果导致单单模型文件就有408MB之巨,后续如果采用这个模型来计算的话,那么工作量将是无法想象的。

本次三维模型的建立,只是进行一次尝试,未考虑地下水,未考虑复杂的岩层界线。关于地下水,如果浸润线不规则的话,

可以在FLAC3D中考虑采用“容重法”指定水面;对于复杂的岩层界线,可以指定不同高程(ex. group Q4 range z 499.26 720.05),也可以根据不同的岩性界线,从surfer中生成几个曲面,然后分别导入FLAC3D中,具体待后试,欢迎探讨。

相关文档
最新文档