endif
dum = out(msg) endloop end afill Ashow
4-2函数操作
new def xxx
aa = 2 * 3 xxx = aa + bb end new
def stress_sum
stress_sum = 0.0 pnt = zone head loop while pnt # null
Stress_sum = stress_sum + z_sxx(pnt) pnt=z_next(pnt) end_loop end new
def stress_sum
sum = 0.0
pnt = zone head loop while pnt # null
sum = sum + z_sxx(pnt) pnt=z next(pnt) end loop
stress_sum = sum end new
def h_var_1
ipz = z_near(1,2,3) H_var_1 = sxx(ipz) + fac H_var_2 = syy(ipz) + fac H_var_3 = szz(ipz) + fac H_var_4 = sxy(ipz) + fac H_var_5 = syz(ipz) + fac
H_var_6 = sxz(ipz) + fac end
4-3函数删除与重定义
new
def joe
ii=out(‘This is A Function’) end def fred joe end fred def joe
ii=(‘This is A New Function’) end
fred
4-4字符串
new
def in_def
xx = in(msg+’(’+’default:’+string(default)+’):’) if type(xx) = 3 in_def = default else
in_def = xx endif end ;
def moduli_data
default = 1.0e9
msg=’Input Young‘s modulus ’ Y_mod = in_def default = 0.25
msg=’Input Poisson‘s ratio ’ p_ratio = in_def if p_ratio = 0.5 then
ii = out(’ Bulk mod is undefined at Poisson‘s ratio = 0.5’) ii = out(’ Select a different value --’) p_ratio = in_def endif
s_mod = y_mod / (2.0 * (1.0 + p_ratio))
b_mod = y_mod / (3.0 * (1.0 - 2.0 * p_ratio))
end ;
moduli_data
gen zone brick size 2,2,2 model elastic
prop bulk = b_mod shear = s_mod print p_ratio y_mod b_mod s_mod pause
print zone prop bulk pause
print zone prop shear
4-5马蹄形隧道网格
new
gen zone radcyl size 5 10 6 12 rat 1 1 1 1.2 p0 0,0,0 p1 100,0,0 p2 0,200,0 p3 0,0,100 gen zone radtun size 5 10 5 12 rat 1 1 1 1.2 p0 0,0,0 p1 0,0,-100 p2 0,200,0 p3 100,0,0 gen zone reflect dip 90 dd 270 origin 0,0,0 plot set rotation 30 0 30 plot block group
plo add axes red
4-6复杂形状网格生成
new
; 主隧道网格
gen zon radcyl p0 15 0 0 p1 23 0 0 p2 15 50 0 p3 15 0 8 size 4 10 6 4 dim 4 4 4 4 rat 1 1 1 1 fill gen zon reflect dip 90 dd 90 orig 15 0 0 gen zon reflect dip 0 ori 0 0 0 ; 辅助隧道网格
gen point id 1 (2.969848,0.0,-0.575736) gen point id 2 (2.969848,50.0,-0.575736)
gen zon radcyl p0 0 0 -1 p1 7 0 0 p2 0 50 -1 p3 0 0 8 p4 7 50 0 &
p5 0 50 8 p6 7 0 8 p7 7 50 8 p8 point 1 p10 point 2 &
size 3 10 6 4 dim 3 3 3 3 rat 1 1 1 1
gen zon radcyl p0 0 0 -1 p1 0 0 -8 p2 0 50 -1 p3 7 0 0 p4 0 50 -8 &
p5 7 50 0 p6 7 0 -8 p7 7 50 -8 p9 point 1 p11 point 2 &
size 3 10 6 4 dim 3 3 3 3 rat 1 1 1 1 ;衬砌网格
sel shell range cyl end1 0 0 -1 end2 0 50 -1 rad 3 ; 隧道外围边界网格
gen zone radtun p0 7 0 0 p1 50 0 0 p2 7 50 0 p3 15 0 50 p4 50 50 0 &
p5 15 50 50 p6 50 0 50 p7 50 50 50 &
p8 23 0 0 p9 7 0 8 p10 23 50 0 p11 7 50 8 &
size 6 10 3 10 rat 1 1 1 1.1
gen zone brick p0 0 0 8 p1 7 0 8 p2 0 50 8 p3 0 0 50 &
p4 7 50 8 p5 0 50 50 p6 15 0 50 p7 15 50 50 &
size 3 10 10 rat 1 1 1.1 ;对称得出1/2模型
gen zon reflect dip 0 ori 0 0 0 range x 0 23 y 0 50 z 8 50 gen zon reflect dip 0 ori 0 0 0 range x 23 50 y 0 50 z 0 50 ;建立主隧道和辅助隧道块名称
group service range cyl end1 0 0 -1 end2 0 50 -1 rad 3 group main range cyl end1 15 0 0 end2 15 50 0 rad 4 ;对称得出完整模型
gen zon reflect dip 90 dd 270 ori 0 0 0 ;网格显示
plot set rotation 30 0 30 plot block group
4-7网格连接
new
gen zone brick size 4 4 4 p0 0,0,0 p1 4,0,0 p2 0,4,0 p3 0,0,2 gen zone brick size 8 8 4 p0 0,0,2 p1 4,0,2 p2 0,4,2 p3 0,0,4 attach face range z 1.9 2.1 model elas
prop bulk 8e9 shear 5e9 fix z range z -.1 .1 fix x range x -.1 .1 fix x range x 3.9 4.1 fix y range y -.1 .1 fix y range y 3.9 4.1
apply szz -1e6 range z 3.9 4.1 x 0,2 y 0,2 hist unbal ;网格显示
plot set rotation 30 0 30 plot block group solve
save att.sav
plot cont zdisp outl on
单一网格(小)程序 new
gen zone brick size 8 8 8 p0 0,0,0 p1 4,0,0 p2 0,4,0 p3 0,0,4 model elas
prop bulk 8e9 shear 5e9
fix z range z -.1 .1 fix x range x -.1 .1 fix x range x 3.9 4.1 fix y range y -.1 .1 fix y range y 3.9 4.1
apply szz -1e6 range z 3.9 4.1 x 0,2 y 0,2 hist unbal ;网格显示
plot set rotation 30 0 30 plot block group solve
save noattx.sav
plot cont zdisp outl on
单一网格(大)程序 new
gen zone brick size 4 4 4 p0 0,0,0 p1 4,0,0 p2 0,4,0 p3 0,0,4 model elas
prop bulk 8e9 shear 5e9 fix z range z -.1 .1 fix x range x -.1 .1 fix x range x 3.9 4.1 fix y range y -.1 .1 fix y range y 3.9 4.1
apply szz -1e6 range z 3.9 4.1 x 0,2 y 0,2 hist unbal ;网格显示
plot set rotation 30 0 30 plot block group solve
save noattx.sav
plot cont zdisp outl on
4-8立方体洞穴网格生成
new def parm
rad=4.0 len=10.0 in_size=6 rad_size=10 end parm
gen zone radbrick edge len size in_size in_size in_size rad_size &