关键词不能为空

当前您在: 主页 > 英语 >

FLAC3D命令流(整理版)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 07:49
tags:

-

2021年2月8日发(作者:frisian)


实用标准文档



1


、怎样查看模型?



答:


plot grid


可以查看网格,


plot grid num


可以查看节点号。




2


、请问在圆柱体四周如何施加约束条件?



答:可以用


fix ... ran cylinder end1 end2 radius r1 cylinder


end1 end2 radius r2 not


,其中


r2


,其实就是选择


range


的时


候选两个圆柱的差,即得到边界。命令流如下:



fix x range end1 1 0 0 end2 1 4 0 rad 1 end1 1 0 0 end2 1 4 0


rad 1



3


、怎么能把一个


PLOT


的图像数据导出来以 便用其他软件绘图?



答:用


set log on


命令,把数据导出来,转到


excel


里处理一下,


然后用


surfer


或者什么作图软件绘制就行了。




4


、用命令建立模型后,如何显示点的坐标?



答:使用


plo blo gro gpnum on


命令




5


、关于


gauss_dev


对性质 进行高斯正态分布的问题?



答:根据手册上的说明:下面 的命令设定一个平均摩擦角为


40


度,


标准方差是±


5


%。则命令如下:


pr op friction 40 gauss_dev 2


问题:请问


gauss_dev 2


中 的


2


是如何计算的?如果把±


5


%改为±


10


%,则命令应如何写?


40


×


5


%=


2



6



reflect


问题



问:


gen zone radbrick &p0 (0,0,0) p1 (10,0,0) p2 (0,10,0) p3


(0,0,10) &size 3,5,5,7 &ratio 1,1,1,1.5 &dim 1 4 2 fill


plot surf


gen zone reflect dip 0 dd 90


(对


xy


面做镜像)



gen zone reflect dip 90 dd 90

(对


yz


面做镜像)


< p>


1



dd


表示


y


轴正向顺时针到那条射线的夹角,

< p>
dip


表示对称参照


面与


xy


平面的夹角,对称参照面与


xy


平 面的夹角在


xy


平面的投影


是一条射线 。


首先应该按照


dd


的方向大体确定这 个面的朝向,


dd



的是从


y


轴正方向按顺时针(


clockwise


)方向转向所要确定面的法


线方向




xy


平面上的投影的夹角,然后再确定


dip



dip


指 的是从


xy


平面


转向所要确定的平面的 角.


(及


z


轴负方向转过角度)




2


)命令:


reflect normal xyz origin xyz


(根据法线和过一点


建的面)最常用,至于实际使用过程中有人问道:

< br>normal -1 0 0



文案大全



实用标准文档



normal 1 0 0


的区别,我试过两者的效果是一样的,没区别,虽然


方向不同 ,但表达的是同一个面。



reflect dd a dip b origin xyz


这个就是用里建立斜面镜像的。



有一 点注意了,


镜像的时候如果是模型镜像的话,


相当于在建立一个








reflect














gen


zone


reflect


……




7


、关于两种


fix


是否有区别?



fix z range z -0.1 0.1


fix x range x -0.1 0.1 any x 1.9 2.1 any


fix y range y -0.1 0.1 any y 1.9 2.1 any




fix z range z -0.1 0.1


fix x range x -0.1 0.1


fix x range 1.9 2.1


fix y range y -0.1 0.1


fix y range y 1.9 2.1


答:是一样的,


any


表示并列连接关系,及


and


的意思。




8



initial apply set


的区别



答:


initial


初始化命令,初 始化计算应力状态,定义材料参数、重


力等;


apply


边界条件限制命令,如施加边界的力、位移等约束等;


set


用于设置计算的模式,控制计算过程。



Ini


施加的初始力在计算过程中是会变的,


一般体力需要初始化,



apply

< br>施加的力、边界条件不会随着计算变化。


set


命令作用 于整个


网格


(


赋值全局变量

< p>
),ini


则初始化指定范围内网格点、域的偏移量。

初始应力不仅仅是重力引起的。




9



Tension-p shear-p tension-n shear-n


表示的含义



