我本来是做电热场计算的,得出电热场计算结果后想做热应力分析。本来想当然的以为只要转换了之后计算单元、节点以及计算结果还在那里,结果计算完了之后发现对比参考温度30℃整个模型非但没有膨胀反而收缩了,查看原因发现是温度载荷不存在所以系统默认为了0℃。为了导入原来的温度载荷,我写了一段程序如下来完成:
!先得到温度场计算结果
!提取节点温度,以加载到力学计算中
alls
nslv,s
*get,Nnum,node,0,count,
*dim,Ndata,,Nnum,4,1
*do,k,1,Nnum,1
*get, Nonum,node,0,NUM,MAX
Ndata(k,1)=NX(Nonum)
Ndata(k,2)=NY(Nonum)
Ndata(k,3)=NZ(Nonum)
Ndata(k,4)=TEMP(Nonum)
nsel,u,,,Nonum
*enddo
alls
…………………………
!将温度值赋给节点值
*do,k,1,Nnum,1
Nodenum=node(NDATA(k,1),NDATA(k,2),NDATA(k,3))
BF,Nodenum,TEMP,NDATA(k,4)
*enddo
all
这种方式是我自己写的,但是运行速度很慢,而且我担心如果模型很大可能超过table的维数。又查了下资料,是可以直接读取计算结果的,但前提是要有rst文件。我是以前的计算结果,只保存了db文件(带着结果的哦),所以又重新做了计算,得到了rst文件才进行了往下的操作(上面的方法就不需要rst文件了)。但又分了了两种情况。
(1)模型没有变化,单元以及节点都还是原来模型的。
!重新计算得到rst文件
/PREP7
ETCHG,TTS !转换为结构分析
/PREP7
LDREAD,TEMP,,,1, ,'50-20ka','rst',' ' !读入温度载荷
(2)节点单元有变化,重新划分了网格
!重新计算以得到rst文件 ,并查看载荷步为1
/FILNAME,50-20ka,0
finsih
/config,nproc,6
/solu
solve
save
!改变工作文件名进行应力场分析计算
/FILNAME,50-20ka-struc,0
!删除原有的载荷、约束方程等
/PREP7
DADELE,all,VOLT
FDELE,ALL,AMPS
SFADELE,ALL,1,CONV
DDELE,P51X,ALL
alls
cedele,all
alls
CWZDELE,4,1,''
/MREP,EPLOT
!清除热网格,删除热单元,并重新定义单元
alls
vclear,all
alls
!重新划分网格,并采用solid45单元
etdele,all
et,1,45
et,2,45
/INPUT,'re mesh 95','inp','D:\20KA\',, 0
!选择温度体载荷的所有节点并写入节点文件
/PREP7
NWRITE,'node file',' ',' ',0
/POST1
BFINT,'node file',' ',' ','temp node',' ',' ',0, ,0
/INPUT,'temp node','','
!------结构转换--------------------------
alls
/PREP7
ETCHG,TTS
/REPLOT,RESIZE
………………
ACEL,0,0,-9.8, !重力加速度
!------------施加节点温度值----------------------------------
/PREP7
LDREAD,TEMP,,,1, ,'50-20ka','rst',' ' |