资源描述
建 模
1、调用文件:
①文件与工程在同一个文件夹,只写文件名即可:If the called file is located in the same folder as the FLAC3D project file, then only the file name need
be entered with the CALL command.
②不在同一个文件夹,全路径:Otherwise, the file may be called by specifying its complete path (e.g., c:\myfolder\file.dat).
Undo ;撤销上一条命令
2、创建 旋转 缩放视图
3、建模命令
model mech mohr ;莫尔库伦模型
model mech elastic ;弹性模型
set grav 0, 0, -9.81 ; 重力加速度 negative z-direction. (垂直向下!常用的)
下面这代码,是沿着-y方向的重力加速度,注意区别!!!!
gen zone brick size 6,8,8 p0 -10, -10, -20 ... ;省略号表示写不下后面继续
p1 10, -10, -20 ...
p2 -10, 10, -20 ...
p3 -10, -10, 0
plot zone
gen zone brick size 6,8,8 p0 -10, -10, -20 ... ;不规则六面体
p1 10, -10, -20 p2 -10, 10, -20 ...
p3 -10, -10, 0 p4 10, 10, -20 ...
p5 -10, 10, 10 p6 10, -10, 0 ...
p7 10, 10, 10
plot current plot Plot01
plot clear
plot zone
Undo ;撤销命令
set logfile 127X1001.txt
set log on truncate
set log off
list zone prin range x 0 1 y 0 1 z 0 1 ;显示指定范围内各单元的主应力,结果如下
Hist命令:
① 命令编号按顺序从1开始:each history is numbered sequentially from 1 as it is entered via the HISTORY command.
②查找显示所有的his命令:Return to the Flac3D> prompt and type
list hist
for a listing of the histories and their corresponding numbers.
hist nstep 5 ;每5步记录1次。默认是10步记录1次
hist add ratio ; 记录maximum unbalanced force ratio
hist add gp zdisp 4 4 8 ;记录节点的位移
model null range x=2,4 y=2,6 z=5,10 ;To excavate the trench,enter
The dimensions of the excavation region (i.e., the null material) are defined by the x-, y- and z-coordinate range.
set large ; 设置大变形large-strain logic is specified
ini xdis 0 ydis 0 zdis 0 ;位移归零
solve
save trench ; 保持计算结果的文件 “TRENCH.F3SAV” 不需要后缀
4、group命令(注意新版本的区别 ,group zone)
gen zone brick size 6 6 6
group zone Tunnel range x 1 6 y 0 6 z 1 5 ;设置group
model mech mohr ; 莫尔库伦模型
model mech null range group Tunnel ;
group zone Tunnel range cylinder end1 100 105 100 end2 100 95 100 radius 3
group zone Matrix range group Tunnel not
; naming RANGES that are fixed in space and unrelated
; to the model geometry - represents stratigraphy...
range name Layer1 plane dip 0 dd 0 ori 0 0 0 above
range name Layer2 plane dip 0 dd 0 ori 0 0 0 below
prop bulk 1e8 shear 0.5e8 coh 0 tens 0 fric 35 range nrange Layer1
prop bulk 1e7 shear 0.3e7 coh 1e7 tens 0 fric 0 range nrange Layer2
pl zone colorby group
4、Interface命令
以下是切割模型法生成interface:寺河模拟用的
pl zone
gen zone brick p0 0 0 0 p1 200 0 0 p2 0 40 0 p3 0 0 4 size 100 20 2 group 1 ;
gen zone brick p0 0 0 4 p1 200 0 4 p2 0 40 4 p3 0 0 8 size 100 20 2 group 2 ;
gen separate group 1
interface 1 wrap first group 1 second group 2
interface 1 maxedge 0.5
显示interface:
plot create plot Plot01
plot add surface
;显示表面
plot add interface red
;显示交互面为红色
plot show
用导来导去法,已经在5.0上运行过,很好,值得借鉴
pl zone colorby group
gen zone brick size 3 3 3 &
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)
group zone Base
gen zone brick size 3 3 3 &
p0 (0,0,2.5) p1 (3,0,5.5) p2 (0,3,2.5) p3 (0,0,7) &
p4 (3,3,5.5) p5 (0,3,7) p6 (3,0,7) p7 (3,3,7)
group zone Top range group Base not
interface 1 face range plane norm (-1,0,1) origin (1.5,1.5,3) dist 0.1
pl add interface
pause
ini zpos add -1.0 range group Top
4、hist命令(5.0版本需要加add!!!)
hist nstep=5 //设置采用间隔为5 等效于set hist_rep=5
hist add id =2 zone szz 0,0,-1
hist unbal //最大非平衡力
hist add gp zdisp 4 4 8
print hist
hist add gp zdis 0,0,0
hist add gp zvel 0,0,0
hist add gp ydisp 0,0,0
;监测网格点(0,0,0)点的y 方向上的位移
hist add zone syy 0,1,0
;监测单元(0,1,0)点的y 方向上的应力
hist add zone syy 1,1,0
;监测单元(1,1,0)点的y 方向上的应力
hist add zone szz 0,0,-1
List history
set large
history nstep 2
history add fish tt
history add fish theta
history add zone sxx (1,1,1)
history add zone syy (1,1,1)
history add zone szz (1,1,1)
plot add his 3 4 5 vs 1
HISTORY add fish var ; fish var变量的监测
5、solve命令 ?????什么意思
5、plot命令
通过图形操作界面的方式:
pl zone colorby gr ;查看各个分组
通过命令流的方式:
plot create plot Plot01
plot clear
plot add history 1 linestyle color black
plot post plot Plot01 file 127F1002.ps manual
plot create plot Plot02
plot clear
plot add history 2 linestyle color black
plot post plot Plot02 file 127F1003.ps manual
plot create plot GravV
plot cut add plane dip 90 dd 0 origin 3,4.1,0 ;截面
plot set center 3 3 3
plot set eye 12 18 12
plot add zone plane behindplane on onplane off ;addlabel "Zone" white
plot add bcont szz ramp grey
plot add axes
plot post plot GravV file 127F1004.ps manual
res kw50
plot create plot szz_contour
plot cut add plane dip 90 dd 180 origin 0,18.9,0
plot set orient 120 220 0
plot set center 45 45 0
plot add zone plane behindplane on onplane off ;
plot add bcont szz ramp rainbow
pl set mag 1.0
plot add axes
plot show
plot create GravV
plot set plane dip=90 dd=0 origin=3,4,0
plot set rot 15 0 20 ;this would be achieved interactively
plot set center 2.5 4.2 4.0 ;and is show here simply to illustrate
plot add bound behind
plot add bcont szz plane
plot add axes
plot show
这样我们就建立了一个叫“Grav V”的图形,将它设为当前图层,对此图形设置一个倾角为90°的面,(在x-y面上,约定z的负方向为下),倾向为0°。(在x-y面上,从y的正方向开始沿顺时针方向计量),过x-y面上一点(x=3,y=4,z=0),在平面后加一个网格,垂直方向的应力Qzz,最后给模型加轴线,整体图形轮廓与添加图形相反,显示每个区域中心的应力计算值,每个区域的颜色直接对应基本区域的应力,当键入show,我们建立的图形被显示
Plot create Dispcont
Pl add cont disp plane behind
Pl add axes
Pl show
plot sketch
;绘出轮廓线
plot add vel
;添加矢量
plot add his 1 2 vs 3
;绘出历史记录n,actLoad , p_sol
cyc 15000
plot
Create Trench
Add surface yellow
Add axes black
Show
plot create szz_contour
;创建文件名为szz_contour(z 方向的应力云图)
plot set cent 4 4 5
;视图的中心坐标为(4,4,5)
plot set rot 20 0 30
;视图的旋转角度为(20,0,30)
plot set mag 1.0
;视图的放大倍数为1.0
plot add cont szz out on shade on
;打开szz 的等值线图
plot add axes
;打开坐标轴线
plot show
;显示窗口
;不同的区域,材料赋值不同
pl zone colorby model
pl zone colorby group
求解前对模型进行检查
网格检查(如前所述)
边界条件检查
速度约束条件 plot gpfix
荷载条件 plot fap
模型检查
模型赋值 plo block model
参数赋值 plo block prop ***
初始应力检查(如后所述)
经常检查模型的响应
plo zcon szz (syy, sxx) 应力场
plo con zdis (ydis, xdis) 位移场
plo (add) zone colorby state 屈服状态
plo gpfix 速度约束条件
plo fap 体力
plo hist (unbal) 1 不平衡力 (必需的)
pl set movieactive on
pl set movieextension jpg
pl set movieinterval 20
pl set movieprefix sihekuangkaiwa
pl set moviesize ix iy
pl set name sihedacaigao
pl bitmap view 1 file myplot.png
pl bitmap view 1 size 1024 768
pl create <viewid>
pl current <viewid>
pl cut add plane dd xxx dip xxx
pl cut add plane name xxx normal xxx origin xxx
pl dxf <viewid> <file filename.dxf>
pl excel <file filename.xlsx>
pl svg <viewid> <file filename.svg>
pl set background white ;设置背景色
plot add his 3 4 5 vs 1
5、网格的连接、对称……
不同尺寸的zone,网格用attach连接,粘起来!!!!!!
6、plane命令
6、range命令
list range
range name trench x=-1,1 y=0,4 z=-2,2 ;定义range
model mech null range nrange trench ; ; 开挖excavate the trench
7、gp命令
list gp position ; 查看节点编号、位置坐标
print gp disp range id 105
hist add gp zdis 0,0,0
hist add gp zvel 0,0,0
message(1)=string(gp_xpos(pnt))
message(1)=message(1)+','+string(gp_zpos(pnt))
message(1)=message(1)+','+string(abs(gp_zdisp(pnt)))
GP PNT find gp(INT)
GP PNT gp find(INT)
GP PNT gp head
ii = ngp total number of gridpoints
更多节点变量函数,详见fish reference
8、zone命令
list zone
print zone stress range id 2381 any id 2361 any 2341 any ;输出网格单元的应力
hist zone szz 0,0,-1
Z PNT find zone(INT)
INT z find(INT)
Z PNT zone head
ii = nzone total number of zones
更多zone变量函数,详见fish reference
9、config
9、边界条件 Boundary and Initial Conditions
Boundary conditions are normally specified with the APPLY and FIX/FREE commands, and initial conditions are assigned with the INITIAL command
Example: a constant, compressive xx-stress component of 10 MPa can be applied to a boundary located at x = 10 with the command
apply sxx -10e6 range x 10 ; x=10的面上 10MPa
apply syy = -20e6 grad 0,0,20e5 range y -20 z 0,10
在斜面上施加法向力
10 杂项(材料力学性质)
11.M-C本构模型的选取
在进行模拟时,采用摩尔-库仑(Mohr-Coulomb)强度准则来判断矿体与顶底板的破坏机理。该准则基本的内涵为:岩石的剪切破坏是由岩石破裂面产生的破坏剪应力受到岩石材料的内聚力和内摩擦力的抵抗,当破裂面上的破坏剪应力大于岩石的内聚力和内摩擦力时,即 Fs>0 时,材料发生剪切破坏[4]:
有限差分法(FDM)
Fish函数
1、 if条件从句
2、 loop条件从句
new
def derive
s_mod = y_mod / (2.0 * (1.0 + p_ratio))
b_mod = y_mod / (3.0 * (1.0 - 2.0 * p_ratio))
end
set @y_mod=5e8 @p_ratio=0.25
@derive
list @b_mod @s_mod
gen zone brick size (2,2,2)
model mech elastic
prop bulk=@b_mod shear=@s_mod
list zone prop bulk
list zone prop shear
new
def xxx
sum = 0
prod = 1
loop n (1,10)
sum = sum + n
prod = prod * n
end_loop
end
@xxx
list @sum @prod
new
def abc
if xx > 0 then
abc = 33
else
abc = 11
end_if
end
set @xx=1
list @abc
set @xx=-1
list @abc
new
gen zone brick size 10 3 5
def place_cables
loop n (1,5)
z_d = float(n) - 0.5
command
sel cable beg (0.0,1.5,@z_d) end (7.0,1.5,@z_d) nseg 7
end_command
end_loop
end
@place_cables
plot add zone trans 75
plot add sel geom
new
gen zone brick size 10 3 5
model mech mohr
prop bulk 1e8 shear 0.3e8 fric 35
prop coh 1e3 tens 1e3
ini dens 1000
set grav (0,0,-10) ; ; 重力加速度
fix x y z range z 0.0
fix y range y 0.0
fix y range y 3.0
fix x range x 0.0
fix x range x 10.0
set large
hist add unbal
solve
save cab_str
ini xdis 0 ydis 0 zdis 0
hist add gp xdisp (0,1,5)
def place_cables
loop n (1,5)
z_d = 5.5 - float(n)
z_t = z_d + 0.5
z_b = z_d - 0.5
command
free x range x 0.0 z @z_b,@z_t
solve
sel cable beg (0.0,0.5,@z_d) end (7.0,0.5,@z_d) nseg 7
sel cable beg (0.0,1.5,@z_d) end (7.0,1.5,@z_d) nseg 7
sel cable beg (0.0,2.5,@z_d) end (7.0,2.5,@z_d) nseg 7
sel cable prop emod 2e10 ytension 1e8 xcarea 1.0 ...
gr_k 2e10 gr_coh 1e10 gr_per 1.0
end_command
end_loop
end
@place_cables
save cab_end
plot zone trans 75 sel cabblock force line width 4
new
gen zone brick size 1 2 1
model mech mohr
prop shear=1e8 bulk=2e8 ...
cohes=1e5 tens=1e10
fix x y z range y 0.0
apply yvel -1e-5 range y 2.0
def get_ad
ad1 = gp_near(0,2,0)
ad2 = gp_near(1,2,0)
ad3 = gp_near(0,2,1)
ad4 = gp_near(1,2,1)
end
@get_ad
def load
load=gp_yfunbal(ad1)+gp_yfunbal(ad2)+gp_yfunbal(ad3)+gp_yfunbal(ad4)
end
hist add fish load
hist add gp ydis (0,6,0)
step 1000
plot his 1 vs -2
new
gen zone brick size 10 3 5
model mech mohr
prop bulk 1e8 shear 0.3e8 fric 35
prop coh 1e3 tens 1e3
ini dens 1000
set grav (0,0,-10) ; ; 重力加速度
fix x y z range z 0.0
fix y range y 0.0
fix y range y 3.0
fix x range x 0.0
fix x range x 10.0
set large ; ;大变形
hist add unbal
solve
save cab_str ; ;保持计算结果文件,不用加后缀名.Sav
ini xdis 0 ydis 0 zdis 0 ; ; 位移归零
hist add gp xdisp (0,1,5)
def place_cables
loop n (1,5)
z_d = 5.5 - float(n)
z_t = z_d + 0.5
z_b = z_d - 0.5
command
free x range x 0.0 z @z_b,@z_t
solve
sel cable beg (0.0,0.5,@z_d) end (7.0,0.5,@z_d) nseg 7
sel cable beg (0.0,1.5,@z_d) end (7.0,1.5,@z_d) nseg 7
sel cable beg (0.0,2.5,@z_d) end (7.0,2.5,@z_d) nseg 7
sel cable prop emod 2e10 ytension 1e8 xcarea 1.0 ...
gr_k 2e10 gr_coh 1e10 gr_per 1.0
end_command
end_loop
end
@place_cables
save cab_end
plot zone trans 75 sel cabblock force line width 4
def parm
global rad=4.0 ; radius of spherical cavity
global len=10.0 ; length of outer box edge
global in_size=6 ; number of zones along outer cube edge
global rad_size=10 ; number of zones in radial direction
end
@parm
gen zone radbrick edge @len size @in_size @in_size @in_size @rad_size &
rat 1.0 1.0 1.0 1.2 dim @rad @rad @rad
def mountain
local gp = gp_head
loop while gp # null
local zz = sqrt(gp_xpos(gp)^2 + gp_ypos(gp)^2)
local dz = 0.06 * sin(0.2 * zz + 100.0) ; Sum Fourier terms for
dz = dz + 0.06 * sin(0.22 * zz - 20.3) ; quasi-random surface
dz = dz - 0.04 * sin(0.33 * zz + 33.3) ; topology.
gp_zpos(gp) = 0.5 * gp_zpos(gp) * (1.0 + dz)
gp = gp_next(gp)
end_loop
end
@mountain
fix x range x -.1 .1
fix x range x 99.9 100.1
fix y range y -.1 .1
fix y range y 99.9 100.1
fix z range z -.1 .1
set grav 0,0,-10
ini density=2000
ini szz=-2.0e6 (grad 0,0,2.0e4)
ini sxx=-4.0e6 (grad 0,0,4.0e4) syy=-4.0e6 (grad 0,0,4.0e4)
solve
define afill ; fill matrix with random numbers
array var(4,3)
local m
loop m (1,4)
local n
loop n (1,3)
var(m,n) = urand
end_loop
end_loop
end
new
define h_var_1
local zi = z_near(1,1,1)
h_var_1 = z_sxx(zi)
h_var_2 = z_syy(zi)
h_var_3 = z_szz(zi)
end
The FLAC3D commands to request histories might be
hist add fish h var 1
hist add fish h var 2
hist add fish h var 3
degrade
展开阅读全文