- 积分
- 0
- 注册时间
- 2004-12-18
- 仿真币
-
- 最后登录
- 1970-1-1
|
; excavarion and support for a shallow tunnel
;
; generate primitive components of grid
; concrete liner-upper tunnel
gen zon cshell p0 0 0 0 p1 7 0 0 p2 0 51 0 p3 0 0 5.5 &
dim 5 5 5 5 size 2 51 10
group 'concrete liner'
;
; upper tunnel
gen zon cyl p0 0 0 0 p1 5 0 0 p2 0 51 0 p3 0 0 5 &
size 5 51 10
pause
group tunnel range group 'concrete liner' not
;
; lower tunnel & liner
gen zone brick p0 0 0 -4.5 p1 add 7 0 0 p2 add 0 0 4.5 &
size 7 51 3
;
; surrounding rock (10 primitives)
gen zon radcyl p0 0 0 0 p1 27 0 0 p2 0 51 0 p3 0 0 25 &
dim 7 5.5 7 5.5 size 5 51 10 8 rat 1 1 1 1.3
;
gen zone brick p0 7 0 -4.5 p1 27 0 -15 p2 add 0 51 0 p3 0 0 -4.5 &
p4 27 51 -15 p5 7 51 0 p6 27 0 0 p7 27 51 0 &
size 8 51 3 ratio 1.3 1 1
;
gen zone brick p0 0 0 -15 p1 add 27 0 0 p2 add 0 51 0 p3 0 0 -4.5 &
p4 27 51 -15 p5 0 51 -4.5 p6 7 0 -4.5 p7 7 51 -4.5 &
size 7 51 8 rat 1 1 0.7692307692307692
;
gen zon brick p0 0 0 25 p1 add 27 0 0 p2 add 0 51 0 p3 add 0 0 10 &
size 5 51 2
;
gen zon brick p0 27 0 25 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 10 &
size 2 51 2 rat 2 1 1
;
gen zon brick p0 27 0 -15 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 40 &
size 2 51 8 rat 2 1 1
;
gen zon brick p0 27 0 -40 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 25 &
size 2 51 2 rat 2 1 0.5
;
gen zon brick p0 0 0 -40 p1 add 27 0 0 p2 add 0 51 0 p3 add 0 0 25 &
size 7 51 2 rat 1 1 0.5
;
; assign names to groups of zones
group rock range group 'concrete liner' not group tunnel not
;
; assign Mohr-Coulomb material model
mo mohr
pro bulk 50e6 she 18e6 fric 20 coh 25e3 ten 0 dill 0 range z 25 35
pro bulk 4e8 she 1.5e8 fric 20 coh 50e3 ten 5e3 dill 3 range z -50 25
; assign boundary conditions
fix x range x -.1 .1
fix x range x 43.9 44.1
fix z range z -40.1 -39.9
fix y range y -.1 .1
fix y range y 50.9 51.1
; assign initial stress state
set grav 0 0 -10
ini density 2200
ini szz -770e3 grad 0 0 22000
ini sxx -770e3 grad 0 0 22000
ini syy -385e3 grad 0 0 11000
; monitor variables in model
hist unbal
hist gp zdisp 0 0 5.5
hist gp xdisp 7 0 0
hist gp zdisp 0 0 0
hist gp zdisp 0 0 35
hist gp zdisp 0 30 5.5
hist gp xdisp 7 30 0
hist gp zdisp 0 30 0
hist gp zdisp 0 30 35
hist gp zdisp 0 12 35
hist gp zdisp 0 18 35
hist gp zdisp 0 24 35
hist gp zdisp 0 36 35
hist gp zdisp 5 30 35
hist gp zdisp 10 30 35
;
sav geoml.sav
;
def conc_parm
bmc = 20.7e9
smc = 12.6e9
end
conc_parm
;
; define the locations of cable patterns 1,2 and 3
;
def cab_parm
array x_b(4,3), z_b(4,3)
y0 = -3
x_b(1,1) = 0.8
x_b(2,1) = 2.1
x_b(3,1) = 3.5
x_b(4,1) = 5.5
z_b(1,1) = 5.5
z_b(2,1) = 2.4
z_b(3,1) = 4.7
z_b(4,1) = 1.5
x_b(1,2) = 0.8
x_b(2,2) = 0.8
x_b(3,2) = 3.5
x_b(4,2) = 5.5
z_b(1,2) = 0.6
z_b(2,2) = 4.0
z_b(3,2) = 2.4
z_b(4,2) = 0.6
x_b(1,3) = 0.8
x_b(2,3) = 2.6
x_b(3,3) = 5.0
x_b(4,3) = 3.5
z_b(1,3) = 2.4
z_b(2,3) = 4.0
z_b(3,3) = 3.0
z_b(4,3) = 0.6
end
def inip
x1 = x_b(1,iidx)
x2 = x_b(2,iidx)
x3 = x_b(3,iidx)
x4 = x_b(4,iidx)
z1 = z_b(1,iidx)
z2 = z_b(2,iidx)
z3 = z_b(3,iidx)
z4 = z_b(4,iidx)
end
cab_parm
;
; install initial cables
;
def ins_cab
loop iidx (1,3)
inip
cab_seg = cab_seg_m-3*(3-iidx)
y1 = 0.
y2 = float(cab_seg)
command
sel cable id iidx begin x1 y1 z1 end x1 y2 z1 nseg cab_seg
sel cable id iidx begin x2 y1 z2 end x2 y2 z2 nseg cab_seg
sel cable id iidx begin x3 y1 z3 end x3 y2 z13nseg cab_seg
sel cable id iidx begin x4 y1 z4 end x4 y2 z4 nseg cab_seg
sel cable pro emod 45e9 xcarea 1.57e-3 gr_per 1. &
yten 25e4 gr_k 17.5e6 gr_c 20e4 ran id iidx
end_command
end_loop
end
set cab_seg_m 15
ins_cab
; install pre-support concrete
;
sel shell id 10 group rock range cy1 end1 0 0 -1.5 rad 7.4 &
cy1 end1 0 0 -1.5 end2 0 1 -1.5 rad 6.7 not &
z -0.1 6
sel shell prop isotropic 10.5e9,0.25 thickness 0.3 density 2500
def monit
ipt_surf = gp_near(0,30,35)
ipt_crown = gp_near(0,30,5.5)
ipt_spring = gp_near(7,30,0)
end
monit
save m_ini.sav
;
; FISH function to control excavation and support sequence
def excav
y0 = y0+3
cut_i = y0/3+1
loop cut (cut_i,16)
cut_cur = cut
step_name = ' EXCAVATION STEP ' + string(cut)
ii = out(step_name)
y0 = 3*(cut-1)
y1 = y0+3
yp0 = y0+1
yp1 = y1+1
ys0 = yp0-3
ys1 = yp1-3
yc0 = y0-3
yc1 = y1-3
id_ = 10
; id_ = 10*(cut+1) ; use if shells unconnected
command
; install pre support concrete
sel shell id id_group rock &
range cy1 end1 0 yp0 -1.5 end2 0 yp1 -1.5 rad 7.4 &
cy1 end1 0 yp0 -1.5 end2 0 yp1 -1.5 rad 6.7 not &
z -0.1 6
sel shell prop isotropic 10.5e9,0.25 thickness 0.3 density 2500 &
ran y yp0 y1
; excavate next cut
mo null range reg tunnel y y0 y1
mo null range reg 'concrete liner' y y0 y1
; delete-cables in the excavated area
sel delete cable 1 range y y0 y1
sel delete cable 2 range y y0 y1
sel delete cable 3 range y y0 y1
end_command
cut_1 = cut-1
iidx=int(cut_1-3*(cut_1/3))+1
y2=min(y1+15,51)
inip
ii = out(' CABLE BOLT PATTERN '+string(iidx))
command
sel delete cable iidx
; install new cables
sel cable id iidx begin x1 y1 z1 end x1 y2 z1 nseg cab_seg_m
sel cable id iidx begin x2 y1 z2 end x2 y2 z2 nseg cab_seg_m
sel cable id iidx begin x3 y1 z3 end x3 y2 z3 nseg cab_seg_m
sel cable id iidx begin x4 y1 z4 end x4 y2 z4 nseg cab_seg_m
sel cable pro emod 45e9 xcarea 1.57e-3 gr_per 1. &
yten 25e4 gr_k 17.5e6 gr_c 20e4 ran id iidx
; shotcrete
sel shell prop isotropic 10.5e9,0.25 thickness 0.5 density 2500 &
ran y ys0 ys1
end_command
if cut > 1 then
command
; concrete liner
mo e1 range group 'concrete liner' y yc0 yc1
pro bulk bmc sh smc range group 'concrete liner' y yc0 yc1
end_command
end_if
command
step 3000
end_command
; store displacements in tables
xtable(1,cut) = 3.0 * cut
ytable(1,cut) = gp_zdisp(ipt_surf)
xtable(2,cut) = 3.0 * cut
ytable(2,cut) = gp_zdisp(ipt_crown)
xtable(3,cut) = 3.0 * cut
ytable(3,cut) = gp_zdisp(ipt_spring)
command
save m1.sav
end_command
if cut=5 then
command
save m1_15.sav
end_command
end_if
if cut=9 then
command
save m1_27.sav
end_command
end_if
if cut=10 then
command
save m1_30.sav
end_command
end_if
end_loop
end
excav
ret
; finishes stepping for the current excavation step
; and continues following excavation steps
;
def cont_excav
rest_step = 3000*(step/3000+1)-step
if rest_step = 3000 then
rest_step = 0
end_if
command
step rest_step
end_command
; store displacements in tables
xtable(1,cut) = 3.0 * cut
ytable(1,cut) = gp_zdisp(ipt_surf)
xtable(2,cut) = 3.0 * cut
ytable(2,cut) = gp_zdisp(ipt_crown)
xtable(3,cut) = 3.0 * cut
ytable(3,cut) = gp_zdisp(ipt_spring)
command
save m1.sav
end_command
if cut=10 then
command
save m1_30.sav
end_command
end_if
excav
end
运行到; assign Mohr-Coulomb material model
mo mohr
pro bulk 50e6 she 18e6 fric 20 coh 25e3 ten 0 dill 0 range z 25 35
pro bulk 4e8 she 1.5e8 fric 20 coh 50e3 ten 5e3 dill 3 range z -50 25
提示property bad,or dose not correspond to model
请高手指教!!! |
|