FLAC3D常用命令.docx
《FLAC3D常用命令.docx》由会员分享,可在线阅读,更多相关《FLAC3D常用命令.docx(23页珍藏版)》请在冰豆网上搜索。
![FLAC3D常用命令.docx](https://file1.bdocx.com/fileroot1/2023-6/16/f811339a-83dc-4737-bf60-8406f366f64b/f811339a-83dc-4737-bf60-8406f366f64b1.gif)
FLAC3D常用命令
1.apply(缩写:
app)
可用来定义边界条件及初始条件:
1)添加应力
格式1:
applyszz-0.3395e6rangez-0.10.1
格式1:
applyszz-0.3395e6rangegrouppile
格式3:
applyszz-0.3395e6rangez-0.10.1grouppile
格式4:
applynstress数值rangez2.93.1(或3)x12y12
2)以一定速度施加位移边界
格式1:
applyyvel-1e5rangey-1.92.1;施加y方向速度-1e5/step
3)添加边界条件
格式:
applyszz<数值>grad<梯度>range<范围>
示例1:
applyszz-1e9grad008.3e5rangez0120
示例2:
applyszz-0.6e6rangez0.050.15grouppile
注:
<数值>是梯度方向坐标0点的数值,可通过定义坐标范围的上下值与梯度计算得到。
2.range(缩写:
ran)
通过range功能,可以使命令作用在一定指定范围的目标上;如果一个命令没有使用range来确定范围,则命令对整个模型有效。
1)利用坐标指定一定的范围
格式1:
rangez01
格式2:
rangez2.93.1x12y12
2)利用分组来指定范围
格式:
rangegroup1
3)以上两种的复合
格式:
rangez-0.10.1grouppile
4)利用id号来指定一定的范围
格式:
rangeid010
该命令后跟起始id和结束id,这里的id可以是实体单元、网格、结构单元、接触面和节点的编号。
例:
modelelasticrangeid110;指定id为1到10的单元为各向同性弹性本构。
5)命名一个范围(需要先命名这个范围)
格式:
rangename<自己起一个名字><范围>
示例:
rangenameintersected_zonesx58y37
引用这个范围的格式:
内容+rangenrange<自己起的那个名字>
示例:
rangenrangeintersected_zone
6)命名一个柱形范围
格式:
同4)
示例1:
rangenamebholecylinderend1000end2-9.1400rad0.46
示例2:
rangenameinterface1cylinderend1000end200-0.9radius0.36&
cylinderend1000end200-0.9radius0.34not
7)any和not
Any跟在range命令后表示“和”的意思,即使若干个定义的范围同时起效;not跟在range后表示“除了”的意思,即除此之外的范围
示例1:
groupwallrangegroup1anygroup2any;把组1和组2定义为新组,组名为wall
示例2:
groupwallrangegroup1not;把除了组1之外的所有部分定义为新组,组名为wall.
示例3:
rangenameinterface1cylinderend1000end200-0.9radius0.36&
cylinderend1000end200-0.9radius0.34not
3.set
用来设置重力、收敛标准、给某些变量赋值
1)设置重力
格式:
setgravity00-10
2)设置收敛标准
格式1:
setmechratio:
用R无量纲值确定收敛标准(默认10e-5)
格式2:
setmechforce;绝对收敛标准,体系最大不平衡力小于某一临界值,此局限性较大。
以上两种格式也可以进行耦合:
示例:
setmechforce0ratio1e-4
格式3:
自定义收敛标准,比如某一关键点的位移或速度达到某一临界值(遇到这种情况进行补充)
3)在FLAC3D中给FISH语言中的变量赋值
格式:
set@变量=value如:
set@hh=-22
4)设置大变形
格式:
setlarge
4)设置监测历史变量时的监测间隔
格式1:
sethist_rep<数目>;默认的应该是10步一个间隔。
示例:
sethist_rep1
格式2histnstep<数目>
示例:
histnstep5
4.history(缩写:
hist)
设置监测点要进行监测的项目,不设置编号的话会从1自动进行编号。
监测点必须用id或坐标这两种方法之一指定,新版本后需加add,不加add其实也可以。
1)监测整个模型的不平衡力
格式:
histaddid<编号>unbal
2)设置节点监测项目
格式1:
histaddgpzdis006(监测节点z方向位移)
histaddgpzvel006(监测节点z方向速度)
格式2:
histaddid<给定该监测变量的编号>gpzdis<坐标>或者监测点id
示例1:
histaddid2gpzdis113
示例2:
histaddid1gpzdisid1;监测1号节点z方向的位移,这个监测点编号是1
3)设置单元监测项目
格式1:
histaddzoneszz00-1(监测节点zz方向应力)
格式2:
histaddid<给定该监测变量的编号>zoneszz<坐标><坐标>或者监测单元id
示例1:
histaddid7zoneszz1.51.52.5
4)设置监测历史变量时的监测间隔
格式1:
sethist_rep<数目>;默认的应该是10步一个间隔
示例:
sethist_rep1
格式2histnstep<数目>
示例:
histnstep5
5)将计算结果写入到txt文件夹中
格式:
histwrite<监测变量的编号>skip<记录间隔>begin<监测开始的步数>end<监测结束步数>file路径/文件名.txt
示例1:
histwrite7vs8fileC:
\Users\zhangzhao\Desktop\7-8.txt
示例2:
histwrite7fileC:
\Users\zhangzhao\Desktop\7.txt
示例3:
histwrite12345skip20begin8300end8400fileC:
\Users\zhangzhao\Desktop\7.txt;把1-5号监测点在8300到8400步之间的数据,按照每20步一个的记录间隔输出到7.txt文件中
5.model
用来指定模型的本构模型,以下格式中mech可以省略
格式1:
modelmechmohr;定义全模型的本构模型
格式2:
modelmechmohrrangegroup<组名>;
格式3:
modelmechnullrangegroup<组名>;
格式4:
modelmechnullrangez01
6.property(缩写:
pro)
给模型材料赋予参数
格式:
probulk<值>shear<值>coh<值>fric<值>ten<值>range<范围>
示例1:
propbulk5.6420e6shear1.3789e6coh9.77e3fric15.36rangegroup1
示例2:
propbulk6e6she2.2e6fric10coh5000rangez17.320.1
7.group
用来进行模型的分组
1)建模时直接将这部分命名为一个分组
格式1:
genzoneradcylinderp000-18p180-18p200-19.1p308-18size84815ratio1111.15group1
格式2:
genzoneradcylinderp000-18p180-18p200-19.1p308-18size84815ratio1111.15fillgroup1;(对填充区域进行有别于外围材料的分组命名)
格式3:
genzoneradcylinderp000-18p180-18p200-19.1p308-18size84815ratio1111.15group1fillgroup2;(外围区域命名为1,填充区域进行有别于外围材料的分组命名2)
2)对一定范围内的数据命名分组
格式:
group1range<>;用range定义范围
3)分开命令为一个组
示例:
groupdamrangex57z-50
groupdamrangeid201anyid211anyid231anyid241any
groupdamrangeid202anyid212anyid222anyid232any
以上区域命名了一个分组dam。
可以不同的区域命名为同一个组名,最后就会是一个组了。
8.attach
进行网格的连接,使用该命令时对各网格连接面上的单元尺寸有限制,要求它们之间的比率成整数倍
格式:
attachfacerange<>;range后跟定义范围的关键词
9.reflcet(缩写:
ref)
以某对称轴生成镜像网格
格式1:
genzoneref;以z=0平面为对称轴镜像生成网格
格式2:
genzonerefdip90;以y=0平面为对称轴镜像生成网格
格式3:
genzonerefdip90dd90;以x=0平面为对称轴镜像生成网格
格式4:
genzonerefdip90dd90rangez2035;可以加上范围,在z为20~35范围内以x=0平面为对称轴镜像生成网格。
其中:
dip为平面在空间坐标系下沿着z轴负向与xy平面所成的夹角;dd为平面的dip方向角,即坐标系的xy平面从y轴正向顺时针旋转到指定方向的夹角。
如果不注明代表值为0。
格式5:
genzonereflectnormal100ori000
格式:
normalxyzoriginxyz:
其中normal为指定平面的法向方向,origin为法线起点位置。
这种方法比较直观,相比于用dd和dip定义平面,更容易记住,也不易出错。
10.fix固定/free放松
进行模型边界条件的设置
1)约束x/y/z方向的位移,其实约束的是速度
格式;fix<限制变形的方向>range<范围>
示例1:
fixzrangez-0.10.1
示例2:
fixyrangez-0.10.1
示例3:
fixxzrangez-0.10.1group1
示例4:
fixx;也可以不加范围,把所有的地方都固定
2)fixpp
格式:
fixpp
给定孔隙水压力边界条件
3)给定温度边界条件
格式:
fixtemperature
11.initial(简写ini)
用来设置初始值
1)用来设置密度
格式:
inidens<值>range<范围>
示例1:
inidens1830rangegroup1ceng
示例2:
inidens2000rangez01
2)初始量归零
格式:
ini<量><值>range<范围>
示例1:
inixdis0ydis0zdis0xvel0yvel0zvel0
示例2:
iniszz0sxx0syy0
3)初始状态为0
格式:
inistate<状态>
示例:
inistate0
一般的程序地应力平衡后,初始化一般要进行塑性区、位移、速度清零
inistate0
inixdis0ydis0zdis0
inixvel0yvel0zvel0
4)设置初始孔隙水压力
格式:
inipp<初始值>grad<梯度>range<范围>
示例:
inipp30e3grad00-10e3rangez01
注:
<初始值>是梯度方向坐标0点的数值,可通过定义坐标范围的上下值与梯度计算得到。
5)设置初始应力
格式:
iniszz<初始值>grad<梯度>range<范围>
示例:
iniszz-35e3grad0020e3rangez01
注:
<初始值>是梯度方向坐标0点的数值,可通过定义坐标范围的上下值与梯度计算得到。
6)将单元体移动
格式:
ini<方向>add<距离>range<范围>
示例:
inizpositionadd-6.0rangegrouppile
12.save
将计算状态进行保存,会保存在当前文件下
1.常规
格式:
save文件名.sav
示例1:
save6-1.sav
2.自动循环
rest8-4.sav
table1nameload_settlement;可要可不要,不要会自动从1编号
defadd_load
p_gp=gp_near(2,1,3)
loopn(1,5)
app_load=n*(-1000e3)
filename='7-6_add_step'+string(n)+'.sav'
command
appnstress@app_loadrangez2.93.1x12y12
solve
save@filename
endcommand
xtable(1,n)=app_load
ytable(1,n)=gp_zdisp(p_gp)
endloop
end
@add_load
save8-6.sav
13.solve
对模型进行计算
1、格式1:
solve;直接计算,默认最大平衡应力比小于或等于1e-5时,计算结果获得稳定值
2、格式2:
solveratio<计算精度值>;设置最大不平衡应力比,计算达到这个条件即终止
示例:
solveratio1e-5
3、格式3:
step<步数>;设置计算终止步数
4、渗流求解
格式1:
solve;得到渗流平衡状态下的孔压场,渗流平衡的概念类似于力学平衡,表示节点上的不平衡流量比达到了程序设置的最小值。
格式2:
step<步数>;在计算中完成相应的步数以后程序自动结束。
格式3:
solveage<时间>;时间是流动时间,这个时间并不一定是真实的时间,只有当所有的流体参数都为真实时才是真实的时间。
14.plot
详见《FLAC3D快速入门及简单实例》第四章FLAC3D图形显示
进行绘图,进行绘图前最好指定一个绘图文件
格式:
plotcreateview(或者plot)<名字>
1)绘制模型单元、建立的界面等
格式1:
plotzone
示例1:
plotzonetrans75;绘制透明度为75的单元体
示例2:
plotzonefilloff;单元体不进行填充
示例3:
plotzonetrans75filloff;以上两种的组合
示例4:
plotzonecolorlistred
示例5:
plotzonecolorlistredrangenrange<范围名称>
示例6:
plotinterfacecolorlistred
示例程序:
new
genzonebricksize101010
rangenameintersected_zonesx58y37
rangenameunion_zonesx58y37
plotcreateviewintersected_zones;(创建一个intersected_zones的绘图纸)
plotaddzonecolorlistyellowtrans80
plotaddzonecolorlistredrangenrangeintersected_zone
plotaddaxes
plotcreateviewunion_zones;(也可通过plotcreateplotunion_zones)
plotaddzonecolorlistyellowtrans80
plotaddzonecolorlistredrangenrangeunion_zones
plotaddaxes
格式2:
plotinterface
2)绘制云图(应力、变形,节点与单元的量都可绘制)
格式1:
plotzcon<表示应力的量>
示例1:
plotzconszz
Plotzconsxy
格式2:
plotcon<表示变形的量>
格式3:
plotzcon<表示的量>rampgrey;灰度显示
示例1:
plotconzdis
3)绘制块云图(一般只表示应力的量)
格式:
plotbcon<量>
示例1:
plotbconszz
示例2:
plotbconprobulk
4)绘制矢量图(最好结合1)内容带上网格)
格式:
plotdis;绘制变形矢量图()
示例:
plotdisscale0.1;scale后跟的数值越大,矢量图的箭头越大。
5)绘制监测变量曲线图
格式1:
plothist<给监测变量设置的id编号>
示例:
plothist2
格式2:
plothist<编号1>vs<编号2>;两个监测变量之间的关系
示例:
plothist7vs8(历史变量7位横坐标、8位纵坐标)
6)plotadd的应用
格式:
plotadd+内容;把要绘制的图形绘制在前面的图形上
示例:
plotzonetrans75filloff
Plotadddis
相当于在单元图形上绘制了变形矢量图
7)按组显示
格:
1:
plotzgrouprange<范围>
示例:
plotzgrouprangez05
格式2:
plotzonerangegroup1
其他常见的plot命令
Plotgpfix
Plotgp
Plotboundary
Plotzonetrans75
Plotclear
Plotinterfacecolorlistred
8)绘制表格数据
格式1:
plottableidstyleboth
格式2:
plottableidstyleline
格式3:
plottableidstylemark
示例1:
plottable1styleboth
9)绘制孔压云图
节点:
plotcongpp
单元:
plotzconzpp
15.restore(简写为rest)
调用保存好的sav文件,并在此状态的基础上进行下面的操作
格式:
rest文件名.sav
示例:
rest6-1.sav
16.state
单元状态
1)显示单元状态
格式:
plotzonecolorbystate
2)输出单元状态
格式:
printzonestate
17.print
输出计算结果
1)输出节点、单元数据
格式1:
printzone/gp;输出单元数据
格式2:
printgpposition
格式3:
printzonestress
格式4:
printgpdis
格式5:
printgpdisrangeid517any533any
格式6:
printgpposrangeid59;id号为59的节点坐标信息
2)输出接触面的数据
格式1:
printinterface;接触面数据输出
格式2:
printinterface<编号>stress;输出接触面上的nstress/stress等
格式3:
printinterface<编号>dis
格式4:
printinterface<编号>position
格式5:
printinterface<编号>prop
3)输出监测变量
格式1:
printhist;输出监测点信息
格式2:
2)将计算结果输入到指定的文件(也可参考4hist)
格式:
(setlogon
SetlogfileC:
\Users\zhangzhao\Desktop\6-3.log
Printzonestress
Setlogoff)
以上的程序将单元应力数据输出到6-3文件中
3)输出表格数据
格式:
printtableid
示例:
printtable1
18.plane
创建切片,显示剖面图
Oringin/normal和dip/dd在定义平面上的作用是等效的
1)建立剖面
最后先建立一个绘图纸
格式:
plotcreateview<绘图纸名字>
2)创建剖面
格式:
plotcutaddplaneori<坐标>norm<方向矢量>
示例:
plotcutaddplaneori1.51.51.5norm010
3)绘制剖面上的内容
格式:
plotadd<内容>(planeon);括号内可省略
示例1:
plotaddzonefilloff;绘制剖面上的网格,建议先绘制这个。
示例2:
plotaddzconszz
示例3:
plotadddis
3)绘制剖面外的内容
格式:
plotadd<内容>planeb(f)b代表与norm反向一侧,f代表正向侧。
示例1:
plotaddzoneplaneb
示例2:
plotaddzonefilloffplanef
示例程序:
plotcreateviewplane4
plotcutaddplaneori1.51.51.5norm010
plotaddzonefilloffplaneo
plotaddzconszzplaneon
plotaddzoneplaneb
plotaddzonefilloffplanef
19.输出图片
将界面上显示的内容以图片形式显示出来
1)输出ps照片
格式:
plotpostview<要输出的绘图纸名称>file文件路径/名称.格式
示例:
plotpostviewplot04f