采用fish语言编写的强度折减法计算边坡稳定,具体的fish程序如下:模型部分共分为3层,分别为layer1,layer2,layer3,一下为fish语言编写强度折减
def ssr
ait1=0.02
k11=1.0
k22=20
ks=(k11+k22)/2
loop while (k22-k11)>ait1
coh1=200000/ks
fri1=(atan((tan(40*pi/180))/ks))*180/pi
coh2=0fri2=(atan((tan(15*pi/180))/ks))*180/pi
coh3=10000/ks
fri3=(atan((tan(15*pi/180))/ks))*180/pi
command
model elas
prop bulk 8.9e9 shear 10.5e9 dens 2500 ran group layer1
prop bulk 3.1e9 shear 6.4e9 dens 1900 ran group layer2
prop bulk 1.5e9 shear 2.2e9 dens 1700 ran group layer3
set gravity 0 0 -10fix x range x -0.1 0.1
fix x range x 99.9 100.1
fix x y z range z -0.1 0.1
fix ysolve
ini xdisp 0 ydisp 0 zdisp 0
ini xvel 0 yvel 0 zvel 0
model mohr
prop bulk 8.9e9 shear 10.5e9 dens 2500 coh coh1 fric fri1 range group layer1
prop bulk 3.1e9 shear 6.4e9 dens 1900 coh coh2 fric fri2 range group layer2
prop bulk 1.5e9 shear 2.2e9 dens 1700 coh coh3 fric fri3 range group layer3
apply szz -1.5e5 range z 32.9 34.1 x 18 48 y 0 100
set mech ratio 9.8e-6
solve step 10000
endcommand
if mesh_ratio<1.0e-5
k11=ksk22=k22
elsek11=k11k22=ks
endif
ks=(k11+k22)/2
endloop
fosfile0='_fos'+'.sav'commandsave fasfile模拟3
endcommand
endssr
pr ksplot fos cont ssi outline on vel red
计算结束后得到的ks总是无限接近于k11或者k22。求大神给予指点。