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                                                                                                                                                                                                                          

CFD流体力学及仿真

CFD计算为什么需要壁面函数?的评论0条

    暂无评论

    CFD计算为什么需要壁面函数?的相关案例教程

    CFD-1200: CFD Meshing with Automatic BL Thickness Reduction 1. Load the CFD User Profile 2. Open the Model File 安装目录下的: manifold_inner_cylinder.hm 网格文件。 3. Check That the Surface Elements Define a Clo
    With the aim to shorten the lead times for the aerodynamics simulations with CFD programs of Ansys Fluent significantly, the Volvo Car Corporation has analyzed, optimized and partially automated all p
    什么是颗粒两相流? 颗粒-流体两相流在许多行业中都会遇到,包括能源、农业、采矿、食品、制药等。 他的特点是:颗粒(离散相)被气体或液体(连续相)夹带和输运。颗粒和流体介质之间存在质量,动量和能量传递,而且颗粒之间,颗粒和固体壁面也发生碰撞。 模拟颗粒流的数值方法 颗粒相和流体相可以在不同的长度尺度上模拟,通常分为2类:宏观方法(连续介质)和微观方法(离散介质) Fluid – Resolved E
    看了官方的宣传资料,居然说几年前就有了,但是Cadence 才刚收购NUMECA和pointwise。而根据其官方油管宣传视频可见软件标识还是OMNIS。 Omnis/Hexpress – Surface to volume meshing approach Omnis/Hexpress extends its unstructured mesh generation tool set with
    我们在进行CFD计算时,总是会遇到各种各样的收敛问题,分析影响收敛的因素包括:网格划分策略,模型选取,参数设置,边界条件等等。在各种各样的因素当中,网格问题通常占据了一半以上的比重,那么怎样的网格才算是一个好的网格呢,今天我们就来扒一扒这个问题。 1. 能够保持几何所需要的重要细节(最基本) (1)小的/不必要的特征可以抑制或适当简化(如圆角等) (2)简化的原则取决于:这些细节对流动及传热或其它
    硕士/工程师
    影响力
    粉丝
    内容
    获赞
    收藏
      项目客服
      培训客服
      0 1