daytime123 发表于 2010-1-7 11:09:10

如何添加流场分析得出来的温度值?

这个问题发了很多次,但至今仍未得到答案,很着急。再次恳请明白人给予指点!
做管道热应力分析,先用FLOTRAN计算管内对流换热系数从而求出管壁内的温度分布,然后将温度场施加到结构分析单元上进行热应力分析。但是温度好像只存在于rth文件中,只见过ldread,temp,,,,,,rth,而流场计算结果只有rfl文件,虽然流场计算也能得到温度分布,但温度应当如何提取出来呢?我试过ldread,temp,,,,,,rfl,是错的,真不知道这种问题应该怎么处理。
这个问题困扰了我有一个多月,也没有人可以讨论的,非常沮丧。还望有高人给我指一条明路,万分感谢!

daytime123 发表于 2010-1-11 09:27:01

有一个比较笨的办法不知道行不行,就是先把流场计算中求解出来的内壁面和外壁面上的节点温度值取出来,作为边界条件附加在温度单元上,然后用稳态求解0.01S得到整个壁面中的温度分布,这样就可以得到rth文件了。但这样温度场的结果可能不如直接由文件得到的那么准确。
此外我还有一个问题:如果内外壁面上的节点很多的话,我如何把它们的温度都拿出来,然后再赋值给温度单元上的对应节点呢?一个节点一个节点的逐一操作吗?

daytime123 发表于 2010-1-15 20:39:58

本帖最后由 daytime123 于 2010-1-15 21:01 编辑

进过几天的研究与思考,我算是解决了这个问题的关键点,特张贴出来,以感谢给我提供过帮助的此论坛。
我的解法的关键是:绕开对温度文件的读入,直接加载每个节点上的温度值。这个思路不局限于本例的流固耦合问题,所以我准备举一个间接法求解热应力的例子,通过结果对比来说明使用这种方法的合理性。
由于只是一个小例子,模型特别简单,就是一个二维轴对称的矩形,所以就不详细描述了,只张贴出来命令流,大家一看便明白。

一、常用的间接法求解过程:
finish
/clear
/filname,example1,1
/prep7
et,1,plane55,,,1                  ! 定义轴对称温度场分析单元
mp,kxx,1,1.2                  !输入材料热性能参数
rectng,0.2,0.8,0,0.05         !创建几何模型
type,1
lsel,s,line,,1,3,2                !划分网格
lesize,all,,,10
lsel,s,line,,2,4,2
lesize,all,,,2
amesh,1
finish
/solu                              !热传导求解
antype,static
lsel,s,line,,4
nsll,s,1
d,all,temp,80                  !施加温度载荷
lsel,s,line,,2
nsll,s,1
d,all,temp,10
allsel
outpr,basic,all
solve
finish
/post1                           !进入后处理
plnsol,temp                      !输出温度场

/prep7                            !重新进入前处理,进行热应力耦合分析
etchg,tts                         !转化单元类型,温度—结构
keyopt,1,3,1                  !定义单元关键字选项
keyopt,1,6,1
mp,ex,1,120e9               !输入材料结构性能参数
mp,alpx,,1.3e-6
mp,nuxy,1,.3
lsel,s,line,,3
nsll,s,1
cp,1,uy,all                     !耦合节点
allsel
cp,2,ux,1,14,24
cp,3,ux,2,12,13
finish
/solu                              !热应力求解
antype,static
d,1,uy,,,11                     !施加位移约束
ldread,temp,,,,,,rth          !导入前面计算出来的温度场文件
solve
finish
/post1                            !进入后处理
plnsol,s,x                        !输出x方向的应力场

nsel,s,loc,x,0.2                !以下为输出沿矩形最上面的边的温度分布曲线
nsel,r,loc,y,0.05
*get,node1,node,,num,max
nsel,s,loc,x,0.8
nsel,r,loc,y,0.05
*get,node2,node,,num,max
allsel
path,spath1,2,,30
ppath,1,node1
ppath,2,node2
pdef,sx,s,x
plpath,sx

daytime123 发表于 2010-1-15 20:40:58

本帖最后由 daytime123 于 2010-1-15 21:02 编辑

二、本人使用的手动输入节点温度法
Finish                   !(从此处到“——”处命令无变化)
/clear
/filname,example2,1
/prep7
et,1,plane55,,,1
mp,kxx,1,1.2
rectng,0.2,0.8,0,0.05
type,1
lsel,s,line,,1,3,2
lesize,all,,,10
lsel,s,line,,2,4,2
lesize,all,,,2
amesh,1
finish
/solu
antype,static
lsel,s,line,,4
nsll,s,1
d,all,temp,80
lsel,s,line,,2
nsll,s,1
d,all,temp,10
allsel
outpr,basic,all
solve
finish
/post1
plnsol,temp
—————————————————
allsel
nsel,all
*get,n1,node,,num,min            !最小节点值
*get,n2,node,,num,max         !最大节点值
n3=n2-n1+1                           !总节点数
*dim,abc,array,n3                  !定义一个记录所有节点温度的数组
*do,i,1,n3
*get,abc(i),node,n1+i-1,temp   !给数组赋温度值
*enddo

——————————————————
/prep7                         !(从此处到“——”处命令与example1中的相同)
etchg,tts
keyopt,1,3,1
keyopt,1,6,1
mp,ex,1,120e9
mp,alpx,,1.3e-6
mp,nuxy,1,.3
lsel,s,line,,3
nsll,s,1
cp,1,uy,all
allsel
cp,2,ux,1,14,24
cp,3,ux,2,12,13
finish
/solu
antype,static
d,1,uy,,,11
——————————————————
*do,i,1,n3
bf,n1+i-1,temp,abc(i)               !给结构单元上的所有节点赋温度值
*enddo

——————————————————
Solve                         !(从此处到结束的命令与example1中的相同)
finish
/post1
plnsol,s,x

nsel,s,loc,x,0.2
nsel,r,loc,y,0.05
*get,node1,node,,num,max
nsel,s,loc,x,0.8
nsel,r,loc,y,0.05
*get,node2,node,,num,max
allsel
path,spath1,2,,30
ppath,1,node1
ppath,2,node2
pdef,sx,s,x
plpath,sx

大家有兴趣的话可以分别运行一下这两段程序,会发现两种解法得出来的应力分布图是一样的。在这里我只张贴出沿矩形最上面那条边的温度分布曲线:
1、
2、
我们发现它们的数值是完全一样的。这说明我使用的这种方法可行。
这仅仅是个简单的例子,用来说明我的思路,有不足或错误的地方还望大家不吝赐教!
页: [1]
查看完整版本: 如何添加流场分析得出来的温度值?