用fish实现duncan-chang模型问题请教(附命令流)
我用fish写了一个实现duncan-chang模型(没考虑波松比变化,直接用E和0.33算bulk和shear modulus)。模拟三轴试验没问题,但是模拟实际问题的时候就有问题,主要是因为某些zone会受到拉力,我不知道怎么处理。而且切线模型那个公式在处理实际问题的时候常常会算出很夸张的模量。以前看过有人写过这种外挂的duncan-chang,不知道你们是怎么处理的。我这里贴了一个模拟三轴试验的模型,是没有问题的,有问题的那个算起来太长,就不浪费大伙的时间了。主要是问题我在注释中打了***,希望大家讨论一下给点意见。
new
;; build the sample
gen zone cyl size 1 2 3 p0 0 0 0 p1 0.0372 0 0 p2 0 0 -0.160 p3 0 0.0372 0
gen zone reflect dd 0 dip 90 ori 0 0 0
gen zone reflect dd 90 dip 90 ori 0 0 0
;; give the soil a very large modulus
model elas
prop b=1.96e11 s=7.52e10
;; boundary condition
fix z range z -0.17 -0.15
;; apply sigma3
apply nstress -68.95e3 range cy end1 0 0 -0.17 end2 0 0 0.1 r 0.03 not
;; apply sigma1
apply nstress -68.95e3 range z -0.015 0.015
solve
ini xdis=0 ydis=0 zdis=0
;;;;;;; duncan
def duncan
zn=zone_head
loop while zn # null
ps1=-z_sig1(zn);;获得该zone最大主应力,flac里压应力为负值,所以加了个负号,如果该zone受拉,则假设该zone受很小的压力,因为duncan-chang模型里没有拉力。
if ps1<0
ps1=0.01
endif
ps3=-z_sig3(zn);;最小主应力也是一样
if ps3<0
ps3=0.01
endif
if ps1<ps3;;flac里最大最小主应力是由主应力大小而不是绝对之大小决定的,所以经常是反的,这里检查一下。如果反了换过来。
pst=ps1
ps1=ps3
ps3=pst
endif
tempnum=1-Rf*(1-sin(ff*degrad))*abs(ps1-ps3)/(2*cc*cos(ff*degrad)+2*ps3*sin(ff*degrad)) ;;这是计算切线模量时前边那个系数,这里abs也可以不用因为前边检查过了
;; ***在模拟复杂模型时,有时最大主应力比最小主应力大很多,这个值会变成负值,导致平方后远远大于1,在下面的共式中就会得到很大的E_mod。***
;; 所以我考虑当tempnum<0时干脆就让他等于0.1。但是结果不理想。
E_mod=Ke*101.3e3*(ps3/101.3e3)^n*tempnum^2
;;***上面这个公式是计算切线模量的,但是对于某些最小主应力为拉力的zone,前面设了ps=0.01,这里可能会算出一个很小的模量。这样整个模型很容易坏。***
B_mod=E_mod/3/(1-2*p_ratio)
G_mod=E_mod/2/(1+p_ratio)
zid=z_id(zn)
command
prop bulk=B_mod shear=G_mod range id zid
endcommand
zn=z_next(zn)
endloop
end
set Rf=0.85 cc=0 ff=42 Ke=300 n=0.4 p_ratio=0.33
;; 后面这些是分级加载的fish
table 1 0 0
set large
def haha
loop m (1,13)
devistress=20e3*m
ttstress=-1*devistress-68.95e3
command
duncan
apply nstress ttstress range z -0.015 0.015
solve
endcommand
ppp=find_gp(1)
ttt=-gp_zdisp(ppp)/0.160*100
command
table 1 ttt devistress
endcommand
endloop
end
haha
plot table 1 both 也想做这方面的东西。顶一个:lol 没人感兴趣吗?
好东西。顶一个:lol
好啊
好东西 这个东西是非常经典的!!!必须得顶!!!! 对了,好象没有回弹吧?回复 #7 ansys2007 的帖子
No, I didn't consider the unloading because the load I model is increasing all the way to failure. 能加你QQ吗?我们可以合作 呵呵,如果你有兴趣的话 原帖由 ansys2007 于 2007-7-21 16:36 发表 http://www.simwe.com/forum/images/common/back.gif能加你QQ吗?我们可以合作 呵呵,如果你有兴趣的话
合作哦。有钱分吧,嘿嘿。。。帮楼主问得。嘎嘎 给你发个东西吧,我也不知道有没有用。 首先,楼主定义的弹性模量是卸载及重复加载模量。
楼主在定义弹性模量等参数时,应该是按照m从1到13分别计算,也就是说一共算了13次参数的值,我个人认为应该是每step一次求一次主应力值,由于个参数与主应力有关,也就是每step一次,各参数重新定义一次。不知道楼主怎么样认为? 首先,楼主定义的弹性模量是卸载及重复加载模量。
楼主在定义弹性模量等参数时,应该是按照m从1到13分别计算,也就是说一共算了13次参数的值,我个人认为应该是每step一次求一次主应力值,由于个参数与主应力有关,也就是每step一次,各参数重新定义一次。不知道楼主怎么样认为? 看不懂郁闷 给你发个东西吧,我也不知道有没有用。
附件
2007-8-4 05:40
下载次数: 20 Mduncan.rar (1.72 KB)
请问哥们这个模型能用吗? 关注邓肯张模型 真是好东东!!!!! 也想下载学习学习 也下载看看了 这个东西是非常经典的!!!必须得顶!!!!
页:
[1]
2