FLAC原理实例与应用指南FLAC3D实例分析教程Word下载.docx
《FLAC原理实例与应用指南FLAC3D实例分析教程Word下载.docx》由会员分享,可在线阅读,更多相关《FLAC原理实例与应用指南FLAC3D实例分析教程Word下载.docx(49页珍藏版)》请在冰豆网上搜索。
采用摩尔-库仑模型
propbulk1e8shear0.3e8
模型的材料性质:
体积模量1×
108剪切模量0.3×
108
propfric35coh1e3tens1e3
摩擦角35°
粘聚力1×
103抗拉强度1×
103
setglobalconditions
设置全局参数
setgrav0,0,-9.81
3
设置重力加速度,z坐标正方向为正,故为-9.81
inidens2000
初始密度为2000
setboundaryconditions
设置初始边界情况
fixxrangex-0.10.1
在x方向上固定x=0边界,为滚动支撑
fixxrangex5.96.1
在x方向上固定x=6边界,为滚动支撑
fixyrangey-0.10.1
在y方向上固定y=0边界,为滚动支撑
fixyrangey7.98.1
在y方向上固定y=8边界,为滚动支撑
fixzrangez-0.10.1
在z方向上固定z=0边界,为滚动支撑
monitormodelvariablestocheckforequilibrium
监控模型变量,并控制力学平衡
histunbal
监测不平衡力,并保留历史记录(在默认情况下,每十步做一次记录)
histgpzdisp4,4,8
监测网格坐标点(4,4,8)在z方向的位移,并保留历史纪录
solve
运算,求解(默认情况下ratio=1×
10−5停止运算)
pause
暂停
savet1.sav
形成sav文件,并保存为t1.sav
restt1.sav
恢复t1.sav文件
Step2:
excavatetrench
第二步:
开挖隧道
modelnullrangex2,4y2,6z5,10
在x(2,4)y(2.,6)z(5,10)范围内建立零模型(即开挖这一部分区域)
setlarge
在全局下设置大应变状态
initialxdis0.0ydis0.0zdis0.0
把x,y,z重新设置为0(因为我们只为了观察基坑引起的位移变化,
而不是从施加重力荷载引起的位移变化,这不会影响计算结果)
4
step1000
运算1000步
savet2.sav
形成sav文件,并保存为t2.sav
ret
放在批处理文件的最后,以返回FLAC3D的控制状态
5
实例分析2:
浅基础的稳定性分析
图2:
浅基础位移矢量图
例2:
---------------------------------------------------------------------
-二维的条形基础在Tresca材料中的塑性流动
genzonebricksize20110
建立矩形的网格区域,其大小为20×
1×
10
propbul2.e8shea1.e8cohesion1.e5
体积模量2.0×
108剪切模量1.0×
108粘聚力1.0×
105
propfriction0.dilation0.tension1.e10
内摩擦角0°
剪胀角0°
抗拉强度1.0×
1010
fixxrangex-.1.1
在x方向上固定边界x=0(即只在x方向上受约束)
fixxyzrangez-.1.1
在xyz方向上固定边界z=0(即为固定约束)
fixxyzrangex19.920.1
在xyz方向上固定边界x=20
fixy
6
约束所有y方向上运动
fixxyzrangex-.13.1z9.910.1
在xyz方向上固定平面x=0,3z=10
inizvel-0.5e-5rangex-.13.1z9.910.1
在平面x=0,3z=10上初始化z方向的速度为−0.5×
10−5
defp_cons
用fish语言定义函数p_cons
pdis1=gp_near(0.,0.,10.)
靠近坐标(0,0,10)的节点的地址赋予pdis1
pdis2=gp_near(0.,1.,10.);
靠近坐标(0,0,10)的节点的地址赋予pdis2
p_sol=(2.+pi)
2+π赋予p_sol
end
用于fish语言的结尾
p_cons
运行函数p_cons
p_load:
averagefootingpressure/c
场地的平均压力
c_disp:
magnitudeofverticaldisplacementatfootingcenter/a
场地中心的垂直沉降量
defactLoad
定义函数actLoad(活荷载)(fish语言的起始句)
pnt=gp_head
把网格点指针的首个地址(gp_head)赋予变量pnt
pload=0.0
定义变量pload为0
n=0
定义变量n为0
loopwhilepnt#null
loop是循环命令,其条件是pnt≠0
ifgp_zpos(pnt)>
9.9then
当变量pnt所对应的z坐标大于9.9
ifgp_xpos(pnt)<
3.1then
且x坐标小于3.1时
pload=pload+gp_zfunbal(pnt)
变量pload为上次循环中的值与变量pnt所对应的z方向上的不平衡力的和
n=n+1
n自我加1
endif
结束里面的if
7
结束外面的if
pnt=gp_next(pnt)
把网格点指针的下一个地址(gp_next)赋予变量pnt
endloop
结束循环
actLoad=pload/(3.5*z_prop(zone_head,'
cohesion'
))
这里函数actLoad的值,为后面的式子所赋予,其中pload为循环结束后的最终
值z_prop(zone_head,'
)为首个单元的粘聚力的数值
c_disp=-(gp_zdisp(pdis1)+gp_zdisp(pdis2))/7.0
同理,这里函数c_disp的值,也为后面的式子所赋予,其中gp_zdisp(pdis1)为
变量pdis1所对应的网格点在z方向的位移,gp_zdisp(pdis2)变量pdis2所对应
的网格点在z方向的位移
fish语言的结束句
defp_err
定义函数p_err
p_err=100.*(actLoad-p_sol)/p_sol
函数p_err的值为后面式子所定义
fish语言的结束句
histn50
对n做历史记录
histactLoad
对actLoad做历史记录
histp_sol
对p_sol做历史记录
histc_disp
对c_disp做历史记录
对unbal(不平衡力)做历史记录
plotsketch
绘出轮廓线
plotaddvel
添加矢量
plotaddhis12vs3
绘出历史记录n,actLoad,p_sol
cyc15000
运行15000时步
printp_err
输出函数p_err
savepran.sav
形成sav文件,并保存为pran.sav
9
FLAC3D文件夹
FLAC3D文件夹的内容
文件夹内容
Flac3d300…*
3Dshop…
CommandReference
FISHinFLAC3D…
FluidMechnicalInteraction
OptionalFeatures
StructuralElements
TheoryBackgroud…
UserGuide
VerificationProblems…
Resource
可执行编码,DLLs,安装数据文件
六面体网格的数据文件
参考命令的数据文件
FLAC3D中的FISH数据文件
关于流体力学的相互作用的数据文件
可选择属性的数据文件
结构单元的数据文件
理论和背景的数据文件
用户指南的数据文件
有关某些确定问题的实例的数据文件
FLAC3D的资源文件
Manuals
Flac3d300…FLAC3D用户指南(PDF格式)
Shared
Drivers
Fishtank
Models…
Utility…
驱动程序安装指南
FISH函数的Itasc编码
Itasc用户定义的模型
Itasc资源文件
“更新”和“动画”功能
*这里和下面的(…)表示此文件夹下还有子文件夹。
FLAC3D网格生成
实例分析4:
网格的合并联结
图3:
建立两个处于分离状态的块体材料
图4:
连接在一起的块体材料
11
例4:
plotcreategrid4
plotaddblockgroupredyellow
把在group中的部分染成红色和黄色
plotaddaxesblack
添加坐标轴线为黑色
genzonebricksize888p0-10,-10,-20p110,-10,-20&
p2-10,10,-20p3-10,-10,0&
grouplower_block
建立块体网格,大小为8×
8,其尺寸是p0、p1、p2、p3来决定,其中p0为
起始点的坐标,p1为x方向,p2为y方向,p3位z方向的坐标,并把这些区域
建立成一个群,名为lower_block。
genzonebricksize2,2,1p00,0,1p15,0,1&
p20,5,1p30,0,3&
groupupper_block
建立另外一个块体网格,其大小为2×
2×
1,其尺寸及位置是p0、p1、p2、p3
来决定,具体如上所述,并把这个区域归为一个群,名为upper_block。
plotshow
在视图窗中显示
inizadd-1rangegroupupper_block
群upper_block的所有单元,在z方向上向下移动1m
genzonebricksize2,2,1p00,0,0p15,0,0&
p20,5,0p30,0,2&
groupupper_block
重新建立另外一个块体网格,其大小为2×
2×
1,其尺寸及位置是p0、p1、
p2、p3来决定,具体如上所述,并把这个区域归为一个群,名为upper_block。
genmerge1e-5rangez0
此命令是接触面单元合并成一个整体。
12
实例分析5:
___________界面(interface)的生成
图5:
两个物体之间界面的生成
例5:
CreateBase
genzonebricksize333&
p0(0,0,0)p1(3,0,0)p2(0,3,0)p3(0,0,1.5)&
p4(3,3,0)p5(0,3,1.5)p6(3,0,4.5)p7(3,3,4.5)
groupBase
建立另外一个块体网格,其大小为3×
3×
3,其尺寸及位置是p0、p1、p2、p3、
p4、p5、p6和p7等楔型体的8个角点坐标来决定,并把这个区域归为一个群,
名为Base(即下面的底座)。
CreateTop-1unithighforinitialspacing
p0(0,0,1.5)p1(3,0,4.5)p2(0,3,1.5)p3(0,0,6)&
p4(3,3,4.5)p5(0,3,6)p6(3,0,6)p7(3,3,6)
groupToprangegroupBasenot
名为Top(即上面的部分)。
13
genseparateTop
使两部分的接触网格分离为两部分
Createinterfaceelementsonthetopsurfaceofthebase
在两部分之间添加交界面单元
interface1wrapBaseTop
在这两部分之间添加接触单元
plotcreateview_int
显示,并创建标题view_int
plotaddsurface
显示表面
plotaddinterfacered
显示交互面为红色
打开图形
saveint.sav
形成sav文件,并保存为int.sav
14
实例分析6:
隧道的生成
图6:
隧道的图样
例6:
new
新建
defsetup
定义函数setup
numy=8
定义常量numy为8
depth=10.0
depth为10
结束对函数的定义
setup
运行函数setup
genzoneradcylsize5numy810&
p0000p11002p20depth0p30010&
p410depth2p50depth10p610010p710depth10
建立模型的单元为放射性圆柱,其内部圆柱大小尺寸为5×
unmy×
8,其总体的
具体的空间位置由p0,p1,p2,p3,p4,p5,p6,p7(它们的具体意思参看generate命令)
决定。
15
pause;
p0000p1100-10p20depth0p31002&
p410depth-10p510depth2p6100-4p710depth-4
8,其中数值
10的意义是扩展网格的个数。
其总体的具体的空间位置由
p0,p1,p2,p3,p4,p5,p6,p7(它们的具体意思参看generate命令)决定。
genzonebricksize5numy10&
p000-10p1100-10p20depth-10p300-2p410depth-10&
p50depth-2p620-2p72depth-2
建立块体单元网格,其大小为5×
10,空间位置由p0,p1,p2,p3,p4,p5,p6,p7
(它们的具体意思参看generate命令)决定。
genzonereflectorig000norm100
对单元进行镜像,镜像面为以(0,0,0)为原点,以(1,0,0)为法向向量。
plocreaqqq
创建名为qqq
ploaddsurfred
表面颜色设置为红色
plosho
显示图形
16
实例分析7:
复杂交叉隧道(NATM)的生成
图7:
圆型衬砌在破坏时位移等值线图
图8:
在部分喷射混凝土下的连续开挖
17
图9:
在交叉点建立放射性网格图10:
交叉点的完整隧道
图11:
直型隧道的扩展部分
18
图12:
在隧道平面周围增加的网格
图13:
添加上部边界网格
19
例7:
新建文本
defin_def
用fish语言定义函数in_def(此函数产生的对输入参数进行交互式控制)
xx=in(msg+'
('
+'
default:
'
+string(default)+'
):
)
对xx赋予的值为字符串、数字,它主要用于下面的一些命令中
iftype(xx)=3
in_def=default
else
in_def=xx
条件句的应用,这里的type()是用户的fish函数决定的返回值。
用于in_def函数的结尾,表结束。
deftunnel_data
fish定义函数tunnel_data
default=0.0
msg='
tunnelcenterx-coordinate(x0)'
x0=in_def
交互式输入x0(隧道中心x的坐标)的坐标(输入时,会在命令窗口中产生提
示,默认时为0)
默认值由上面的default=0.0决定,注意:
命令x0=in_def调用了in_def函数。
下面的命令和此处一样。
tunnelminimumy-coordinate(y1)'
y1=in_def
交互式输入y1(隧道y坐标最小值)的坐标(同理,默认时为0)
tunnelcenterz-coordinate(z0)'
z0=in_def
交互式输入z0(隧道中心z的坐标)的坐标(同理,默认时为0)
default=1.0
tunnelradiusabovetunnelcenter(rad)'
rad=in_def
交互式输入rad(隧道中心上部的半径)的坐标(同理,默认时为1)
default=.7
tunnelbasehalf-widthbelowtunnelcenter(base:
failsifbase>
=rad)'
base=in_def
20
交互式输入隧道中心以下的底部宽度,注意:
其值不能大于隧道半径。
default=0.5
tunnel"
height"
frombasetocenter(height)'
height=in_def
交互式输入模型底部到隧道中心的的高度,默认为0.5
default=2.0
extentofinnerprimi