本帖最后由 201010202012 于 2012-5-10 21:10 编辑
温度超过熔点的单元处于液态,它的应力应变应该为0,既然是液态的话可以将热膨胀理解为流动,所以可以将其杀死。但是由于材料属性设置了高温下的热膨胀系数和弹模及屈服极限等,我觉得不杀死超过熔点的单元也是可以说得通的。下面是我做的杀死高温单元的命令流,可以交流下:、
!*******把每个单元号码由小到大按顺序存下来*********
*get,emax,elem,,count
*dim,nodelem,,emax,8
*dim,ne,,emax
ne(1)=1
*do,m,2,emax
*get,ne(m),elem,ne(m-1),nxth
*enddo
!*************把每个单元的节点号码存下来************
*do,p,1,emax
esel,s,elem,,ne(p)
nsle,s,all
*get,nodecount,node,,count!得到每个单元上的节点个数
*do,q,1,nodecount
*get,nodelem(p,q),elem,ne(p),node,q
*enddo
*enddo
TIME=1
TIME_INC=1
CSYS,1
*DO,t,1,32,1
/solu
esel,s,mat,,2
nsle,s,all
nsel,r,loc,y,0,360/32*t
esln,r,1
ealive,all
alls
antype,,rest
ldread,temp,t+1,,,,,rth
!***************模拟熔池0应力**************
*do,p,1,emax
esel,s,elem,,ne(p)
nsle,s,all
*get,nodecount,node,,count
ttemp=0
*do,q,1,nodecount
*get,ttemp1,node,nodelem(p,q),ntemp
ttemp=ttemp+ttemp1
*enddo
ttemp=ttemp/nodecount !计算不同节点个数单元的平均温度
*if,ttemp,ge,1300(熔点温度),then
ekill,ne(p)
*endif
*enddo
TIME,TIME
nsubst,1
alls
solve
TIME=TIME+TIME_INC
esel,s,mat,,2 !激活上一步被杀死的单元
nsle,s,all
nsel,r,loc,y,0,360/32*t
esln,s,1
esel,a,mat,,1
ealive,all
*enddo |