yaxiquan 发表于 2009-8-11 10:26:20

请教kn值怎么使kn值随每个时间步而改变?

就是想每步根据节点的应力是拉力还是压力来决定kn的取值,程序见下,可是老是错误,不知道能不能像下面这样直接赋值:in_prop(p_in ,' kn ')=1e12,这句话对不对??可是我把kn改成cohesion,也就是in_prop(p_in ,' kn ')=1e3,就可以计算,为什么这样赋值kn就不行呢?

def kn_change
whilestepping
p_in=i_node_head(i_head)
loop while p_in # null
stress_n=in_nstr(p_in)
if stress_n > 0 then
in_prop(p_in ,' kn ')=1e12
else
   in_prop(p_in ,' kn ')=1e4
endif
p_in = in_next(p_in)
endloop
end
kn_change

haiqsim 发表于 2009-8-11 12:31:36

来讨论下,我是这样理解的:

in_prop(p_in,string)

作用是 返回或设置string的属性值。
可是,你想想,这个string必须得FLAC3D能识别才行吧?

而你说的“用kn不行,用cohesion可以” 的情形,就类似于

在命令流中,你定义材料的体积模量时用的命令是什么?
比如说:
prop bulk=1.5e8
而这个体积模量的力学符号应该是K,那你为什么不用K来定义体积模量参数呢?
因为FLAC3D中就是这么规定的,你用K它就不认!
你想啊,用bulk,它毕竟是个单词,比较容易一眼就看出它的含义。

你那个kn和cohesion的情况,就与此类似。
cohesion是粘聚力吧,它的力学符号应该是C吧?那你用
prop C=10000来定义,倒是可以为FLAC3D程序识别,不过人家可是将C视为cohesion的缩写的,可不是识别单个的作为粘聚力的C符号!

我不知道那个kn是什么本构里用的参数,不过应该是指法向刚度吧?我只在PFC中见过,在flac中还没看到。望高手们来指点。
我这都是一家之言,等高手来指正。

haiqsim 发表于 2009-8-11 12:34:51

刚才查了下,那个kn,只是在interface命令后采用的参数吧,法向刚度?

yaxiquan 发表于 2009-8-11 15:18:02

对呀,是分界面参数,法向刚度。
可是给分界面赋值是就是用的kn啊,比如:
inter 1 prop kn 300e9 ks 300e9 tension 1e10 cohesion 1e3
之类的。
3# haiqsim

yaxiquan 发表于 2009-8-11 15:57:51

太谢谢你了,问题已解决,就像你说的,不能直接用in_prop(p_in ,' kn ')=1e12,而应该写成in_prop(p_in ,'normal stiffness')=1e12,你的回复对我有很大帮助,很感谢!

2# haiqsim
页: [1]
查看完整版本: 请教kn值怎么使kn值随每个时间步而改变?