圆管出口温度算出来比能量平衡手算的差了3度,查了半天是壁面热流密度设成了恒定温度,换热没充分发展。验证Nu数之前先想清楚用哪个关联式,层流和湍流是两套完全不同的路子。
层流充分发展,恒热流壁面Nu的理论值是4.36,恒壁温是3.66,跟Re和Pr无关。做层流验证的时候壁面条件选恒定热流,数值给一个正数,比如5000 W/m²,别用恒定温度,恒壁温对应的Nu是3.66但收敛慢,恒热流收敛快而且理论值明确。Re数控制在500到1500之间,确保在层流范围内,入口给充分发展速度剖面,或者给均匀速度然后让管道足够长,L/D大于50,让流动和换热都充分发展。D:\Fluent_work\nu_validation\laminar\下面那个case,Re=1000,Pr=0.7,跑完管子后半段Nu稳定在4.4左右,比理论值高了不到2%,可以接受。
湍流验证用Dittus-Boelter关联式,Nu=0.023Re^0.8Pr^n,加热流体n=0.4,冷却流体n=0.3。Re数范围2500到1.24e5,Pr在0.7到120之间。湍流验证的关键是y+跟壁面处理配合,k-ω SST模型推荐y+小于1,直接解析粘性底层,换热预测准。如果用标准壁面函数,y+要大于30,落在壁面函数的适用范围里。网格方面,边界层第一层高度按y+=1反算,管子内径20mm的话第一层高度大概0.01mm量级,边界层15到20层,增长率1.2,圆柱形管道用扫掠网格,O-grid剖分,轴向网格均匀。
恒定热流边界在Fluent的壁面条件里设,Thermal标签页选Heat Flux,数值填W/m²。想要沿管长线性增加的热流用Expression写,比如5000+100*x/0.4,x是轴向坐标,0.4是管长。报告热流密度用Report→Fluxes,或者TUI命令report/fluxes/heat-flux,选wall面。壁面温度用Report→Surface Integrals→Area-Weighted Average,选wall面,变量选Static Temperature,TUI是report/surface-integrals/area-weighted-average。
局部Nu数的提取有三种方式。CFD-Post里用Expression,在Expressions标签页新建,公式写成h*D/k,h是热传递系数,从Wall Heat Transfer Coefficient变量里读,D是管径0.02,k是流体导热系数,从Thermal Conductivity里读。Fluent内建Custom Field Function也能算,Define→Custom Field Functions里新建,公式同上。Python脚本更灵活,把沿管长的壁面温度和热流密度导出成CSV,后处理里根据局部热流密度和局部壁面温度、流体混合平均温度算h,再算Nu,D:\Fluent_work\nu_validation\scripts\post_nu.py里存着这个脚本。

结果对比画图,横轴用无量纲轴向距离x/D,纵轴用Nu/Nu_db或者直接画Nu,层流参考理论值4.36或3.66画一条水平线,湍流参考Dittus-Boelter画一条曲线。充分发展段的Nu应该稳定在理论值附近,入口段因为热边界层在生长,Nu会比充分发展段高很多,对比的时候只看x/D大于10之后的数据。D:\Fluent_work\nu_validation\下面那个对比图里,层流的入口段Nu到了8以上,x/D到15之后降到4.4附近,跟理论值对上了。湍流用SST k-ω配y+小于1的网格,跑出来Nu比Dittus-Boelter高了5%左右,这个偏差在CFD里算正常,文献里也经常报类似的误差。
验证流程里几个坑。入口给均匀速度还是充分发展剖面,给均匀速度的话入口段长度会偏长,湍流还好,层流的话入口段可能占管长的一半,对比的时候把入口段排除掉就行。出口别用outflow,用pressure outlet,回流的时候outflow会报错。物性用常数还是变物性,验证关联式的时候用常数物性,关联式本身就是在常物性假设下推出来的,用变物性的话物性随温度变化,跟关联式的假设对不上,误差来源就分不清是模型问题还是物性问题。
D:\Fluent_work\nu_validation\下面那个湍流case的y+检查过没,边界层第一层高度设的是0.008mm,算完y+平均0.6,SST模型能直接解析粘性底层,但网格量上去了,轴向扫掠间距0.5mm,周向120个节点,径向40层,跑一个case大概四十分钟。下次把Gnielinski关联式也加进去对比,那个比Dittus-Boelter精度高一点,适用范围也更宽,参数是……
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删