24小时热门版块排行榜    

查看: 1045  |  回复: 3

chiko75

铜虫 (小有名气)

[求助] ANSYS经典版中,请问如何判断重启动已经成功? 已有1人参与

用生死单元法+重启动模拟激光去除,虽然在后处理中观察到特定温度以上的单元都被杀死,但无法确定重启动是否成功,命令rescontrol,file_summary执行后的弹窗也只能看到前3步的载荷步信息,没有后续载荷步的信息。请问有什么直接证据可以确定重启动已经成功?
命令流如下:
finish
/clear,start
/filname,restart test kill elem,0
/units,si
/prep7
ET,1,SOLID70 $ ET,2,SOLID90

mptemp,1,0,25,100,200,300,400
mptemp,,500,600,700,800,820,850
mptemp,,880,915,950,1083,1200,1500
mpdata,dens,1,1,8000,7990,7973,7942,7913,7880
mpdata,dens,1,,7840,7800,7762,7710,7692,7674
mpdata,dens,1,,7650,7549,7275,7225,7045,6788
mpdata,kxx,1,1,36,36.5,37,37.5,38,38.6
mpdata,kxx,1,,39.2,39.6,40.5,41,41,50
mpdata,kxx,1,,60,80,100,200,350,500
mpdata,c,1,1,402,402.4,412,420,430,446
mpdata,c,1,,455,464,473,482,488,514
mpdata,c,1,,521,527,530,530,530,530
mpdata,enth,1,1,0,25*7990*402.4,100*7973*412,200*7942*420,300*7913*430,400*7880*446
mpdata,enth,1,,500*7840*455,600*7800*464,700*7762*473,800*7710*482,820*7692*488,850*7674*514      
mpdata,enth,1,,880*7650*521,915*7549*527,950*7275*530,1000*7225*530+7225*212e3,1500*7045*530+7045*212e3,2000*6788*530+6788*212e3

w_matrix=0.05 $ l_matrix=0.08 $ h_matrix=0.010 $ h_clad=0.002
esize_ref=0.001 $ D=2*esize_ref     !焊缝宽度
pi=acos(-1)
dists_inc=esize_ref $ v_scan=10e-3 $ temp_preh=298.15
count=4        !l_matrix/v_scan

/com,create volume
block,-D/2,D/2,0,l_matrix,0,h_clad
cm,clad,volu
*dim,dmsn,array,8
dmsn(1)=-w_matrix/2,-6*D,-(1.5*D+2*esize_ref),-1.5*D,1.5*D,(1.5*D+2*esize_ref),6*D,w_matrix/2
*do,i,1,7
        block,dmsn(i),dmsn(i+1),0,l_matrix,0,-h_matrix
*enddo
*del,dmsn,,nopr
allsel
vglue,all

vsel,s,loc,x,-w_matrix/2,-6*D
vsel,a,loc,x,6*D,w_matrix/2
cm,matrix_hex,volu
vsel,s,loc,x,-6*D,6*D
vsel,r,loc,z,0,-l_matrix
cm,matrix_tet,volu
allsel
cmgrp,matrix,matrix_hex,matrix_tet

allsel
lsel,s,loc,x,-1.5*D,1.5*D
lesize,all,esize_ref
lsel,s,loc,x,-(1.5*D+esize_ref)
lsel,a,loc,x,(1.5*D+esize_ref)
lsel,u,tan1,z,1
lsel,u,tan1,z,-1
lesize,all,esize_ref
lsel,s,loc,x,-4*D,-w_matrix
lsel,a,loc,x,4*D,w_matrix
lsel,r,loc,z,-h_matrix/2
lesize,all,4*esize_ref
lsel,s,loc,x,-4*D,-w_matrix
lsel,a,loc,x,4*D,w_matrix
lsel,r,tan1,z,0
lesize,all,4*esize_ref

mat,1 $ type,1 $ mshkey,1 $ mshape,0
vmesh,clad
vmesh,matrix_hex
type,2 $ mshkey,0 $ mshape,1
vmesh,matrix_tet
numcmp,area
vimp,matrix_tet,0,3
vsel,s,,,clad
eslv,s,1
cm,elem_clad,elem
allsel
save

