让边界层的求解飞起来吧
上一篇的结尾答应大家要在这一篇里面介绍壁面函数。
一说到函数,估计又有读者要吐槽,你们是不是又打算列一 堆公式,然后告诉我们,这就是壁面函数,我到现在连拉普拉斯算子和哈密顿算子还没搞清楚呢。额,好吧,我承诺,这篇文章不放任何的公式,给大家一起慢慢白话边界层和壁面函数。只是,大家不要嫌弃我们太啰嗦。
那我们就从边界层的定义说起吧。
边界层的概念
那么问题到底出在哪儿了呢?难道雷诺数不是代表惯性力与粘性力之比?
作为现代流体力学之父,咱们广义的祖师爷普朗特在1904年提出了边界层的概念,并系统性的回答了刚才的问题。普朗特通过观察和推导得出:物体表面存在一个很薄的剪切层,即边界层。边界层之外的流动基本可以看做是无粘的,而紧挨着固体表面的流体分子被吸附在表面上。于是,在固体表面附近,存在着一个法向速度梯度很大的区域,这就是边界层。对于高雷诺数的流动,边界层是很薄的,壁面附近的区域速度梯度很大,与速度梯度成正比的粘性力也非常大,这就是粘性对于高雷诺数流动不可忽略的原因。
边界层的类型
湍流边界层的直观认识
另外上图给出了上述各层对应的Y+的值(为了兑现本文不出现公式的承诺,这儿我就假装大家都知道Y+和U+的概念啦)。其中有几个非常重要的数值,大家可以记住,通常情况下,线性底层位于Y+小于5的区域,而对数层则大致位于Y+为30到500之间的区域。
湍流边界层内湍动能的传播
看到这里,相信大家对于边界层已经有了一个比较清晰的认识了。那么我们在实际的CFD计算里面如何进行求解呢?
01 近壁区的限制
对于大家熟知的RANS方法中的k-epsilon模型,是针对充分发展的湍流才是有效的,只能用于求解湍流核心区域的流动,即较高雷诺数下的流动。而对于边界层,由于壁面的阻碍作用,沿壁面法向的流态变化很大。因此湍流边界层无法用高雷诺数的RANS模型直接求解。
02 如何解决
方法通常有二:
两种方法的优劣:
如果采用第一种方法,给定壁面无滑移条件,即可直接求解,精度高但计算量大;如果采用壁面函数法,由于使用的是一套半经验公式,要求流动处于准平衡态,不适用于流动容易失稳的区域,比如逆压梯度较大的区域或者大分离区,如下图翼型上侧的吸力面区域。
03 对壁面函数的改进
基于上述标准壁面函数的问题,很多软件推出了相应的解决办法。某些RANS软件使用的“非平衡壁面函数”就是其中之一,在标准壁面函数的基础上增加了压力梯度修正项,把应用范围拓宽到分离、再附着等复杂的问题上。
04 RANS壁面函数的实施
在RANS求解器中,计算过程通常是这样的:赏花归去马如飞——去马如飞酒力微——酒力微醒时已暮——醒时已暮赏花归,通过不断迭代获得结果。噢Sorry,计算过程其实是这样的:根据初始流场计算出壁面Y+值——套用壁面函数求得壁面剪切力——计算壁面附近的湍动能生成和耗散——求解湍动能和湍流耗散率的输运方程——更新全场的湍流度——回到起始的步骤,如此迭代求解。遇到较大的逆压梯度,则需在壁面函数中加入压力修正项。
05 PowerFLOW的不同之处
PowerFLOW的高级壁面模型(ABLM)虽然也是考虑压力修正的壁面函数,但由于LBM方法本身是显式的时间推进算法,每个时间步内并没有迭代,所以从第一步的初始流场出发,每时每刻根据壁面外侧的速度和壁面函数联立实时求得壁面剪切力、壁面滑移速度等参数,整个过程也是时间推进的。对于使用了壁面函数的计算而言,最重要的就是准确计算考虑边界层效应的Uslip,尽管边界层并没有直接求解。这句话是不是听上去有点拗口,那就再读一遍。LBM方法的巧妙之处就在于尽管使用了壁面函数,粒子与壁面的碰撞还是能准确的计算,进而提供一个更准确的Uslip。于是ABLM借助LBM+VLES再度自由翱翔。
使用了壁面函数之后,粒子和壁面到底是怎么碰撞的呢?大家可以参照上一篇文章末尾对施加壁面条件的说明,思考一下实施的方式,这也是壁面函数和LBM结合的巧妙之处。
哈哈,没有骗大家吧,全文没有一个公式哦,不知道大家是喜欢看这样的白话呢,还是想要推公式呢?想推公式的同学也不要着急,关注我们的公众号,后续会推送文章进行更高阶的讲述。