答:在 计算的循环里面


,


每个循环中


,


每个


zone


都依据


failure


criterion


处于不同的状态


,shear



tension


分别 表示因受剪和受


拉而处于塑性状态


.n


表示


now,p


表示


previou s,


即分别表示在现在


和以前的循环当中处于塑性状态。




10



history


保存数据,


print


显示



在错误的命令流中


“原点位移


.dat



文件中只有:



Step


1


Y-Displace




而没有保存下数值,怎么回事?我怎么才能获得


table


中的数据?



输入


'print tabel n'


能得到


table


中的数据



文案大全



实用标准文档



(正确)



hist gp ydisp 0,0,0


hist zone syy 0,1,0


hist zone syy 1,1,0


step 3000


hist write 1 file


原点位移


.dat


hist write 2 file


中部单元应力


.dat


hist write 3 file


边缘单元应力


.dat


hist write 1 table 1


hist write 2 table 2


hist write 3 table 3


hist write 2 3 vs 1 file


单压


.dat


(错误)



hist gp ydisp 0,0,0


hist zone syy 0,1,0


hist zone syy 1,1,0


hist write 1 file


原点位移


.dat


hist write 2 file


中部单元应力


.dat


hist write 3 file


边缘单元应力


.dat


hist write 1 table 1


hist write 2 table 2


hist write 3 table 3


hist write 2 3 vs 1 file


单压


.dat


step 3000



11



pl ot


显示


x



y


坐标图



hist n 1


hist gp ydisp 0,0,0


hist ax_str


hist gp xdisp 1,1,0


step 1500


plot hist 2 vs -1 ;axial stress vs axial disp.


plot hist 3 vs -1 circumferential disp. vs axial disp


答:



2


是不是代表< /p>


hist


gp


ydisp


0,0,0




-1


指得是


hist


gp


ydisp


0,0,0


为什么不是< /p>


1


而是负值?



1)



plot hist m vs n


的形式里


,m


代表

< p>
y



,n


代表

< p>
x



(


不管


m,n


的正负


);


2)


表示对其值作



如果大家使用

< p>
AUTOCAD


的话就明白


文案大全



实用标准文档




的含义了


,


比如上面的


hist 1 gp ydisp


的值是


0~100,




vs -1


就变成


-100~0.


以此类推


.


3)


要这么做主要是为了符合岩土工程的习惯需要

< p>
,


例如桩载荷试验


曲线


,


沉降曲线等都不是画在第一象限内。




12


、关于



的 命令注释(设置地下水位)



答:


(< /p>


1




的功能是设 置地下水位面,在二维计算中,通过


water


table< /p>


命令即可设置水位线,


在三维计算中由于地下水位是面,


因此需要作一些插值运算,以便形成水位面。这个


FISH


程序包含三


个函数


parm,aux1



aux2



parm


用来设定水位的边值,即设置水位


的区域,


aux1


插值计算等值线的点,


aux2


调用


aux1


的计算结果,使



FLAC3D


命令形成水位面。




2


)首先设置参数值,然后定义一个


table.


def parm


nptab1=7


nprof=10


end


parm



table


1


(12


0)


(18.25


12.5)


(25


17)


(35


21)


(50


24)


(75


25)


(150


25)


产生


table1


,包含


7


组数据点。



3)


在解释的两个


FISH


函数之前,



table,xtable,yt able


作一些总


的说明。


< p>
程序反复使用了这三个变量,理解了这三个变量


的含义,

< br>


这段程序就解决了大半问题了。



Itasca


的所有软件都使用了相同的数据结构储存数据, 称之为链表


结构,


类似于关系型数据库中的数据链接方法。


如果有数据结构的知


识,或掌握关系型数据库的

SQL


语言,这三个变量的含义就不难理


解了,


只不过这个操作与真正的数据库操作相比,


只有两个数据变量

< p>
x,y


。我用数据库的术语作解释:


table


就是产生一个“表”



xtable, ytable


的作用就是产生一个新表


(Create)


以及对表中的数据


进行取出


(Select)


、插入


(Insert)


、替换


(Update)


操作


.

