我做了一个激光焊接平板命令流,但运行的结果是生成的温度场上下面对称,即上下两个面都加载了移动热源,而我只需要板的上面加载移动热源,请高手帮我检查一下命令流,到底是哪里出了问题,谢谢了!
命令流如下:
/clear
/filname,seal
/title,temp seal
/units,si
/prep7
lx=0.06
ly=0.03
lz=0.01
lsize=0.0025
pi=3.1415926
r=0.002
v=0.005
p=1200
absor=0.8
tm=lx/v
tinc=lsize/v
max_time=1+tm/tinc
max_x=1+lx/lsize
max_y=ly/lsize
qm=3*absor*p/(pi*r**2)
et,1,solid70
mp,dens,1,7840
mptemp,1,20,100,300,500,700,900,1100
mpdata,kxx,1,1,47,43,38,34,28,25,24
mpdata,c,1,1,472,480,524,615,854,637,595
et,2,surf152
keyopt,2,4,1
keyopt,2,5,0
keyopt,2,8,3
/view,1,1,1,1
block,0,lx,0,ly,0,lz
lesize,1,,,ly/lsize,0.2
lesize,6,,,ly/lsize,5
lesize,3,,,ly/lsize,5
lesize,8,,,ly/lsize,0.2
lesize,2,,,lx/lsize
lesize,4,,,lx/lsize
lesize,5,,,lx/lsize
lesize,7,,,lx/lsize
lesize,9,,,lz/lsize
lesize,10,,,lz/lsize
lesize,11,,,lz/lsize
lesize,12,,,lz/lsize
type,1
mat,1
mshape,0,3d
mshkey,1
vmesh,1
type,2
asel,all
amesh,all
*dim,flux2,table,max_x,max_y,max_time,x,y,time
*do,k,1,max_time,1
*do,i,1,max_x,1
flux2(i,0,k)=(i-1)*lsize
*enddo
*do,j,1,max_y,1
flux2(0,j,k)=(j-1)*lsize
*enddo
*do,i,1,max_x,1
*do,j,1,max_y,1
xcenter=v*(k-1)*tinc
ycenter=0
distance=sqrt(((i-1)*lsize-xcenter)**2+((j-1)*lsize-ycenter)**2)
*if,distance,le,r,then
flux2(i,j,k)=qm*exp(-3*distance**2/(r**2))
*else
flux2(i,j,k)=0
*endif
*enddo
*enddo
flux2(0,0,k)=(k-1)*tinc
*enddo
/solu
antype,trans
tunif,20
kbc,1,timint,on
autots,off
nsel,s,loc,z,0
dstm,symm,z,,
esel,s,type,,1
nesl,s
sf,all,conv,12.5,20
allsel
*do,t,1e-6,tm,tinc
time,t
autots,off
deltim,,,,1
kbc,0
outres,all,all
tsres,erase
sf,all,hflux,%flux2%
solve
*enddo
finish |