这个关于条形基础模拟的例子是我在说明书里面找到的。有几点不明白:这个例子中的土的内摩擦角为0,当土质改变后,内摩擦角不为0时这个例子还能用吗?可以直接改参数吗?然后这个例子的理论解我也不是很理解,为什么承载力和内摩擦角没关系了。求指导,我问得问题可能很小白,求大神不吝赐教。这个例子就是软件说明书中有内聚力无摩擦土地基上的粗糙条形基础。
命令流如下:
new
def test0
tim0=clock
end
def test1
tim=(clock-tim0)/100.0
end
gen zone brick p0=0.0 0.0 0.0 p1 3.0 0.0 0.0 p2 0.0 1.0 0.0 p3 0.0 0.0 10.0 p4 3.0 1.0 0.0 p5 0.0 1.0 10.0 p6 3.0 0.0 10.0 p7 3.0 1.0 10.0 size 6 1 20 ratio 0.9 1.0 0.97
gen zone brick p0=3.0 0.0 0.0 p1 20.0 0.0 0.0 p2 3.0 1.0 0.0 p3 3.0 0.0 10.0 p4 20.0 1.0 0.0 p5 3.0 1.0 10.0 p6 20.0 0.0 10.0 p7 20.0 1.0 10.0 size 20 1 20 ratio 1.08 1.0 0.97
model mohr
prop bul 2e8 shea 1e8 cohesion 1e5
prop friction 0 dilation 0 tension 1e10
fix x range x -0.1 0.1
fix x y z range z -0.1 0.1
fix x y z range x 19.9 20.1
fix y
fix x y z range x -0.1 3.1 z 9.9 10.1
free x range x 2.9 3.1 z 9.9 10.1
ini zvel -0.5e-5 range x -0.1 3.1 z 9.9 10.1
def p_cons
array LoadPoints(50)
pdis1 =gp_near(0,0,10)
pdis2 =gp_near(0,1,10)
p_sol =(2+pi)
setCohes=z_prop(zone_head,'cohesion')
pnt =gp_head
n =0
xnext =20.0
loop while pnt # null
if gp_zpos(pnt)>9.9
if gp_xpos(pnt)<3.1
n=n+1
LoadPoints(n)=pnt
endif
if gp_xpos(pnt)>3.1
xnext=min(xnext,gp_xpos(pnt))
endif
endif
pnt=gp_next(pnt)
endLoop
nLoads=n
EffectiveWidth=(3.0+xnext)/2.0
end
p_cons
def p_load
pload=0
loop n (1,nLoads)
pnt=LoadPoints(n)
pload=pload+gp_zfunbal(pnt)
endLoop
actLoad=pload/(EffectiveWidth*setCohes)
c_disp=-(gp_zdisp(pdis1)+gp_zdisp(pdis2))/2.0
p_load=actLoad
end
def p_err
p_err=100.0*(actLoad-p_sol)/p_sol
end
hist n 50
hist p_load
hist p_sol
hist c_disp
hist unbal
test0
plo set pers off
cyc 50000
test1
print tim
print p_err
save pran3.save
ret