FLAC3D手册部分例题代码Example 8.1 BEAM PM.DAT
DEF _variables
; geometry
_length = 10.0
_nbeam = 20
; plastic bending moment
_Mp = 50.0
_negMp = -_Mp
; iteration procedure
_w_min = 5.5
_w_max = 6.5
_w_incr = 0.05
_limit_step = 100000
_root_fsave = ’beam_respm’
; computed variables
_nnode = 2
_del_length = float(_length/_nbeam)
END
_variables
sel beam begin=(0.0, 0.0, 0.0) end=(_length, 0.0, 0.0) nseg=_nbeam
; beam properties
sel beam prop emod=210e3 nu=0.3
sel beam prop XCArea=1.0 XCIy=0.083 XCIz=0.083 XCJ=1.25e-4 pmom _Mp ; for external nodes
sel node fix x y z xr zr range id=1
sel node fix y z xr zr range id=2
; apply bending moment
sel node apply mom= (0 _negMp 0) range id=1
;
set mec step=_limit_step
DEF _find_w_crit
_flag_continue = 1
_accum_cycles = 0
_load = _w_min
z_load = - _load
_counter = 1
loop while _flag_continue = 1
command
history reset
his id=10 unbal
his id=20 sel node xdisp id= _nnode
his id=21 sel node xvel id= _nnode
his id=30 sel node ydisp id= _nbeam
his id=31 sel node yvel id= _nbeam
sel beam apply zdist z_load
solve ratio 1.0e-5 ;
end_command
_solve_cycles = step - _accum_cycles
_accum_cycles = _accum_cycles + _solve_cycles
_filename = _root_fsave + ’_’ + string(_counter)+’.sav’
command
save @_filename
end_command
_line = ’Load = ’+st ring(_load)
_out = out(_line)
_line = ’Case just solved is STABLE ...’
if _solve_cycles = _limit_step
_flag_continue = 0 ; cycles reached limit (unstable case)
_line = ’Case just solved is UNSTABLE (maximum steps reached)...’else
_load = _load + _w_incr
z_load = - _load
if _load > _w_max
_flag_continue = 0
_line = ’Case just solved is STABLE and the ’
end_if
end_if
_out = out(_line)
_line = ’Case stored in file: ’+_filename
_out = out(_line)
_counter = _counter + 1
end_loop
END
set log on
_find_w_crit
set log off
return
Wheel Load over a Buried Pipe.DAT
gen zon radcyl p0 0,0,0 p1 3.4,0,0 p2 0,1,0 p3 0,0,3.4 &
p4 3.4,1,0 p5 0,1,3.4 p6 3.4,0,3.4 p7 3.4,1,3.4 &
p8 2,0,0 p9 0,0,2 p10 2,1,0 p11 0,1,2 &
size 5 2 8 3
gen zon radcyl p0 0,0,0 p1 0,0,-2.4 p2 0,1,0 p3 3.4,0,0 &
p4 0,1,-2.4 p5 3.4,1,0 p6 3.4,0,-2.4 p7 3.4,1,-2.4 &
p8 0,0,-2 p9 2,0,0 p10 0,1,-2 p11 2,1,0 &
size 5 2 8 3
gen zone brick p0 3.4,0,0 p1 7,0,0 p2 3.4,1,0 p3 3.4,0,3.4 &
size 6 2 4 rat 1.1
gen zone brick p0 3.4,0,-2.4 p1 7,0,-2.4 p2 3.4,1,-2.4 p3 3.4,0,0 & size 6 2 4 rat 1.1
gen zone reflect norm 0,-1,0 ori 0,1,0
gen zone reflect norm 0,-1,0 ori 0,2,0
gen zon radcyl p0 0,4,0 p1 3.4,4,0 p2 0,12,0 p3 0,4,3.4 &
p4 3.4,12,0 p5 0,12,3.4 p6 3.4,4,3.4 p7 3.4,12,3.4 &
p8 2,4,0 p9 0,4,2 p10 2,12,0 p11 0,12,2 &
size 5 6 8 3 ratio 1 1.2
gen zon radcyl p0 0,4,0 p1 0,4,-2.4 p2 0,12,0 p3 3.4,4,0 &
p4 0,12,-2.4 p5 3.4,12,0 p6 3.4,4,-2.4 p7 3.4,12,-2.4 &
p8 0,4,-2 p9 2,4,0 p10 0,12,-2 p11 2,12,0 &
size 5 6 8 3 ratio 1 1.2
gen zone brick p0 3.4,4,0 p1 7,4,0 p2 3.4,12,0 p3 3.4,4,3.4 &
size 6 6 4 rat 1.1 1.2
gen zone brick p0 3.4,4,-2.4 p1 7,4,-2.4 p2 3.4,12,-2.4 p3 3.4,4,0 & size 6 6 4 rat 1.1 1.2
model mohr
ini dens 2.0
set grav 0 0 -10
prop bulk 65000 she 30000
prop coh 5.0 fric 34 ten 1.0 dil 20
set large
fix x y z range z -2.5 -2.3
fix x range x -.1 .1
fix x range x 6.9 7.1
fix y range y -.1 .1
fix y range y 11.9 12.1
;
hist unbal
hist gp zdisp 0,1.0,3.4
hist gp zdisp 0,1.0,2
save pipe_geo.sav
;
; add pipe
sel shell range cyl end1 0 0 0 end2 0 12 0 rad 2
sel shell prop iso 227e6 0.25 thick 0.012
sel node fix y xr zr range y -.1 .1
sel node fix y xr zr range y 11.9 12.1
sel node fix x yr zr range x -.1 .1
solve
save pipe_ini.sav
ini xdis 0.0 ydis 0.0 zdis 0.0
; apply wheel load at surface
apply zvel -2.5e-5 range x -.1 .90 y 0.9 1.6 z 3.3 3.6 def p_load
load_head = null
pnt = gp_head
loop while pnt # null
if gp_zpos(pnt) > 3.3 then
if gp_xpos(pnt) < 0.90 then
if gp_ypos(pnt) < 1.6 then
if gp_ypos(pnt) > 0.9 then
mpnt = get_mem(2)
mem(mpnt) = load_head
mem(mpnt+1) = pnt
load_head = mpnt
endif
endif
endif
endif
pnt = gp_next(pnt)
endloop
end
p_load
;
def w_load
pnt = load_head
wload = 0.0
loop while pnt # null
wload = wload + gp_zfunbal(mem(pnt+1))
pnt = mem(pnt)
endloop
w_load = wload / 0.40
end
hist w_load
hist gp zdisp 0,1.0,3.4
step 6000
save pipe_ld.sav
; stress recovery ...
sel recover surf surfx 1 2 3
def z_dfish
z_d = 0.006
end
z_dfish
sel recover stress depth_fac z_d
def mises
max_mises = 0.0
pnt_se = s_head
loop while pnt_se # null
y_pos = s_pos(pnt_se,2)
if y_pos < 2.0 then
sig_xx = sst_str(pnt_se,0,1)
sig_yy = sst_str(pnt_se,0,2)
sig_zz = sst_str(pnt_se,0,3)
sig_xy = sst_str(pnt_se,0,4)
sig_yz = sst_str(pnt_se,0,5)
sig_xz = sst_str(pnt_se,0,6)
mstr = (sig_xx + sig_yy + sigzz) / 3.
dsxx = sig_xx - mstr
dsyy = sig_yy - mstr
dszz = sig_zz - mstr
dsxy = sig_xy
dsyz = sig_yzgetsavefilename
dsxz = sig_xz
vmstr2 = 1.5 * (dsxx*dsxx + dsyy*dsyy + dszz * dszz)
vmstr2 = vmstr2 + 3. * (dsxy * dsxy + dsys * dsyz + dsxz * dsxz) if vmstr2 > 0.0 then
sr_vmstr = sqrt(vmstr2)
else
sr_vmstr = 0.0
endif
max_mises = max(max_mises,sr_vmstr)
endif
pnt_se = s_next(pnt_se)
endloop
end
mises
print max_mises
ret

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。