大道至简的LBM算法

大道至简的LBM算法

BANC对标

有人说LBM算法引领着CFD技术的未来,也有人说LBM(格子玻尔兹曼方法)不过是哗众取宠,不堪大用。好了,少废话,是骡子是马,咱们先拉出来算一算。相信大家对于Lagoon这个经典的起落架都不陌生,作为专注于飞机噪声对标的BANC(The Benchmark for Airframe Noise Computations)项目中重要的一部分,在AIAA和NASA的号召下,吸引了全球众多科研机构的参与,空客和Onera在论文AIAA-2015-2846中总结了参与Lagoon仿真计算的工具及基本参数,可以看到PowerFLOW的计算时间远远小于其他的工具。

除了计算效率远超其他工具,计算的精度同样优秀,下图对比了起落架表面某点的压力频谱,可以看到PowerFLOW的计算结果在整个频率范围内和实验都吻合的非常好。对于气动噪声和非定常计算这两个领域,大部分CFD工具的表现基本上都是“快的不准,准的不快”。PowerFLOW怎么就能算的又快又准呢?

LBM方法简介

不同于传统CFD方法基于连续流体介质的假定,通过N-S方程描述流体的运动。PowerFLOW采用的LBM(格子玻尔兹曼)方法则在一个更基础的动力学层面,用离散的波尔兹曼方程模拟流体。用这种办法模拟流体有非常多的优点。首先,使用动力学描述,物理模型更简单,比N-S方程应用的范围也更普遍。理论上讲,N-S方程是波尔兹曼方程在特定的时间和空间尺度下的一种近似。物理模型更简单的原因是它仅用捕捉粒子或者粒子微团的动力学行为,而不必艰难地求解大规模非线性偏微分方程。

相对于传统CFD工具从宏观尺度出发,另外一个视角则是从微观着手来研究流体。流体的本质是大量分子运动的集合,但若要完整地重现微观粒子所有的动力学行为,其计算量非常巨大,以当今的计算机水平基本无法进行工程化应用。通过求解空间中粒子微团的速度分布函数来描述宏观运动的方法则具备更好的实用性,LBM就是这种介于宏观和微观之间的介观尺度的方法。

求解的基本思路

不同于传统的欧拉方法,LBM是典型的拉格朗日方法,即在时域上追踪粒子微团的运动。通过下面的示意图,我们一起来看一下在实际求解过程中,粒子微团在两个时间步之间都干了啥。在Timestep 1,我们已知了每个粒子微团的速度和方向,一个时间步之后,这些粒子微团会按照已知的速度和方向运动到下一个节点。

可是,如果两个粒子同时到达同一个节点怎么办呢,比如Timestep 1a所示的情况;毕竟一山不容二虎,只能碰撞了。根据动力学理论,碰撞之后的粒子必然会朝着某个平衡的状态去运动,这个平衡态就是我们的麦克斯韦-玻尔兹曼方程,即描述了平衡态的速度分布状态。

可是碰撞之后的粒子不会直接到达平衡态,需要经过一段时间。尽管我们已经知道在Timestep 2,粒子会朝着平衡态去发展,可是我们不知道它朝着这个平衡态要迈多大的步子。相信大家都能够想到,如果在不考虑外力作用的情况下,粘性对于流体向平衡态的过渡影响最大,粘性越大的流体,越容易到达平衡态。现在,我们的LBM方程是不是已经呼之欲出了。

格子玻尔兹曼算法的基本方程

LBM方程的形式如下:

其中,fi表示i方向的粒子分布函数。ciΔtΔt分别表示空间和时间的递进。为了便于说明,在接下来的说明中将取为1。上式右侧的Ci(x,t)为碰撞项,最常用的BGK的形式表示为:

其中,τ为松弛因子,与粘性的关系为τ0=(τ-1/2)T ,T为格子温度;feq为当地的平衡态分布函数,依赖于当地的流体动力学属性。流场中的基本参数,如密度、速度和内能,可以通过速度分布函数的求和进行计算:

结束语

结合我们刚才介绍的粒子迁移和碰撞的过程,大家是不是发现通过LBM求解宏观流场so easy。我仿佛听到有人在说“我信你个鬼,你这个糟老头子坏得很”。哈哈,虽然LBM的思想和方程非常简单,但是想要得到PowerFLOW这么优秀的CFD工具肯定不会这么容易。接下来三篇文章为您带来PowerFLOW独家技术的解读,敬请期待。

编辑于 07-03

文章被以下专栏收录