- 积分
- 3
- 注册时间
- 2006-9-15
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2009-3-1 15:51:49
|
显示全部楼层
来自 安徽淮南
;ex_2_04.dat
DEF _variables
;
; --- To reconstruct the compression analytical curves: ---
_sig_conf = 0.0 ;sig3 confine stress
;_sig_conf = -1.0 ; negative is compression
_max_eyy = -6.0e-2 ;<-- maximum 'driving' strain (contraction negative)
;
; Plastic properties
_sig_ci = 1.0 ; <-- enter UCS as positive always
_mb = 5.0
_s = 1.0
_a = 0.5
_sig3_cv = 1.5 ; <-- enter UCS as positive always
;
_sig_tm2 = - _s*_sig_ci/_mb
;
; Elastic properties
_young = 100
_poiss = 0.35
_bulk = _young/3.0/(1-2*_poiss)
_shear = _young/2.0/(1+_poiss)
;
; Loading
_cyc = 20000 ; <-- number of steps in which load is to be applied
_delta_u = _max_eyy * 1.0
_y_vel = 0.5*_delta_u / _cyc
_minus_y_vel = -_y_vel
;
END
_variables
gen zone brick size 1 1 1
model hoekbrown
prop shear=_shear bulk=_bulk
prop hbsigci=_sig_ci hbmb=_mb hbs=_s hba=_a
prop hbs3cv=_sig3_cv
prop dens = 1.0
apply sxx=_sig_conf
apply szz=_sig_conf
ini sxx = _sig_conf
ini syy = _sig_conf
ini szz = _sig_conf
;
DEF _locptrs
_zp1 = zone_head
_gp11 = gp_near(0, 0, 0)
_gp12 = gp_near(0, 1, 0)
_gp21 = gp_near(1, 0, 0)
_gp22 = gp_near(1, 1, 0)
END
_locptrs
DEF _record_variables
;
_disp_0 = 0.5*(gp_xdisp(_gp11) + gp_xdisp(_gp12))
_disp_1 = 0.5*(gp_xdisp(_gp21) + gp_xdisp(_gp22))
_eps_xx = -(_disp_0 - _disp_1)/1.0
;
_disp_0 = 0.5*(gp_ydisp(_gp11) + gp_ydisp(_gp21))
_disp_1 = 0.5*(gp_ydisp(_gp12) + gp_ydisp(_gp22))
_eps_yy = -(_disp_0 - _disp_1)/1.0
;
_sig_zz = z_szz(_zp1)
_sig_xx = z_sxx(_zp1)
_sig_yy = z_syy(_zp1)
;
_record_variables = 1.0
;
END
apply yvel _y_vel range y 0.9 1.1
apply yvel _minus_y_vel range y -0.1 0.1
his id 1 _record_variables
hist nstep 1000
his id 11 _eps_xx
his id 12 _eps_yy
his id 13 _eps_yy
his id 21 _sig_xx
his id 22 _sig_yy
his id 23 _sig_zz
step _cyc
;
; Copy histories to tables
;
DEF _copy_histories_to_tables
;
loop j (1,2)
loop i (1,3)
itabloc = int(j*10+i)
command
his write itabloc table itabloc
end_command
end_loop
end_loop
;
; Table 111 contains syy stress vs axial strain diagram
; Table 112 contains sxx stress vs axial strain diagram
; Table 113 contains szz stress vs axial strain diagram
; Table 114 contains lateral strain vs axial strain diagram
_n = table_size(11)
loop i (1,_n)
; _sig_yy vs _eps_yy
xtable(111,i) = -ytable(12,i)/_sig_ci
ytable(111,i) = -ytable(22,i)/_sig_ci
; _sig_xx vs _eps_yy
xtable(112,i) = -ytable(12,i)/_sig_ci
ytable(112,i) = -ytable(21,i)/_sig_ci
; _sig_zz vs _eps_yy
xtable(113,i) = -ytable(12,i)/_sig_ci
ytable(113,i) = -ytable(23,i)/_sig_ci
; _eps_xx vs _eps_yy
xtable(114,i) = -ytable(12,i)
ytable(114,i) = -ytable(11,i)
;
end_loop
;
END
_copy_histories_to_tables
;
; Compute analytical solution
;
DEF _analytical_solution
;
; Stress-strain diagram
;
_sig1F = _sig_conf-_sig_ci*(-_mb*_sig_conf/_sig_ci+_s)^_a
_S_s1e1_Elast = _young
_eps1CR = (_sig1F-_sig_conf)/_S_s1e1_Elast
_eps1MAX = _max_eyy
;
; Table 211 contains syy stress vs axial strain diagram
; Table 212 contains sxx stress vs axial strain diagram
; Table 214 contains lateral strain vs axial strain diagram
;
xtable(211,1) = 0.0
xtable(211,2) = -_eps1CR/_sig_ci
xtable(211,3) = -_eps1MAX/_sig_ci
ytable(211,1) = -_sig_conf/_sig_ci
ytable(211,2) = -_sig1F/_sig_ci
ytable(211,3) = -_sig1F/_sig_ci
;
xtable(212,1) = 0.0
xtable(212,2) = -_eps1CR/_sig_ci
xtable(212,3) = -_eps1MAX/_sig_ci
ytable(212,1) = -_sig_conf/_sig_ci
ytable(212,2) = -_sig_conf/_sig_ci
ytable(212,3) = -_sig_conf/_sig_ci
;
; Strain-strain diagram
;
_S_e3e1_Elast = -_poiss
_eps3CR = _eps1CR*_S_e3e1_Elast
_Kpsi_0 = 1 + _a*_mb/(-_mb*_sig_conf/_sig_ci+_s)^(1-_a)
;
if -_sig_conf > _sig3_cv
_Kpsi = 1.0
else
_Kpsi = _Kpsi_0 + _sig_conf/_sig3_cv * (_Kpsi_0-1)
end_if
_S_e3e1_Plast = -_Kpsi / 2.0
_eps3MAX = _eps3CR + (_eps1MAX-_eps1CR)*_S_e3e1_Plast
;
xtable(214,1) = 0.0
xtable(214,2) = -_eps1CR/_sig_ci
xtable(214,3) = -_eps1MAX/_sig_ci
ytable(214,1) = 0.0
ytable(214,2) = -_eps3CR/_sig_ci
ytable(214,3) = -_eps3MAX/_sig_ci
;
END
_analytical_solution
;
table 111 name 'syy vs eyy (FLAC3D)'
table 112 name 'sxx vs eyy (FLAC3D)'
table 113 name 'szz vs eyy (FLAC3D)'
table 211 name 'syy vs eyy (analytical)'
table 212 name 'sxx vs eyy (analytical)'
table 114 name 'exx vs eyy (FLAC3D)'
table 214 name 'exx vs eyy (analytical)'
;
DEF _plot_solutions
;
name1 = 'Triaxial Compression Test'
command
title @name1
plot table 211 line 111 212 line 112 113 &
ymin -1.0 ymax 5.0 alias 'Stress-Axial Strain'
pause
title @name1
plot table 114 214 line ymin -0.2 &
alias 'Lateral Strain-Axial Strain'
endcommand
;
END
_plot_solutions
save ex2_04.sav |
|