CFD计算为什么需要壁面函数?

不论是速度场、温度场还是其他变量,在壁面附近的梯度都变化非常大,而壁面的附近梯度的准确计算对剪切力、换热量等梯度相关的量的计算至关重要。比如,在有壁面限制的速度场中,根据壁面无滑移条件,壁面速度为0,随着离壁面距离增大,速度逐渐增加到主流速度。其中越靠近壁面,速度的变化梯度越大,因此在壁面附近需要相当稠密的网格才能准确的捕捉到这些梯度。

但是当壁面附近网格非常稠密时,就会导致收敛性较差的问题。如图二维机翼外流场网格,表面附近由于网格厚度很薄,就会导致出现非常大的长宽比问

CFD计算为什么需要壁面函数?的图1

题,如果网格扭曲度再增大,那么网格的质量就会变得较差,而求解器面对这些质量差的网格便容易出现求解过程不稳定、收敛性变差的问题。同时网格数量急剧增加,求解时间也相应增加。

对于有限体积网格,存储在网格中心点的变量之间的变化是线性的,因此如前所述,若要对壁面附近的变量准确捕捉,需要网格非常密才有可能。为解决这些问题,可在近壁面处采用较大的网格,而使网格中心到壁面变化用非线性变化函数来模拟,该非线性变化函数也称为壁面函数。

CFD计算为什么需要壁面函数?的图2

既然要用壁面函数来模拟近壁面行为,那么近壁面行为实际如何表现的呢?下图为实验及DNS模拟得到的数据,显示了近壁面处无量纲流速的变化情况。这里说一下y+及U+的含义,y+为与壁面间的无量纲垂向距离,U+为无量纲切向速度,其中摩擦速度μΤ为基于壁面摩擦力得到的参考速度。

CFD计算为什么需要壁面函数?的图3

CFD计算为什么需要壁面函数?的图4

CFD计算为什么需要壁面函数?的图5

一般把近壁面区域分为三个区域,分别为Viscous Sub-layer、Buffer layer、Log-law区域。蓝线和绿线分别为标准壁面函数。由图可知,由于y+是对数坐标,实际上Viscous Sub-layer区域的速度线性分布,Log-law区域的速度log分布,两者分别在Viscous Sub-layer及Log-law region区域拟合的很好,而在Buffer layer区域,两者拟合的都不是很好。

CFD计算为什么需要壁面函数?的图6

方程(1)和(2)分别为蓝线和绿线的函数方程,其中k和E为经验函数,分别取0.4187和9.793。需要注意的是,方程(1)拟合很好的限制条件为y+<5,方程(2)拟合很好的限制条件为30<y+<200。这两个限制条件是后续网格边界层的划分依据。

CFD计算为什么需要壁面函数?的图7

两函数方程的相交点位于y+=11.25,因此可以用分段函数表示该连续函数。但是如前所述,当位于Buffer layer 区域时,即当5<y+<30时,方程拟合的并不好,会和实际数据相差较大,因此CFD网格划分时,不建议把网格节点至于该范围内。

因此这就导致两种不同的网格形式,一种是第一层网格处于Viscous Sub-layer区域,y+<5的稠密网格,一种是第一层网格处于Log-law区域,y+>30壁面函数的网格。

当然也可以采用单个、平滑且在所有y+范围内都能较好拟合的函数,比如Spalding’s wall function,该壁面函数平滑、连续且y+<300范围内都有效。

CFD计算为什么需要壁面函数?的图8

如图所示,Spalding’s wall function在Buffer layer区域也拟合的很好。但实际上大多数CFD程序在Buffer区域仍是采用Viscous Sub-layer和Log-law函数混合的方法。

CFD计算为什么需要壁面函数?的图9

还有一些壁面处理方法常常叫做automatic方法,顾名思义,该方法不需要用户指定使用哪些壁面函数,以及网格划分时考虑y+<5或30<y+<200,CFD程序会评估y+所处的范围,然后自动选择合适的壁面函数。

在CFD计算中,我们需要知道壁面附近的梯度、壁面剪切力等,那么在CFD程序代码中壁面函数如何执行的呢?我们知道,根据无滑移壁面条件,壁面速度为0,Up为壁面临近网格中心节点存储的速度值,由动量方程求解得到。如果Up至壁面的速度变化是线性的,也就是说网格中心节点位于Viscous Sub-layer区域,壁面剪切力求解便非常直接。

CFD计算为什么需要壁面函数?的图10

但是当网格中心Up至壁面的速度变化是非线性的,也就是说网格中心节点位于Log-law区域,此时把30<y+<200条件下的非线性速度壁面函数带入至剪切力公式中,即可求得壁面剪切力。

对于CFD程序代码来说,无论壁面至临近网格中心点速度变化为线性或非线性,都希望用统一的表达方式。因此我们可以把非线性速度变化用线性方式表达,只是近壁面粘度有所不同,这样当网格中心节点30<y+<200时,采用Log-law壁面函数时,就只需要修改近壁面粘度即可。

CFD计算为什么需要壁面函数?的图11

为使两者表达方式更统一、简洁,我们可以把近壁面粘度表达为层流粘度及湍动粘度之和,湍动粘度可表达为如下条件函数形式,当y+<11.25时,此时层流粘度占据主要地位,因此湍动粘度为0。

因此最终不论网格中心点位于什么区域,只需要根据条件对湍动粘度作改变,即可用相同剪切力表达式求出壁面剪切力。

CFD计算为什么需要壁面函数?的图12

好了,说了这么多,y+应该取多少好呢?毕竟y+数值关系到网格边界层划分实际操作部分。总结如下几点:

(1)     尽量避免y+数值位于buffer layer区域,即5<y+<30,因为该区域壁面函数拟合不准确。

(2)     在有强压力梯度或出现流动分离的现象时,y+>30也有可能不够准确,另外y+~5也可能会处在buffer layer区域,因此传统做法或建议是y+~1,比如计算机翼的升力、阻力时,结果比较准确。

(3)     当然,如果有可能的话,最好的做法先进行一个简单的2D模型验证,或者通过实验数据验证模型。


References

https://www.fluidmechanics101.com


公众号.jpg

                                                      介绍CFD理论及相应案例应用,欢迎关注。

CFD计算为什么需要壁面函数?的图14                                                                                                                                                                                                                          

默认 最新
当前暂无评论,小编等你评论哦!
点赞 2 评论 收藏 1
关注