< p>
4



FISH


函数


aux1


的作用是在


table

< p>
1


的基础上产生出另外个


table



table



ID



11



17



每个


table



10


个数据集。


alfa

< p>
的计算方


法是为适合


(fit)

< br>曲面而采用的坐标点算法。



def aux1


loop n(1,nptab1)


rr=xtable(1,n)


文案大全



实用标准文档



zz=ytable(1,n)


loop k(1,nprof)


case_of 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)


case 1


xtable(n+10,k)=rr


ytable(n+10,k)=-40.0


case 2


xtable(n+10,k)=rr


ytable(n+10,k)=0.0


end_case


end_loop


end_loop


end


aux1


当执行这个< /p>


FISH


函数后,


生成

< br>(nptab1+10,nprof)


组数据,


这些数据



Aux2


调用。注意:本段程序产生 的数据是为那个特定的曲面边坡


制作的,不是一个


genera l purpose



LIB


5< /p>



FISH


函数


aux2


的作用是使用


WATER TABLE face


命令产生水



面,



table

< br>1



ytable


值作为


z


坐标,


aux1


产 生的数据作为


x,y


坐标。



def aux2


command


set grav 0 0 -10


water dens 1000


end_command


loop n(1,nptab1-1)


loop k (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


WATER TABLE face xx1,yy1,zz1 xx2,yy2,zz2 xx3,yy3,zz3


WATER TABLE face xx1,yy1,zz1 xx3,yy3,zz3 xx4,yy4,zz4


end_command


end_loop


end_loop


end


aux2



13



FLAC


结果数据的导出



pl set back white


设置背景



set plot bitmap size (800,510) ;


设置图片大小



plot set caption size 37


设置图例数字大小


(default=35




10-50)


mainwin size 1 1 position 0 0.8 command window


plot


set


window


size


0.8


0.8


position


0.1


0.0


;


graphics


window


plot set center 100 0 40


根据情况更改




14


、一段


fish


命令的解释



def aux1


定义函数



loop n(1,nptab1)


开始一个循环,从


1


循环到变量


nptab1


rr=xtable(1,n)



table 1



x


列中读第


n


个数付给变量


rr


zz=ytable(1,n)



table 1



y


列中读第


n


个数付给变量


zz


loop k(1,nprof)


开始第二个循环,从


1


循环到变量

nprof


case_of k


下面是一个选择结构 ,利用变量


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)


case 1



k

< br>=


1


的时候执行下面语句



xtable(n+10,k)=rr table n+10



x


列第


k


个 值等于变量


rr


ytable(n+10,k)=-40.0 table n+10

< br>的


y


列第


k

个值等于变量


-40


case 2

< br>当


k



2


的时候执行下面语句



xtable(n+10,k)=rr table n+10



x


列第


k


个 值等于变量


rr


ytable(n+10,k)=0.0 table n+10



y


列第


k


个值等于变量


0


文案大全



实用标准文档



end_case


结束选择结构



end_loop


结束第二个循环



end_loop


结束第一个循环



end


函数定义结束



aux1


执行什么定义的函数




15


、有关命令的解释


< p>


1



apply nvel 0.1 plane dip 60 dd 270 range left_boun


apply


施加边界条件,


plan e


法向速度为


0.1



plane


面的位置:倾



60


(在


xoy


平面从


-Z


轴方向逆时针旋转)



d d


走向


270


度,从


+y


方向绕


z


轴顺时针旋转;




2



ini szz -5e4 grad 0 0 -1e4


ini


初始边界条件,


szz=-5e4+x*0+y*0+-z*-1e4,


注:


-5e4



r ange


范围起点坐标的


SZZ


值,< /p>


x,y,z


所施加应力网格点的坐标。





16


、渗流示例


< br>;------------------------------


参数部分< /p>



bulk modulus, K 390 MPa


体积模量(土质比较硬)



shear modulus, G 280 MPa


剪切模量



soil dry density,


ρ


d 1200 kg/m3


土的密度



water density,


ρ


w 1000 kg/m3


水的密度



wall density,


ρ


wal 1500 kg/m3


档土墙的密度



