rat 1.0 1.0 1.0 1.2 dim rad rad rad
;对称得出完整模型
gen zon reflect dip 0 dd 0 ori 0 0 0 gen zon reflect dip 90 dd 270 ori 0 0 0 ;网格显示
plot set rotation 30 0 30 plot block group
4-9球体洞穴网格生成
new def parm
rad=4.0 len=10.0 in_size=6 rad_size=10 end parm
def make_sphere
p_gp=gp_head
loop while p_gp#null
px=gp_xpos(p_gp) py=gp_ypos(p_gp) pz=gp_zpos(p_gp)
dist=sqrt(px*px+py*py+pz*pz) if dist>0 then
k=rad/dist ax=px*k ay=py*k az=pz*k
maxp=max(px,max(py,pz)) k=len/maxp bx=px*k by=py*k bz=pz*k
u=(maxp-rad)/(len-rad)
gp_xpos(p_gp)=ax+u*(bx-ax) gp_ypos(p_gp)=ay+u*(by-ay) gp_zpos(p_gp)=az+u*(bz-az) end_if
p_gp=gp_next(p_gp) end_loop end
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 make_sphere
;对称得出完整模型
gen zon reflect dip 0 dd 0 ori 0 0 0 gen zon reflect dip 90 dd 270 ori 0 0 0 ;网格显示
plot set rotation 15 0 30 plot block group
4-10应力边界
new
gen zone brick size (4,4,4) p0 (0,0,0) p1 (4,0,0) & p2 (0,4,0) p3 (2,0,3.464) model elastic
prop bulk 1e8 shear .3e8
apply nstress -1e6 range plane dip 60 dd 270 origin 0.1,0,0 above step 1 ;网格显示
plot set rotation 30 0 30 plot block group plot grid red fap green
4-11改变应力边界条件
new
gen zone brick size 6 6 6 model elas
prop bulk 1e8 shear 7e7 fix x range x -0.1 0.1 def superstep
loop ns (1,n_steps) x_stress = stress_inc command
apply sxx add x_stress range x 5.9,6.1 y 0,6 z 0,2 step 100
end_command end_loop end
set n_steps=100 stress_inc=-1e3 hist zone sxx 6,0,0 plot create sxx_hist plot add hist 1 plot show Superstep ;网格显示
plot set rotation 30 0 30 plot block group plot grid red fap green new
gen zone brick size 6 6 6 model elas
prop bulk 1e8 shear 7e7 fix x range x -0.1 0.1 def x_stress
x_stress = stress_inc * step end
set stress_inc = -1e3
apply sxx 1.0 hist x_stress range x 5.9,6.1 y 0,6 z 0,2 hist zone sxx 6,0,0 hist x_stress step 100 ;网格显示
plot set rotation 30 0 30 plot grid red fap green new
gen zone brick size 6 6 6 model elas
prop bulk 1e8 shear 7e7 fix x range x -0.1 0.1 table 1 0,0 100,-1e5
apply sxx 1.0 hist table 1 range x 5.9,6.1 y 0,6 z 0,2 hist zone sxx 6,0,0 step 100;网格显示 plot set rotation 30 0 30 plot grid red fap green new
gen zone brick size 6,6,6 p1 6,0,-1 model elas
prop bulk 8e9 shear 5e9
apply sxx -2e6 range x -0.1 0.1 apply sxx -2e6 range x 5.9 6.1 step 500
plot bound fap plot grid disp new
gen zone brick size 5,5,5 model elas
prop bulk 8e9 shear 5e9 set grav 0 0 -10 ini dens 1000
fix x range x -.1 .1 fix x range x 4.9 5.1 fix y range y -.1 .1 fix y range y 4.9 5.1
ini szz -5e4 grad 0 0 -1e4 app szz -5e4 range z -.1 .1 solve
model null range x 1,4 y 1 4 z 3 5 step 100
plot set plane dip 90 dd 180 origin 0,2.5,0 plot add surf plane behind yell plot add vel plane behind black plot set rotation 30 0 30 plot block group plot show
4-12位移边界
new
gen zone brick size 4,4,4 p3 2,0,3.464 model elas
prop bulk 1e8 shear .3e8
macro left_boun ’plane dip 60 dd 270 origin 0.1,0,0 above’ macro right_boun ’plane dip 60 dd 270 origin 3.9,0,0 below’ apply nvel 0.1 plane dip 60 dd 270 range left_boun apply nvel 0.1 plane dip 120 dd 90 range right_boun step 1 ;网格显示
plot set rotation 30 0 30 plot block group plot grid vel new new
gen zone brick size 4 4 4 model elastic
prop bulk 1e8 shear .3e8
apply nstress -1e6 plane dip 0 dd 0 range y 3.9 4.1 apply nvel 0.0 plane dip 0 dd 0 range y -.1 .1
apply nvel 0.0 plane dip 0 dd 0 range x -.1 .1 step 10 ;网格显示
plot set rotation 30 0 30 plot block group plot grid vel new
gen zone brick size 10 5 5 mod el
prop shear 1e8 bulk 2e8
fix x y z range x -.1 .1 y 0 5 z 0 5 fix x y z range x 0 10 y 0 5 z -.1 .1 fix x y z range x 9.9 10.1 y 0 5 z 0 5 table 1
def find_add head = null p_gp = gp_head
loop while p_gp # null x_pos = gp_xpos(p_gp) if x_pos = width then new = get_mem(2) mem(new) = head mem(new+1) = p_gp head = new endif
p_gp = gp_next(p_gp) endloop end
set width=10.0 find_add def apply_vel while_stepping ad = head
loop while ad # null p_gp = mem(ad+1)
gp_xvel(p_gp) = vel_max * gp_zpos(p_gp) / height
gp_zvel(p_gp) = -vel_max * (gp_xpos(p_gp) - width) / height ad = mem(ad) endloop end
set large vel_max=1e-2 height=5.0 step 100 ;网格显示