有一天卢比和钢蛋去湖边钓鱼,无奈钓技有限,鱼儿不肯上钩。许久之后,鱼桶还是空空如也。眼瞅中午到了,午饭还是没有着落,钢蛋有点坐不住了,便发起牢骚,“我们钓的不是鱼,是寂寞啊,下回咱还是把隔壁足球场的球网给拆了,咱们来个一网打尽”。卢比嘲笑到,“你是不是傻?先不说鱼儿在水中的运动是混乱无规律的,你这网眼这么大,比网眼小的鱼早就溜之大吉了。”
卢比说罢,两人都似乎想起了什么,不约而同的陷入了沉思,思绪飞到了折磨二人多年的流体力学之上。而这段悲伤的故事还要从一团涡说起。
涡流的前世今生
小伙伴们都知道,当飞机穿越大气时会产生旋涡。快速飞行的机身对周围的大气产生强烈的扰动,向静止的流场中注入能量,便产生大量的涡流——涡流来源于扰动。
如果我们再仔细观察,会发现飞机飞过后,涡流并不会存在很久,而会很快消散;旋涡中的能量也逐渐消失,这源于一个过程——湍流能级串(Cascade)。如下图所示,大涡逐渐破碎为小涡,小涡再破碎为更小的“迷你涡”,然后逐渐耗散,这个过程从空间上看较为随机,且与当地雷诺数相关。
那么旋涡为什么会耗散呢?当上述的“迷你涡”变得足够小时,根据角动量守恒,涡的角速度将会非常大,意味着局部速度剪切很强;我们知道,当速度剪切较大的时候,粘性变得举足轻重,于是,“迷你涡”就这样轻松的被耗散掉了......
事实上,涡的尺度足够小时,体现为当地雷诺数非常小,粘性力对流体的影响则显著大于惯性力;我们甚至可以认为,在这个极小的空间中,流动已然层流化。
鱼儿运动的规律
随着时间的推移,人们逐渐开始理解涡流的演化,就好像捕鱼达人们也渐渐掌握了鱼儿的运动规律,知道什么时候在哪里可以捉到鱼,并思考应该编织什么样的渔网。那么对于涡流,尤其是复杂湍流中的涡流,从大涡向小涡耗散的表象背后究竟隐藏怎样的奥秘呢?
上个世纪三十年代以后,众多学者们试图用理论的方法来描述涡流演化的现象,其中前苏联天才数学家柯尔莫果洛夫基于统计学理论做出了重大贡献。下图为根据柯尔莫果洛夫的理论总结出来的湍流能量谱,把湍流能量和波数联系到一起。
为了更好的理解湍流中的涡,通常会分根据湍流的演化分为如下四个层级:宏观尺度(与边界条件相关的主流尺度),积分尺度(大涡的典型尺度,与宏观尺度同量级),泰勒尺度(无损的进行能量传递的惯性尺度),耗散尺度(最小涡的尺度,小于此尺度的涡将被耗散)。
简而言之,大涡的尺度取决于边界条件(比如对于整车的尾流,其大涡的尺度和车高为同一量级),而小涡的尺度取决于湍流雷诺数。积分尺度和耗散尺度大致符合关系式:Ɩ0/η ~ReL3/4(其中湍流雷诺数ReL通过积分尺度和湍流脉动速度计算得到)。因此,流动几何不变的情况下,雷诺数越高,耗散尺度越小。
从湍流能量谱的图中,看似得到了涡流变化的规律。但问题在于,一个大涡一旦生成,其全部的能量必然最终耗散到流场中,耗散掉的总能量取决于大涡包含的能量;也就是说,大涡生成的那一刻,就决定了其在流场中的耗散。
参考前述的飞机涡流,其耗散的总能量等于机身对流场的扰动所生成的总能量。关键问题来了,虽然我们知道对于不同的尺度,其所含能量不同,我们也知道能量终究耗散完毕,但耗散的过程可能会千变万化(大涡什么条件下破碎为小涡,什么时候耗散作用开始体现),难以预测。
正如捕鱼达人虽然看到了大大小小的鱼儿跳来跳去,但却无法精确量化他们的尺度,因此在考虑选择什么样的渔网时,也犯起了选择困难症。
捕鱼达人的困局和妥协
于是捕鱼达人开动脑筋,想办法对鱼塘中所有的鱼都做起明确的标识,以图建立渔网的最佳实践——对涡流寻找尽可能准确的数学表达。提到流体的数学描述,当然逃不开“虐我千百遍”的N-S方程,为了省点心力,我们以不可压流体的N-S方程为例,其张量形式如下:
N-S方程看似能够描述流体的运动,但是作为非线性方程界的扛把子,它只有在非常苛刻的条件下,比如极低雷诺数的定常流动等少数情况下,才可能得到稳定的解析解。而随着雷诺数的增大,N-S方程的初边值问题和湍流问题本身的复杂性,目前还看不到求出解析解的苗头。
本着“解不出来就简化”的基本原则,从1890年代开始,流体力学大师雷诺通过经典的染色实验让人们清晰的看到了湍流的本质就是速度的脉动,于是雷诺大胆的将湍流分解为平均速度和脉动速度带入N-S方程并推导雷诺平均的N-S方程;配合上布辛涅司克之前“生搬硬套”提出来的涡粘性假设,将湍流脉动引起的雷诺应力类比成了平均应力;最后现代流体力学之父普朗特更是通过大胆的假设提出了“混合长度模型”求解涡粘性系数,从而让N-S方程求解湍流变成了可能。
继上述各位大佬之后,计算流体力学开启了接近百年的RANS(雷诺平均的N-S方程)时代,通过各种不同的参数来刻画湍流脉动引起的雷诺应力。各路方法八仙过海,各显神通,形成了一幅百家争鸣的局面。
流体力学的捕鱼达人们似乎织出了一张凑合能用的渔网,可是RANS本质上是为了工程化应用而拼凑出来的数学模型,放弃了对非定常湍流信息的模拟,无论渔网有多细,RANS也只能分辨稳态的流场结构。因此,面对很多复杂的瞬态问题,RANS这个渔网也只好被晾起来了。
抓大放小的LES渔网
当RANS这个渔网不好使的时候,也不能放弃捕鱼啊。于是人们逐渐将目光投向了一种更加合理的瞬态计算方法——大涡模拟(LES)。大涡模拟的主要思想可以归纳为一种N-S方程的低通滤波,将小于网格尺度的高频湍流脉动滤掉并收集到亚网格模型中。
这与RANS方法的涡粘性模型看似形式上有异曲同工之妙,但内涵却完全不同。大涡模拟是以时空演化的方式求解湍流,而RANS则直接模化了湍流脉动引起的应力。
最早提出大涡模拟思想的是美国著名的气象学家Smagorinsky,他在求解大气湍流的时候发现,如果数值计算只考虑各向异性的大涡,仿真的结果和实际会存在很大的差异。通过对于实际气象的观察和数值计算的研究,Smagorinsky敏锐的发现这种差异是现有的网格尺度只能直接求解大于网格尺度的涡系结构,而被忽略的小于网格尺寸的涡仍然会影响流场的结构。
于是,作为半个数学家的Smagorinsky也开始玩起了套路,既然亚格子尺度的涡会影响流场的结构,那就在N-S方程中添加一个亚格子的应力项,代替当前网格解析不了的小尺度涡对流场的影响。下面的推导基本上就体现了“只要数学功夫深,铁杵磨成针”的道理。
上述的推导可以看出,大涡模拟的关键落到了最后的Smagorinsky系数Cs。该系数由另一位著名的气象学家Douglas K. Lilly通过引入柯尔莫果洛夫的湍流能量谱计算得出。由于Smagorinsky和Lilly对湍流数值模拟做出的贡献,第一个实用的大涡模拟的湍流模型也由两人的名字共同命名,即著名的Smagorinsky-Lilly模型。
通过前面的介绍,大家可以发现,LES通过直接求解网格尺度以上的大涡来模拟湍流的非定常性,计算的求解精度和网格分辨率息息相关,其网格通常应划分到泰勒尺度以内。
勤劳的捕鱼达人需要根据情况细细编织不同尺度的渔网——网眼大了捞不到鱼,网眼小了又很费力,正如LES的计算量一不小心就爆表了。
为了更好的和鱼儿一起玩耍,捕鱼达人们总是乐此不疲的改进装备。而流体力学的捕鱼达人们为了平衡计算精度和效率,也对LES进行了各种改装,提出了多种混合的LES方法,比如大家熟悉的DES、DDES、IDDES、VLES、CLES等等,那么这些XES的变种渔网是如何在鱼塘里和鱼儿斗智斗勇的呢?敬请大家期待后续的文章。
一网打尽的DNS
有人说,统计方法是人类面对未知的无奈之举——如果我们有无限的计算资源,当然就不用考虑RANS和LES了。我们可以在极小的空间和时间尺度上求解流动从而获得湍流全部的流场细节,就好像用一个网眼无限小的渔网在鱼塘里捕鱼,一定要将所有的鱼儿一网打尽。
这种对所有尺度的湍流都进行直接求解的方法称之为直接数值模拟(DNS),最小的网格尺度要小于耗散尺度。不同于RANS和LES在时空分辨率上的缩水,DNS直接捕捉了湍流的全部细节。不过,大家可以使用前述的耗散尺度和积分尺度之间的关系式,大致估算一下最小的网格尺度,再估算一下计算量,估计就意识到什么是天文数字了。目前DNS只能应用于简单几何的流动机理研究,比如下图的准二维叶型的边界层流动。而波音的大神Spalart更是预测DNS需要到2080年才会进入工程实用领域。
尽管针对具体的流动问题,DNS能够得出N-S方程的数值特解,并得到所有尺度的流动细节。但数值求解不仅依赖于算法,还依赖于准确的初场和边界条件。而湍流问题的高度非线性,又导致其结果对初始条件和边界条件非常敏感。因此就湍流计算而言,DNS仍然任重而道远。
人工智能的渔网?
无论是经典流体力学还是近年来逐渐流行的格子玻尔兹曼方法,学者们都是通过实验观测与数学推导来研究不同渔网的构型。而随着人工智能时代的来临,数据挖掘和机器学习等算法逐渐走向工程实用,流体力学的捕鱼达人们也看到了另外一种可能。
从公开的文献中可以看到,许多学者试图将人工智能和湍流的研究联系起来,并试图构建更精确的湍流模型。比如,利用精细化的流动测试和DNS的仿真结果学习湍流模型的封闭策略,并将其应用于RANS和LES的迭代升级。
小编不禁畅想,或许在不久的将来,捕鱼达人们能编织出一张智能的渔网,自动根据水中鱼儿的特征实时变化,实现真正的智能捕捉。