permeability, k 10


?


12 m2/Pa-s


渗透系数



porosity, n 0.3


孔隙率



fluid bulk modulus, Kf 2.0 GPa


流体的体积模量



;------- ----------------


以下是命令流



;------------------------------------------ ------------


; Excavation in a saturated soil


;---------------------- --------------------------------


config fluid ;


设置流体算法



; --- geometrical model ---


建立模型



gen zone brick p1 12 0 0 p2 0 12 0 p3 0 0 12 size 12 12 12 rat


1 1 1


group soil


设置土组



group excavate range x 0 4 y 0 4 z 0 5 ;


设置开挖范围组



group wal1 range x 4 5 y 0 5 z 0 7


设置档土墙


1




group wal2 range x 0 4 y 4 5 z 0 7 ;


设置档土墙


2




文案大全



实用标准文档



group wall range group wal1 any group wal2 any ;


档土墙


1



2


合并为一个档土墙组



; --- fluid flow model ---


流体模型



model fl_iso ;


各项同性流体



prop perm 1e-12 poro 0.3 ;


设置渗透系数和??比


or


??率



ini fdensity 1e3


初始化水密度



ini fmod 2.0e9 ftens -1e-3


初始化水的体积模量





??



model fl_null range group excavate


开挖部分没有水流



model fl_null range group wall ;


档土墙



不渗水



ini pp 0 grad 0 0 1e4


初始化孔隙水压力



fix pp range z -0.1 0.1 ;


约束



应该是整个模型的底部吧?



fix pp range x -0.1 4.1 y -0.1 4.1 z 4.9 5.1

< br>开挖部分也给约


束住了,而其他的地方不管



; --- mechanical model ---


力学模型



model elas ;


弹塑性



prop bul 3.9e6 shea 2.8e6


设置体积模量和


< /p>


剪切模量,这两个


必须,有一次我只设置了体积模量,就错的一塌 糊涂



model null range group excavate


力学模型的开挖



ini density 1.2e3 ;


初始化密度



,应该是土的密度



ini


density


1.5e3


range


group


wall


;


初始化墙(档土墙)的密度,



fix x range x -.1 .1 ;


施加约束,据说差分法约束


0


的时 候,必


须取一个


-0.1<0<0.1,


范围



fix x range x 11.9 12.1 ;


施加约束,或者叫做边界条件



fix y range y -.1 .1 ;


施加约束



fix y range y 11.9 12.1


fix z range z 11.9 12.1


; initial total stresses


出世总应力



ini szz 0 grad 0 0 -1.5e4 z


方向的应力大一些



ini sxx 0 grad 0 0 -1.2e4 ;


水平方向的,小一些



ini syy 0 grad 0 0 -1.2e4


apply


nstress 0


grad


0


0 -1.2e4


range x


0.0


4.0


y 3.9 4.1


z


0.0


5.0


apply


nstress 0


grad


0


0 -1.2e4


range x


3.9


4.1


y 0.0 4.0


z


0.0


5.0


apply nstress -7.5e4 range x 0.0 4.0 y 0.0 4.0 z 4.9 5.1


; --- setting ---


设置



set gravity 0 0 10 ;


设置重力加速度



; --- initial state ---


初始化状态



文案大全



实用标准文档



solve force 1 check initial equilibrium


求解平衡



; --- histories ---


记录



set hist_rep 40 ;


记录步为


40


hist fltime


记录时间



hist gp pp 0 0 6 ;


记录某点的孔隙水压力



hist gp xdis 4 0 0


水平位移



hist gp xdis 4 0 2 ;


记录水平位移



hist gp xdis 4 2 0


hist gp zdis 0 0 5 ;


记录竖向位移



hist gp zdis 2 0 5


hist gp zdis 4 0 5


hist gp zdis 2 2 5


hist gp zdis 4 2 5


hist gp zdis 4 4 5


hist gp zdis 10 0 1


hist gp zdis 10 0 2


;


; --- excavation ---


开挖



set fluid off ;


关闭水



; apply pore pressure at walls


在墙上施加孔隙水压力