/solu
antype,4
timint,1,therm
solcontrol,on,,
tintp,,,,1,,,,,,
thopt,full,0.05,64
trnopt,full
nropt,full,,on
pred,on,,on
kbc,0
lumpm,0
lnsrch,1
autots,0
ncnv,2
outres,basic,last
outpr,all,all

tunif,temp_preh
allsel
nsel,s,loc,z,-h_matrix
sf,all,conv,5,temp_preh
asel,s,loc,z,-h_matrix+0.0001,0-0.0001
asel,r,ext
sfa,all,,conv,20,temp_preh
asel,s,ext
asel,r,loc,z,0
sfa,all,,conv,40,temp_preh
allsel
t=1e-4
time,t
deltim,5e-5,5e-5,5e-5
solve

count_step=0
rescontrol,define,all,5
num_killelem=50
*dim,kill_elem,,num_killelem
parsav,all,parareco,txt

*do,i,0,count
        !后处理命令插入点
        !******************
        !在非重启动中可被删去
        /post1
        set,last
        allsel
        etable,temp_elem,temp
        esel,s,,,elem_clad
        esel,r,live
        esel,r,etab,temp_elem,653,3000
        *get,num_killelem,elem,,count
        *get,min_killelem,elem,,num,min
        nsle,s,1
        *get,maxy_kill,node,,mxloc,y
        *do,ii,1,num_killelem
                kill_elem(ii)=min_killelem
                min_killelem=elnext(min_killelem)
        *enddo
        parsav,all,parareco,txt
        save
        !******************

        /solu
        antype,,rest        !在非重启动中可被删去/被注释掉
        parres,new,parareco,txt        !在非重启动中可被删去/被注释掉
        trnopt,full
        allsel
        !杀死单元命令插入点
        !******************
        !在非重启动中可被删去
        *if,num_killelem,gt,0,then
                *do,ii,1,num_killelem
                        ekill,kill_elem(ii)
                *enddo
        *endif
        allsel
        *if,maxy_kill,gt,esize_ref,then
                esel,s,,,elem_clad
                nsle,s,1
                nsel,r,loc,y,maxy_kill,0
                esln,r,1
                ekill,all
        *endif
        allsel
        !******************
       
        !******************
        !瞬时求解,只用于在后处理中观察单元是否被杀死,可删除
        BFDELE,all,HGEN
        t=t+1e-4
        time,t
        solve
        !******************
       
        count_step=count_step+1
        disy=i*dists_inc*2
        t=(disy+dists_inc)/v_scan
        !BFDELE,all,HGEN!瞬时求解中可被删去/被注释掉
        esel,s,,,elem_clad
        nsle,s,1
        nsel,r,loc,y,disy-dists_inc,disy+dists_inc,0.00001
        bf,all,hgen,6e10
       
        time,t
        nsubst,5,50,5,1        
        allsel
        SOLVE
        rescontrol,file_summary        !在非重启动中可被删去/被注释掉
        save
*ENDDO
!省略最后一次后处理的命令
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

htbbzzg

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
chiko75: 金币+20, ★★★很有帮助 2023-11-24 17:57:13
可以在设置重启动后,在 solve 命令前增加一个命令:
    /title, rest - "i"  solve
  表示进入了第 i 个循环。求解时该标题应该会显式在屏幕底部。
  没有测试过,试试吧。
2楼2023-11-20 09:07:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chiko75

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by htbbzzg at 2023-11-20 09:07:05
可以在设置重启动后,在 solve 命令前增加一个命令:
    /title, rest - "i"  solve
  表示进入了第 i 个循环。求解时该标题应该会显式在屏幕底部。
  没有测试过,试试吧。

谢谢回答。看起来的确没有能确定重启动成功的直接证据的方法。不过这也是我钻牛角尖吧,不管也不成问题。
3楼2023-11-24 17:58:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

htbbzzg

铁杆木虫 (著名写手)

还有一个办法可以试试:使用命令    /GST, 1
  打开计算过程的追踪曲线,然后观察该曲线的变化情况,看看其中的时间 -  time 是否从前面载荷步的时间开始继续进行计算的。
4楼2023-11-30 09:29:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chiko75 的主题更新
信息提示
请填处理意见