求大神指导,程序中什么地方有明显的错误
flac3d吧
全部回复
仅看楼主
level 1
new
def _geoparm
step1=1000
loop while flag001<=10.0
command
delete
endcommand
filecal0='fos'+'_'+string(int(flag001))+'.sav'
bf=90 ; 改变此处坡角
af=bf*pi/180 ;
h1=11
command
gen zone brick size 16 11 11
endcommand
;strength reduction method
ait1=0.001 ;精度
k11=0.0 ;lower bound
k12=20.0 ;upper bound
ks=(k11+k12)/2
loop while (k12-k11)>ait1
E1=10.0e6
poi1=0.30
weight1=25e3
dila1=47.0*dilain1
fri1=(atan((tan(17.0*pi/180.0))/ks))*180.0/pi
grav0=-9.80
dens1=-weight1/grav0
K1=E1/(3*(1-2*poi1))
G1=E1/(2*(1+poi1))
command
hist reset
model null
model mohr ;采用莫尔库仑模型
pro bulk K1 she G1 dens dens1 coh 1e10 &
friction fri1 dilation dila1 tens 1e10
set grav 0 0 grav0
hist unbal
fix x range x 15.9 16.1
fix y range y -0.1 0.1
fix y range y 10.9 11.1
fix z range z -0.1 0.1
hist n 5
hist unbal
solve
save 21.sav
prop coh 1e3 tens 1e3
model mohr range x 0 0.4 y 0 11 z 0 11
prop bulk 1e8 shear 0.3e8 fric 35
prop coh 1e5 tens 1e5
set grav grav0
ini dens dens1
ini xdis=0 ydis=0 zdis=0
sel beam beg=(0,3.3,1.0) end =(2.7,3.3,1.0 ) nseg=4
sel beam beg=(0,7.7,1.0) end =(2.7,7.7,1.0 ) nseg=4
sel beam beg=(0,2.5,4.4) end =(4.6,2.5,4.4 ) nseg=4
sel beam beg=(0,6.5,4.4) end =(4.6,6.5,4.4 ) nseg=4
sel beam beg=(0,10.5,4.4) end =(4.6,10.5,4.4) nseg=4
sel beam beg=(0,4.2,8.2) end =(9.1,4.2,8.2 ) nseg=4
sel beam beg=(0,9.4,8.2) end =(9.1,9.4,8.2 ) nseg=4
sel beam prop emod=2.0e11 nu=0.30
sel beam prop XCArea=6e-3 xcIz=200e-6 XCIy=200e-6 XCJ=0.0
hist gp xdis 0 5.5 5
hist gp zdis 0 5.5 10
app nstress -4.0e5 ran z 11 x 5 11 y 3 9
set mech ratio 6.3e-2
solve
endcommand
ii=out(' =================================================')
ii=out(' '+' flag001: '+string(flag001)+' safety factor: '+string(ks)+' in calculation...')
ii=out(' =================================================')
command
set mech ratio 1e-5
solve step step1
;hist write 1 file filetxt1
save filecal0
endcommand
;收敛
if mech_ratio<1.0e-5
k11=ks
k12=k12
else
k12=ks
k11=k11
endif
ks=(k11+k12)/2
endloop
if flag001=0.0 ;============================
command
def mon_point
file0='安全系数'+'(m).txt'
;buf1='buf'+string(int(flag1))
array buf1(1)
buf1(1)=' 倾角 安全系数\n'
buf1(1)=buf1(1)+string(flag001)+' '+string(ks)
;
status=open(file0,1,1)
status=write(buf1,1)
status=close
end
mon_point
return
endcommand
else
command
def mon_point
file0='安全系数'+'(m).txt'
;buf1='buf'+string(int(flag1))
;array buf1(1)
buf1(1)=string(flag001)+' '+string(ks)
;
status=open(file0,2,1)
status=write(buf1,1)
status=close
end
mon_point
return
endcommand
endif
flag001=flag001+1
endloop
end
_geoparm
2014年05月30日 01点05分 1
1