apply nstress 0 grad 0 0 -1.e4 range x 0.0 4.0 y 3.9 4.1 z 0.0


5.0


apply nstress 0 grad 0 0 -1.e4 range x 3.9 4.1 y 0.0 4.0 z 0.0


5.0


apply nstress -5.e4 range x 0.0 4.0 y 0.0 4.0 z 4.9 5.1


solve force 1 ;


求解



save


保存



;


; --- drainage ---


排水



apply remove nstress


撤掉刚才的压力



def relaxsetup ;


定义一个释放



函数的参数



step0 = step


end


relaxsetup ;


调用



def relax ;


定义一个释放函数



rstep = step - step0


if rstep < ncyc then


relax=1.0-(float(rstep)/float(ncyc))


文案大全



实用标准文档



else


relax = 0.0


endif


end


结束



set ncyc = 1000 ;


先赋值,随后调用



apply nstress 0 grad 0 0 -1.e4 hist relax &


range x 0.0 4.0 y 3.9 4.1 z 0.0 5.0


apply nstress 0 grad 0 0 -1.e4 hist relax &


range x 3.9 4.1 y 0.0 4.0 z 0.0 5.0


apply nstress -5.e4 hist relax &


range x 0.0 4.0 y 0.0 4.0 z 4.9 5.1


cyc ncyc


solve ;


求解



save ;


保存





; --- percolation ---


渗透



set fluid on ;


设置水算法



fix pp 0 range x -0.1 4.1 y -0.1 4.1 z 4.9 5.1 ;


施加孔隙水压




cyc 9000


循环



save


保存



plot create excav ;


建立一个显示的视图



一下内容都是显示内容



plot set rot 200 0 195


plot set cent 6 6 6


plot set dist 39.18


plot set magn 0.8


plot set plane ori 0 0 0 normal 0 -1 0


plot add cont pp out on


plot add block group lgra range group wall


plot add cont pp int 10000 max 110000 range x 0 4 y 0 4 z 5 7


plot add flow plane


plot show


Ret



17


、用什么命令可以位移图中显示最大位移点的坐标?



答:用


fish


编了一个,算法好像有点烦,不过目的可以实现



你可以参考一下。



def get_gp_maxdisp


文案大全



实用标准文档



gp0_disp = gp_xdisp(gp_head)*gp_xdisp(gp_head)


gp0_disp = gp0_disp + gp_ydisp(gp_head)*gp_ydisp(gp_head)


gp0_disp = gp0_disp + gp_zdisp(gp_head)*gp_zdisp(gp_head)


gp0_disp = sqrt(gp0_disp)


p_gp=gp_head


;


找最大值



loop while p_gp # null


gp_disp = gp_xdisp(p_gp)*gp_xdisp(p_gp)


gp_disp = gp_disp + gp_ydisp(p_gp)*gp_ydisp(p_gp)


gp_disp = gp_disp + gp_zdisp(p_gp)*gp_zdisp(p_gp)


gp_disp = sqrt(gp_disp)


if gp_disp>gp0_disp


gp0_disp=gp_disp


endif


p_gp = gp_next(p_gp)


endloop


;


找最大值的坐标



p_gp=gp_head


ss=0


loop while p_gp # null


gp_disp = gp_xdisp(p_gp)*gp_xdisp(p_gp)


gp_disp = gp_disp + gp_ydisp(p_gp)*gp_ydisp(p_gp)


gp_disp = gp_disp + gp_zdisp(p_gp)*gp_zdisp(p_gp)


gp_disp = sqrt(gp_disp)


if gp_disp=gp0_disp


ss=ss+1


xtable(1,ss)=gp_xpos(p_gp)


ytable(1,ss)=gp_ypos(p_gp)


endif


p_gp = gp_next(p_gp)


endloop


end


get_gp_maxdisp



18


、如何显示计算后模型的变形状态?



答:


pl sk magfac **(


一个放大的数字


)



19


、如何查看剖面上任一点的位移值



文案大全


-


-


-


-


-


-


-


-



本文更新与2021-02-08 07:49,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/613103.html

FLAC3D命令流(整理版)的相关文章