注册 登录
北京交通大学论坛-知行信息交流平台 返回首页

kengawk的个人空间 https://zhixing.bjtu.edu.cn/?12420 [收藏] [复制] [分享] [RSS]

日志

CAD TO ANSYS TO FLAC3D边坡稳定性分析全程揭密

已有 640 次阅读2015-3-5 12:59 |个人分类:modeling| 稳定性

http://forums.caenet.cn/showtopic-533011.aspx
最近看到不少朋友在问这个方面的问题,我现在把我过去几个月做的工程实例贡献出来,与大家共享。
(1)从CAD图获取等高线点的数据
这个过程我是采用捕捉点获取数据的方式,不过是用软件实现的,否则手工操作十分费事。这样的软件在论坛上的ANSYS版块已经有了。有时候,CAD图也并非全有三维信息,不过只要知道二维信息,辅之以高程,就可以了,这个工作量不大。将得到的点的坐标导入到EXCEL中进行处理,转换为下面的格式
k,        1,        600        ,0,        0
k,        2,        600        ,0,        700
k,        3,        0        ,0,        700
k,        4,        0        ,0,        0
k,        5,        600        ,24,        0
k,        6,        600        ,24,        700
k,        7,        0        ,24,        700
k,        8,        0        ,24,        0
即关键点坐标,然后就可以由点生成线了。至于为什么要导入到EXCEL,因为得出的数据点格式未必是符合ANSYS的数据格式,采用她可以进行批量处理,减少工作量。处理完毕后,这些数据点格式可以直接拷贝到记事本中,就成为符合ANSYS输入要求的数据点格式了。
(2)有了数据点,就进入到下一步,即由点在ANSYS中建立几何模型
通过数据点生成几何模型的方法多种多样,因人而异,没有统一的方法。不过对于我来说,个人觉得岩土工程模型比较复杂,最好是采用点生成线、线生面,面生成体的办法。至于地质界面,我是采用先生成面,然后切割体的方式生成。附件是我的ANSYS命令流,里面配有说明,大家可以参考一下。附图是按上述步骤得到的结果图和网格模型图,说明一下,这些图和我现在贴出的命令流得到的结果有些差异,原因是我后来更改了模型,不过步骤完全一样;后面我提到的在ANSYS生成水面的方式也是采用面切割体的方式得到的。


您所在的用户组无法下载或查看附件



您所在的用户组无法下载或查看附件



您所在的用户组无法下载或查看附件



您所在的用户组无法下载或查看附件您所在的用户组无法下载或查看附件
(3)ansys模型导入FLAC3D1
这个我采用haitang兄的五一纪念版转换软件实现。
具体步骤为:
导 入ANSYS命令流得到网格模型后,点击file栏read input from,找到五一纪念版转换软件文件夹中的ANSYS_COMMAND文件,得到单元和节点信息文件,并被保存在D盘根目录下。复制这两个文件,放置到 软件文件夹,双击转换软件,即可得到FLAC3D IMPGRID命令所需的数据格式文件(附件1),然后IMPGRID这个文件就可以得到FLAC3D 网格模型(附图)


您所在的用户组无法下载或查看附件您所在的用户组无法下载或查看附件
4)FLAC3D计算
对导入后的FLAC3D加上相关约束条件并赋上参数值就可以进行计算了。
下面是命令流和相关解释,做得比较简单,没有考虑其它,仅考虑了静水压力而已,呵呵。

;导入网格数据以生成水面
impgrid ww.flac3d
attach face
;为建立水面设置“辅助界面”而分组为水上部分和水下部分
group water_below range group 1 any group 2 any
group water_above range group water_below not
gen separate water_below  
interface 1 wrap water_below  water_above
set grav 0 -9.81 0
water den 1000  

;遍历界面单元节点生成水面
def water_table
p_i=i_head
p_ie=i_elem_head(p_i) ;界面1单元指针赋予p_ie4
loop while p_ie # null
;返回界面单元的三个顶点的地址
     p_gp1=ie_vert(p_ie,1) 
     p_gp2=ie_vert(p_ie,2)
     p_gp3=ie_vert(p_ie,3)

