;修正剑桥模型
;cam-clay模型则不需定义弹性模量(E、G、K)等参数,自动计算
;cam-clay模型中需确定8个模型参数(①-⑧)和一个分组名称,手册property中的初始比体积cv(v0)和shear无须给定
def cam_prop
pnt=zone_head
loop while pnt # null
if z_group(pnt)=string(grpnam) then ;note:新增控制分组参数,grpnam=分组名称。
abs_sxx=abs(z_sxx(pnt)) ;|sxx|
abs_syy=abs(z_syy(pnt)) ;|syy|
abs_szz=abs(z_szz(pnt)) ;|szz|
p0=(abs_sxx+abs_syy+abs_szz)/3.0
;cam-clay模型中p、q均须为正值,p0由初应力场确定,故cam-clam定义模型参数前须先已知初应力
p0_effective=p0-z_pp(pnt) ;p0'
;q0=sqrt(((abs_sxx-abs_syy)^2+(abs_syy-abs_szz)^2+(abs_szz-abs_sxx)^2)*0.5)
z_prop(pnt,'mm')=6.0*sin(fai*degrad)/(3.0-sin(fai*degrad)) ;①注三角函数中需将角度转化为弧度
temp1=q0/(z_prop(pnt,'mm')*p0_effective)
pc0=p0_effective*(1.0+temp1^2)*OCR ;先期有效固结压力,用于确定屈服面
v0=1.0+_e0
z_prop(pnt,'cam_cp')=p0_effective ;★重要参数,否则不能正确计算有效应力,提示出错"Mean effective pressure is negative"
z_prop(pnt,'mpc')=pc0 ;②
z_prop(pnt,'poisson')=p_ratio ;③
z_prop(pnt,'lambda')=_lambda ;④
z_prop(pnt,'kappa')=_kappa ;⑤
z_prop(pnt,'mp1')=_mp1 ;⑥
z_prop(pnt,'mv_l')=v0+_lambda*ln(2.0*_cu/(z_prop(pnt,'mm')*_mp1))+(_lambda-_kappa)*ln(2.0) ;⑦
z_prop(pnt,'bulk_bound')=100*40e6 ;⑧
;z_prop(pnt,'bulk_bound')=100*(s_mod+4.0/3.0*s_mod) ;弹性体模上界Kmax
;自动确定Kmax时会出现“property bad”错误提示
;因为弹性上界对计算结果无影响,在不提示Kmax太小的性况下,取值越小计算收敛越快
endif
pnt=z_next(pnt)
endloop
end
model cam-clay
set grpnam='soil_3_x_out' p_ratio=0.24 fai=30 _lambda=0.14 _kappa=0.012 _mp1=1e3 _e0=0.8 _cu=10e3 OCR=1.0 ;模型所需参数
cam_prop
set grpnam='soil_1_x_out' p_ratio=0.24 fai=30 _lambda=0.14 _kappa=0.90 _mp1=1e3 _e0=0.8 _cu=10e3 OCR=1.0 ;模型所需参数
cam_prop
from: http://blog.sina.com.cn/s/blog_6c64ec090101ipvh.html
我的微信公众号
分享科研软件、科研方法,为你的科研助力。
评论