FLAC3D命令流挺实用Word格式文档下载.docx
《FLAC3D命令流挺实用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FLAC3D命令流挺实用Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
(1)dd表示y轴正向顺时针到那条射线的夹角,dip表示对称参照面与xy平面的夹角,对称参照面与xy平面的夹角在xy平面的投影是一条射线。
首先应该按照dd的方向大体确定这个面的朝向,dd指的是从y轴正方向按顺时针(clockwise)方向转向所要确定面的法线方向
在xy平面上的投影的夹角,然后再确定dip,dip指的是从xy平面转向所要确定的平面的角.(及z轴负方向转过角度)
(2)命令:
reflectnormalxyzoriginxyz(根据法线和过一点建的面)最常用,至于实际使用过程中有人问道:
normal-100与normal100的区别,我试过两者的效果是一样的,没区别,虽然方向不同,但表达的是同一个面。
reflectddadipboriginxyz这个就是用里建立斜面镜像的。
有一点注意了,镜像的时候如果是模型镜像的话,相当于在建立一个模型,故,在reflect的前面要加建模的关键字,genzonereflect……
7、关于两种fix是否有区别?
fixzrangez-0.10.1
fixxrangex-0.10.1anyx1.92.1any
fixyrangey-0.10.1anyy1.92.1any
和
fixxrangex-0.10.1
fixxrange1.92.1
fixyrangey-0.10.1
fixyrangey1.92.1
是一样的,any表示并列连接关系,及and的意思。
8、initialapplyset的区别
initial初始化命令,初始化计算应力状态,定义材料参数、重力等;
apply边界条件限制命令,如施加边界的力、位移等约束等;
set用于设置计算的模式,控制计算过程。
Ini施加的初始力在计算过程中是会变的,一般体力需要初始化,而apply施加的力、边界条件不会随着计算变化。
set命令作用于整个网格(赋值全局变量),ini则初始化指定范围内网格点、域的偏移量。
初始应力不仅仅是重力引起的。
9、Tension-pshear-ptension-nshear-n表示的含义
在计算的循环里面,每个循环中,每个zone都依据failurecriterion处于不同的状态,shear和tension分别表示因受剪和受拉而处于塑性状态.n表示now,p表示previous,即分别表示在现在和以前的循环当中处于塑性状态。
10、history保存数据,print显示
在错误的命令流中“原点位移.dat”文件中只有:
“Step1Y-Displace”
而没有保存下数值,怎么回事?
我怎么才能获得table中的数据?
输入'
printtabeln'
能得到table中的数据
(正确)
histgpydisp0,0,0
histzonesyy0,1,0
histzonesyy1,1,0
step3000
histwrite1file原点位移.dat
histwrite2file中部单元应力.dat
histwrite3file边缘单元应力.dat
histwrite1table1
histwrite2table2
histwrite3table3
histwrite23vs1file单压.dat
(错误)
histwrite3table3
step3000
11、plot显示x、y坐标图
histn1
histax_str
histgpxdisp1,1,0
step1500
plothist2vs-1;
axialstressvsaxialdisp.
plothist3vs-1;
circumferentialdisp.vsaxialdisp
那2是不是代表histgpydisp0,0,0,而-1指得是histgpydisp0,0,0为什么不是1而是负值?
1)在plothistmvsn的形式里,m代表y轴,n代表x轴(不管m,n的正负);
2)"
-"
表示对其值作"
mirror"
如果大家使用AUTOCAD的话就明白"
的含义了,比如上面的hist1gpydisp的值是0~100,那么vs-1就变成-100~0.以此类推.
3)要这么做主要是为了符合岩土工程的习惯需要,例如桩载荷试验曲线,沉降曲线等都不是画在第一象限内。
12、关于water.fis的命令注释(设置地下水位)
(1)water.fis的功能是设置地下水位面,在二维计算中,通过watertable命令即可设置水位线,在三维计算中由于地下水位是面,因此需要作一些插值运算,以便形成水位面。
这个FISH程序包含三个函数parm,aux1和aux2。
parm用来设定水位的边值,即设置水位的区域,aux1插值计算等值线的点,aux2调用aux1的计算结果,使用FLAC3D命令形成水位面。
(2)首先设置参数值,然后定义一个table.
defparm
nptab1=7
nprof=10
end
parm
table1(120)(18.2512.5)(2517)(3521)(5024)(7525)(15025)
产生table1,包含7组数据点。
3)在解释的两个FISH函数之前,对table,xtable,ytable作一些总的说明。
water.fis程序反复使用了这三个变量,理解了这三个变量的含义,water.fis这段程序就解决了大半问题了。
Itasca的所有软件都使用了相同的数据结构储存数据,称之为链表结构,类似于关系型数据库中的数据链接方法。
如果有数据结构的知识,或掌握关系型数据库的SQL语言,这三个变量的含义就不难理解了,只不过这个操作与真正的数据库操作相比,只有两个数据变量x,y。
我用数据库的术语作解释:
table就是产生一个“表”,xtable,ytable的作用就是产生一个新表(Create)以及对表中的数据进行取出(Select)、插入(Insert)、替换(Update)操作.
4)FISH函数aux1的作用是在table1的基础上产生出另外个table,table的ID从11到17,每个table有10个数据集。
alfa的计算方法是为适合(fit)曲面而采用的坐标点算法。
defaux1
loopn(1,nptab1)
rr=xtable(1,n)
zz=ytable(1,n)
loopk(1,nprof)
case_ofk
alfa=0.5*(pi+.1)*float(k-2)/float(nprof-2)
xtable(n+10,k)=rr*cos(alfa)
ytable(n+10,k)=rr*sin(alfa)
case1
xtable(n+10,k)=rr
ytable(n+10,k)=-40.0
case2
ytable(n+10,k)=0.0
end_case
end_loop
end_loop
aux1
当执行这个FISH函数后,生成(nptab1+10,nprof)组数据,这些数据为Aux2调用。
注意:
本段程序产生的数据是为那个特定的曲面边坡制作的,不是一个generalpurpose的LIB
5)FISH函数aux2的作用是使用WATERTABLEface命令产生水面,把table1的ytable值作为z坐标,aux1产生的数据作为x,y坐标。
defaux2
command
setgrav00-10
waterdens1000
end_command
loopn(1,nptab1-1)
loopk(1,nprof-1)
xx1=xtable(n+10,k)
yy1=ytable(n+10,k)
zz1=ytable(1,n)
xx2=xtable(n+10,k+1)
yy2=ytable(n+10,k+1)
zz2=zz1
xx3=xtable(n+11,k+1)
yy3=ytable(n+11,k+1)
zz3=ytable(1,n+1)
xx4=xtable(n+11,k)
yy4=ytable(n+11,k)
zz4=zz3
command
WATERTABLEfacexx1,yy1,zz1xx2,yy2,zz2xx3,yy3,zz3
WATERTABLEfacexx1,yy1,zz1xx3,yy3,zz3xx4,yy4,zz4
end_command
aux2
13、FLAC结果数据的导出
plsetbackwhite;
设置背景
setplotbitmapsize(800,510);
设置图片大小
plotsetcaptionsize37;
设置图例数字大小(default=35范围10-50)
mainwinsize11position00.8;
commandwindow
plotsetwindowsize0.80.8position0.10.0;
graphicswindow
plotsetcenter100040
根据情况更改
14、一段fish命令的解释
defaux1定义函数
loopn(1,nptab1)开始一个循环,从1循环到变量nptab1
rr=xtable(1,n)从table1的x列中读第n个数付给变量rr
zz=ytable(1,n)从table1的y列中读第n个数付给变量zz
loopk(1,nprof)开始第二个循环,从1循环到变量nprof
case_ofk下面是一个选择结构,利用变量k判断
alfa=0.5*(pi+.1)*float(k-2)/float(nprof-2)
xtable(n+10,k)=rr*cos(alfa)
ytable(n+10,k)=rr*sin(alfa)
case1当k=1的时候执行下面语句
xtable(n+10,k)=rrtablen+10的x列第k个值等于变量rr
ytable(n+10,k)=-40.0tablen+10的y列第k个值等于变量-40
case2当k=2的时候执行下面语句
ytable(n+10,k)=0.0tablen+10的y列第k个值等于变量0
end_case结束选择结构
end_loop结束第二个循环
end_loop结束第一个循环
end函数定义结束
aux1执行什么定义的函数
15、有关命令的解释
(1)applynvel0.1planedip60dd270rangeleft_boun
apply施加边界条件,plane法向速度为0.1,plane面的位置:
倾角60(在xoy平面从-Z轴方向逆时针旋转),dd走向270度,从+y方向绕z轴顺时针旋转;
(2)iniszz-5e4grad00-1e4
ini初始边界条件,szz=-5e4+x*0+y*0+-z*-1e4,注:
-5e4是range范围起点坐标的SZZ值,x,y,z所施加应力网格点的坐标。
16、渗流示例
;
------------------------------参数部分
bulkmodulus,K390MPa体积模量(土质比较硬)
shearmodulus,G280MPa剪切模量
soildrydensity,ρd1200kg/m3土的密度
waterdensity,ρw1000kg/m3水的密度
walldensity,ρwal1500kg/m3档土墙的密度
permeability,k10−12m2/Pa-s渗透系数
porosity,n0.3孔隙率
fluidbulkmodulus,Kf2.0GPa流体的体积模量
-----------------------以下是命令流
------------------------------------------------------
Excavationinasaturatedsoil
configfluid;
设置流体算法
---geometricalmodel---建立模型
genzonebrickp11200p20120p30012size121212rat111
groupsoil;
设置土组
groupexcavaterangex04y04z05;
设置开挖范围组
groupwal1rangex45y05z07;
设置档土墙1组
groupwal2rangex04y45z07;
设置档土墙2组
groupwallrangegroupwal1anygroupwal2any;
档土墙1和2合并为一个档土墙组
---fluidflowmodel---流体模型
modelfl_iso;
各项同性流体
propperm1e-12poro0.3;
设置渗透系数和?
?
比or?
率
inifdensity1e3;
初始化水密度
inifmod2.0e9ftens-1e-3;
初始化水的体积模量及?
modelfl_nullrangegroupexcavate;
开挖部分没有水流
modelfl_nullrangegroupwall;
档土墙不渗水
inipp0grad001e4;
初始化孔隙水压力
fixpprangez-0.10.1;
约束应该是整个模型的底部吧?
fixpprangex-0.14.1y-0.14.1z4.95.1;
开挖部分也给约束住了,而其他的地方不管
---mechanicalmodel---力学模型
modelelas;
弹塑性
propbul3.9e6shea2.8e6;
设置体积模量和剪切模量,这两个必须,有一次我只设置了体积模量,就错的一塌糊涂
modelnullrangegroupexcavate;
力学模型的开挖
inidensity1.2e3;
初始化密度,应该是土的密度
inidensity1.5e3rangegroupwall;
初始化墙(档土墙)的密度,
fixxrangex-.1.1;
施加约束,据说差分法约束0的时候,必须取一个-0.1<
0<
0.1,范围
fixxrangex11.912.1;
施加约束,或者叫做边界条件
fixyrangey-.1.1;
施加约束
fixyrangey11.912.1
fixzrangez11.912.1
initialtotalstresses出世总应力
iniszz0grad00-1.5e4;
z方向的应力大一些
inisxx0grad00-1.2e4;
水平方向的,小一些
inisyy0grad00-1.2e4;
applynstress0grad00-1.2e4rangex0.04.0y3.94.1z0.05.0
applynstress0grad00-1.2e4rangex3.94.1y0.04.0z0.05.0
applynstress-7.5e4rangex0.04.0y0.04.0z4.95.1
---setting---设置
setgravity0010;
设置重力加速度
---initialstate---;
初始化状态
solveforce1;
checkinitialequilibrium求解平衡
---histories---记录
sethist_rep40;
记录步为40
histfltime;
记录时间
histgppp006;
记录某点的孔隙水压力
histgpxdis400;
水平位移
histgpxdis402;
记录水平位移
histgpxdis420
histgpzdis005;
记录竖向位移
histgpzdis205
histgpzdis405
histgpzdis225
histgpzdis425
histgpzdis445
histgpzdis1001
histgpzdis1002
---excavation---开挖
setfluidoff;
关闭水
applyporepressureatwalls在墙上施加孔隙水压力
applynstress0grad00-1.e4rangex0.04.0y3.94.1z0.05.0
applynstress0grad00-1.e4rangex3.94.1y0.04.0z0.05.0
applynstress-5.e4rangex0.04.0y0.04.0z4.95.1
solve;
force1;
求解
saveexc1.sav;
保存
---drainage---排水
applyremovenstress;
撤掉刚才的压力
defrelaxsetup;
定义一个释放函数的参数
step0=step
relaxsetup;
调用
defrelax;
定义一个释放函数
rstep=step-step0
ifrstep<
ncycthen
relax=1.0-(float(rstep)/float(ncyc))
else
relax=0.0
endif
end;
结束
setncyc=1000;
先赋值,随后调用
applynstress0grad00-1.e4histrelax&
rangex0.04.0y3.94.1z0.05.0
rangex3.94.1y0.04.0z0.05.0
applynstress-5.e4histrelax&
rangex0.04.0y0.04.0z4.95.1
cycncyc
saveexc2.sav;
保存
;
---percolation---渗透
setfluidon;
设置水算法
fixpp0rangex-0.14.1y-0.14.1z4.95.1;
施加孔隙水压力
cyc9000;
循环
saveexc3.sav;
plotcreateexcav;
建立一个显示的视图一下内容都是显示内容
plotsetrot2000195
plotsetcent666
plotsetdist39.18
plotsetmagn