Strosailor 发表于 2008-4-20 13:32:10

求助如何动态杀死高于熔点的单元?

在进行热应力场模拟时,采用顺序模拟的方法,先模拟温度场再模拟应力场。
温度模拟完成以后,存储温度场结果,重新进入前处理进行应力场的模拟,
如何用循环杀死某一时刻温度高于熔点的单元?因为处于熔化状态的单元,考虑应力场没有意义。不让熔化的单元参与应力场的计算。
ANSYS里面可以用TEMP(N)函数提取节点N的温度值,但好像没有函数能提取某一单元的温度值,若根据节点温度的大小判断是否激活该节点所在的单元,但用DO循环的时候没法选取该节点,即没有选取某一节点的函数。。

若用etable 建立温度表,但etable 只能生成最后的温度场表,中间过程的温度没法生成,我 试了好久都失败了。。。。。
   我想实现应力场随时间的变化情况,即动态的过程。。

[ 本帖最后由 Strosailor 于 2008-4-20 13:51 编辑 ]

Strosailor 发表于 2008-4-20 13:33:33

自己顶一下,希望哪位高人指点迷津。

WENUM是定义的存贮节点的数组
*DO,I,1,WENUM                                  !对熔覆区域循环
VSEL,S,mat,,2                                  !选择熔覆单元
ESLV
NSLE,S
*IF,TEMP(I),GE,1300,THEN                        !判断节点I是否高于熔点温度
NSEL,R,I                                        !选取节点I ,问题就在这里,ANSYS不能识别I
ESEL,S                                          !选取节点I所在的单元                           
EKILL,all                                       !杀死该单元
*ENDDO

[ 本帖最后由 Strosailor 于 2008-4-20 13:47 编辑 ]

xjtudacui 发表于 2008-4-20 13:37:58

温度场选用牛顿-拉夫逊法求解。

单元温度由节点温度线性插值得到。

Strosailor 发表于 2008-4-20 13:44:23

谢谢楼上的热情回复。能不能请你再说详细一点?
单元温度由节点温度线性插值?怎么差值?
感激涕零~!~!~!

iomega 发表于 2008-4-20 15:38:38

One simple way I believe is to set temperature dependent mechanical property, e.g, when temperature > Tm, set its mechanical property to be liquid-like.

For your case, another way is to get the center coordinate of each element by
CENTRX(),CENTRY() and CENTRZ() functions. After temperature calculation, use *MOPER command to map the node temperatures into these center coordinates of each element. Then you can kill the elements based on the temperature.

See ansys help file on how to use *MOPER to interpolate the calculated temperature field on user specified coordinates...

Strosailor 发表于 2008-4-22 14:38:56

还有没其他的办法?
谢谢

winfish11 发表于 2009-8-7 14:20:18

楼主不知道你解决了吗?我现在也遇到与你相同的问题,能否把你的完整命令流贴出来呢?
页: [1]
查看完整版本: 求助如何动态杀死高于熔点的单元?