gen zone cyl p0 0 0 0 p1 1 0 0 p2 0 4 0 p3 0 01 size 12 30 12
gen zone reflect norm 1,0,0
gen zone reflectnorm 0,0,1
model ss
pro den2500 bulk 2e8 she 1e8 co 2e6 fric 45 ten 1e6 dil 10
pro ftab 1 ctab 2 dtab 3
table 1 0 45 .05 42 .1 40 1 40
table 2 0 2e6 .05 1e6 .1 5e5 15e5
table 3 0 10 .05 3 .1 0
fix x y z range y -.1 .1
fix x y zrange y 3.9 4.1
ini yvel 2.5e-5 range y -.1 .1 ;施加恒定速度测试反力(应变控制)
ini yvel -2.5e-5 range y 3.94.1
def ax_str
str = 0
pnt = gp_head
loop whilepnt # null
if gp_ypos(pnt) < 0.1then
str = str +gp_yfunbal(pnt)
endif
pnt =gp_next(pnt)
endloop
ax_str = str / pi ; cylinder radius = 1
end
hist n 1
hist gp ydisp 0,0,0
histax_str
hist gp xdisp 1,1,0
plot hist -2 vs 1 ;axial stress vs axialdisp.
step 5000
save beforeplzones.sav
; Plot of plastic region aszones with strain > 0.2
def ShowPlasticZones
zp =zone_head
loop while zp # null
ifz_prop(zp,'es_plastic') > 0.2 ;塑性剪应变es_plastic; 塑性拉应变 et_plastic
z_group(zp) = 'yield'
else
z_group(zp) ='other'
endif
zp =z_next(zp)
endLoop
end
ShowPlasticZones
plo crea qqq
ploadd surf red range group yield
plo add axes green
plo set rot 123 3133
plo set mag 1.5
ret
这个代码中:1,table函数怎么用的;2,为何只固定Y;3.初速度如何取;4,ef ax_str str = 0
pnt = gp_head
loop while pnt # null
if gp_ypos(pnt) < 0.1 then
str = str + gp_yfunbal(pnt)
endif
pnt = gp_next(pnt)
endloop
ax_str = str / pi ; cylinder radius = 1
end 这里不太懂,希望你能讲解下,谢谢