0. 前言
我们在前面的文章介绍过一种现象,那就是网格类型会对计算结果产生影响,详细内容参考之前的文章:一百零四、网格类型会影响Fluent的计算结果吗??
当时的情况就是,相同的模型、相同的计算参数,只是不同的网格类型,计算结果却不相同,而且结果相差还比较大
文章后面的留言很多,大家给出了很多很有意义的建议和想法。
1. 建议总结
上面的建议总结起来大概有两种:
第一、网格划分有问题,需要提高网格质量,比如网格正交性、网格的纵横比、边界层Y+、边界层网格到外流场过渡、边界层厚度等
第二、更改求解器算法,如离散格式改为高阶迎风、双精度计算等。
其中一些建议之前的文章就已经实现了,比如
1.1 网格的纵横比
其实是结构化网格的纵横比更大一些,为了减少网格数量,我把结构化网格的轴向节点数量设置的比较少。而进行多面体网格划分的时候,Fluent Meshing会自动考虑纵横比,不会让纵横比太大。
1.2 边界层Y+
两个网格的Y+都很小,划分网格的过程中,我保证了Y+都小于1,同时两者的边界层数量也相同,都控制为15层。
感觉最大的区别就是边界层网格到外流场过渡,多面体网格的过渡太差了
1.3 双精度问题
之前的计算两种网格都是双精度计算的,实际上使用Fluent大部分计算都应该是双精度计算,目前的电脑性能不在乎多的这点精度。
但据说,有些情况下双精度不收敛,但改为单精度后收敛性会变好一些。
2. 后续的尝试
我后续进行了这两方面的尝试,来看计算结果有没有改进。
2.1 尝试1:边界层网格到外流场过渡
我后面把多面体网格的数量增加到了327W,这样边界层网格到外流场过渡会好很多,而且径向的网格数量也会多一些
327W网格的计算结果和57W网格结果确实有所区别。入口处也更加接近结构化网格的结果。但整体计算结果和结构化网格的计算结果仍然有很大的差距
2.2 尝试2:边界层厚度
至于边界层厚度也就是边界层数量,我使用咱们的小程序“Fluent学习工具”计算的,边界层数量需要27层,总厚度达到了管径的一半。
这里也给出小程序的入口:Fluent学习工具
更改边界层厚度,需要重新划分网格,太麻烦了,这里就不尝试了。
2.3 尝试3:更改压力速度耦合算法
之前的压力速度耦合是Coupled算法,现在改为Phase Coupled SIMPLE算法,结果没有任何影响,多面体网格计算结果和结构化网格结果仍然有较大的差距。
2.4 尝试4:空间离散格式更改为高阶
逐一尝试更改离散格式,发现能量方程和UDS方程必须同时开二阶精度,才能让计算结果和结构化网格结果接近一些。其他物理量的离散格式似乎没什么影响。
能量方程和UDS方程选择二阶迎风后的计算结果。可以看到改为二阶迎风后,确实计算结果和结构化网格的计算结果非常接近了,但仍有一定的差距。
3. 结果差异的原因
我对Fluent数值计算的原理不是那么清楚,之前的文章评论区有很多大佬有非常专业的解答,大家可以看一下。原文链接:一百零四、网格类型会影响Fluent的计算结果吗??
这里说一下我比较浅薄的想法,之所以多面体网格和结构化网格有这样的结果差异,感觉就是因为多面体网格是一种伪收敛。
两种网格收敛的标准都是监测了物理量,确实最后监测的物理量都非常稳定了,即使换成其他的物理量应该也是稳定的。但这能说明计算收敛了吗??
后面我查看了两者的残差结果,发现结构化网格的残差要比多面体网格低很多。结构化网格的残差伪6.277e-3,而多面体网格参数伪2.567e-2。但是两者的残差看起来都还有下降的趋势,但物理量基本不变了。
个人观点,并不是网格类型影响了计算的结果,而是网格类型影响了收敛性,导致一些结果可能没有达到收敛,所以和准确的结果不相同。
这也说明,只看物理量是否变化,并不能作为收敛的依据,还要结合其他的判断条件,比如残差、质量守恒等。
后续,我使用ANSYS mesh画六面体网格,计算结果就和结构化网格的计算结果完全相同了。