;以这三个界面单元顶点为水面的三个顶点,生成水面)
;interface的节点和网格节点的地址是分别存放的
x1=in_pos(p_gp1,1)
y1=in_pos(p_gp1,2)
z1=in_pos(p_gp1,3)
x2=in_pos(p_gp2,1)
y2=in_pos(p_gp2,2)
z2=in_pos(p_gp2,3)
x3=in_pos(p_gp3,1)
y3=in_pos(p_gp3,2)
z3=in_pos(p_gp3,3)
command
   water table face x1,y1,z1  x2,y2,z2  x3,y3,z3
endcommand
p_ie=ie_next(p_ie)
endloop
end
;删除单元组water_below和组water_above,为导入实际的材料分组做准备
model null range group water_below
model null range group water_above

;建立实际材料分组部分
;导入网格数据,重新分组
impgrid ww.flac3d
group soil range group 2 any group 4 any
group rock range group 1 any group 3 any

;执行生成水面的函数water_table
water_table

;删除辅助界面单元
int 1 dele
;彻底删除原先的分组,释放空间
dele range group water_below
dele range group water_above

;施加边界约束条件
fix x y z rang y -0.1 0.1
fix z range x 0 600 z -0.1 0.1
fix x range x -0.1 0.1 z 0 700
fix z range x 0 600 z 699.9 700.1
fix x range x 599.9 600.1 z 0 700

;初始化材料密度: 饱和的和非饱和的
def ini_dens
   p_z = zone_head ;将网格单元指针赋为p_z
;循环,并进行判断,如果隶属于组名为“土”的网格单元孔隙水压力不等于0,那么该单元密度为2120,其它单元密度为20206
   loop while p_z # null 
        if z_group( p_z)='soil' then 
           if z_pp( p_z) # 0.0 then
           z_density( p_z) = 2120
           else
               z_density( p_z) = 2020
           endif
        endif
      
        if z_group( p_z)='rock' then
           if z_pp( p_z) # 0.0 then
             z_density( p_z) = 3460
           else
             z_density( p_z) = 3360
           endif
       endif
      p_z = z_next( p_z)
   endloop
end

;执行ini_dens函数
ini_dens

;通过弹性求解生成初始应力
model elas9 t7 g, l& W  M3 s4 i
pro bulk 1e10 she 1e10 range group soil
pro bulk 1e10 she 1e10 range group rock
solve fo 1e3

;位移和速度归零
ini xdisp 0
ini ydisp 0
ini zdisp 0
ini xvel 0
ini yvel 0
ini zvel 0

;定义材料特性
;冰碛土物理力学参数指标
model mohr
pro bulk 4.0e8 she 2.4e8 co 2.6e5 fric 28.5 ten 1e4 dil 10 range group soil
;强节理化辉长岩物理力学参数指标
pro bulk 8e8 she 6e8 co 4.60e5 fric 37 ten 4e3 dil 15 range group rock

set mech ratio 1.0e-6
solve您所在的用户组无法下载或查看附件
(5)计算结果分析
下面就是对计算结果进行分析了,呵呵。
计算结果呢,我的习惯是先整体后局部,先三维后二维,即先看整体位移、应力云图,然后切剖面,绘等值线。说实话,我也是第一次做数值分析,也不知道上面的方式是否科学。剖面绘等值线程序来自论坛上前版主dynamax大牛的flac3d to tecplot,具体步骤如下,等命令流计算完毕后,call flac3d to tecplot文件即可,然后在tecplot 软件中切剖面绘等值线,就可以进行分析了。当然用下面的命令:
plot set plane nor() ori()
plo cont smin plane
or plo cont smax plane
等等也可以得到某些剖面的位移或主应力云图。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

手机版|北京交通大学论坛-知行信息交流平台 ( BJTUICP备13011901号 )  

GMT+8, 2021-12-6 22:55

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部