格子Botlzmann方法·元素与代码实现
格子Boltzmann方法起源于气体动理学理论,其思想是从气体分子的微观机制研究其宏观特性,如考察气体分子间的相互作用,获得气体的黏性系数、热传导系数和扩散系数等宏观特性;通过考察分子的碰撞和流动过程获得流体的压力、动量、能量等宏观物理量的演变规律。这一过程可由Boltzmann输运方程描述为:
一个完整的格子Boltzmann方法实现主要分为四个元素:格子(离散速度)模型,平衡态分布函数,演化方程和宏观量计算。
格子模型按照维度来说一般分为二维和三维模型,其中二维最常用的为D2Q9模型(注:此处的D2指的是二维平面,Q9指的是9个速度方向),即将二维平面的速度以九个方向的分速度近似,如图1所示:

在程序中实现为:
针对三维问题,最常用的格子模型为D3Q19模型,其示意图为:

在程序中实现为:
定义了格子(离散速度)模型之后,如何设计正确的平衡态分布函数也是格子Boltzmann方法的一个关键元素。对于流体流动问题,平衡态分布函数是面向密度设计的,表达式为:
其中 为权重系数,其取值为:
,
在程序中实现为:
和
平衡态分布函数中的表示离散格子速度,定义为
,
表示格子声速(标量),在D2Q9和D3Q19格子模型中,其定义为
。当我们取
时,平衡态分布函数简化为:
在程序中实现为:
值得注意的是,D2Q9和D3Q19的平衡态分布函数实现是一样的。
当我们使用单松弛,即BGK碰撞模型来简化Boltzmann方程的碰撞项 时,格子Boltzmann方法的演化方程为:
在程序中有两种实现方式,一种是碰撞流动分开两个循环,一种是碰撞流动在一个循环。先说第一种碰撞流动分开的形式,其实现为:
第二种碰撞流动写在一个循环的实现为:
最后一个元素是宏观量密度和速度的计算,其公式为:
,
在程序中实现为:
至此,设计好这四个元素,再结合相应的边界条件即可模拟流体流动。下面给出了一个顶盖驱动流问题的部分模拟结果:

