各位大神:编写了一段fish程序来计算单元应力比,但程序运行后得到的结果明显有问题,数量级太大了。本人实在找不到问题出在哪,求路过的大神给指点指点。fish程序如下:
;建立模型,求初始应力
ge zone brick p0 0 0 0 p1 10 0 0 p2 0 10 0 p3 0 0 10 size 10 10 10 g 1
ge zone brick p0 0 0 10 p1 add 10 0 0 p2 add 0 10 0 p3 add 0 0 10 size 10 10 10 g 2
model elas
prop bulk 3e7 shear 1e7 r g 1
prop bulk 3e8 shear 1e8 r g 2
fix x y z range z 0
ini dens 2000 r g 1
ini dens 2500 r g 2
set grav 0 0 -10
solve
save model.sav
;将最大主应力赋值给z_extra1
config zextra 2
def find_max_stress
p_z =zone_head
loop while p_z # null
if z_syy(p_z) > z_szz(p_z) then
z_extra(p_z,1) = z_syy(p_z)
else
z_extra(p_z,1) = z_szz(p_z)
endif
p_z = z_next(p_z)
endloop
end
find_max_stress
save max_stress.sav
;求单元强度应力比
def yinglibi
stress_a=1.0e5
p_z =zone_head
loop while p_z # null
if z_group(p_z) = '2' then
z_extra(p_z,2)=(stress_a)/(z_extra(p_z,1))
else
if z_group(p_z) = '1' then
z_extra(p_z,2)=0
endif
endif
p_z = z_next(p_z)
endloop
end
yinglibi