格子玻尔兹曼方法 (Lattice Boltzmann Method, LBM)
-
核心思想与起源:从微观粒子到宏观流体
LBM是一种基于介观动力学的流体模拟方法。它不直接求解描述宏观流体运动的纳维-斯托克斯方程,而是通过模拟简化后的微观粒子(虚拟流体粒子)在规则网格(格子)上的碰撞与迁移过程,来恢复出宏观的流体行为。其理论根源是统计力学中的玻尔兹曼方程,但LBM使用的是该方程的一个高度简化、离散化的版本。 -
基本模型:离散速度与格子结构
LBM的第一步是定义离散速度模型。每个网格节点上有一组有限的、固定方向的离散速度向量。最常见的模型是DnQm,其中n代表空间维数,m代表速度方向数。例如,用于二维模拟的D2Q9模型,每个节点有9个速度方向(包括静止状态)。每个方向i对应一个离散速度向量e_i和一个分布函数f_i(x, t)。f_i(x, t)的物理意义是在t时刻、空间位置x处,以速度e_i运动的(虚拟)粒子密度。 -
核心演化方程:碰撞与迁移
LBM的动力学由两个交替进行的步骤驱动,这两个步骤在一个时间步长Δt内完成:- 碰撞步骤:在每个网格节点局部发生。粒子根据碰撞规则相互作用,导致分布函数向该点的局部平衡态弛豫。最常用的碰撞模型是BGK近似,其公式为:
f_i(x, t+) = f_i(x, t) - [1/τ] * [f_i(x, t) - f_i^{eq}(x, t)]
其中,f_i(x, t+)表示碰撞后的分布函数,τ是量纲为一的弛豫时间,f_i^{eq}是局域平衡分布函数。τ直接关联到流体的运动粘度ν。 - 迁移步骤(或称传播步骤):碰撞后的粒子沿其离散速度方向传播到相邻的网格节点。这一步是精确的:
f_i(x + e_i Δt, t + Δt) = f_i(x, t+)
即将碰撞后位于x节点的、方向为i的粒子,移动到下一个时间步的(x + e_i Δt)节点上。
- 碰撞步骤:在每个网格节点局部发生。粒子根据碰撞规则相互作用,导致分布函数向该点的局部平衡态弛豫。最常用的碰撞模型是BGK近似,其公式为:
-
连接微观与宏观:从分布函数到物理量
宏观流体物理量是通过对节点上所有方向的分布函数进行统计矩计算得到的:- 流体密度: ρ(x, t) = Σ_i f_i(x, t)
- 流体动量(速度): ρ(x, t)u(x, t) = Σ_i f_i(x, t) e_i
局域平衡分布函数f_i^{eq}是ρ和u的函数,通常取为低马赫数下对麦克斯韦-玻尔兹曼分布的展开形式,确保了与宏观物理的一致性。
-
关键特性与优势
- 压力显式:压力由状态方程p = c_s² ρ给出,其中c_s是格子声速,无需单独求解压力泊松方程,计算局部且并行性极佳。
- 复杂边界处理:处理复杂几何边界(如多孔介质、颗粒表面)相对简单,边界条件(如无滑移边界)可以通过对边界节点分布函数的局部操作(如反弹格式)实现。
- 多物理场耦合:易于扩展至多相流、多组分流、热对流、化学反应流等复杂问题,通过引入额外的分布函数或力项即可实现。
-
算法实现流程总结
a. 初始化:设定初始的宏观量(ρ, u),并计算出初始的分布函数f_i。
b. 迭代循环(一个时间步):- 在每个节点执行碰撞,按BGK等模型更新分布函数。
- 执行迁移,将分布函数传播到邻居节点。
- 从迁移后的新分布函数中,通过矩计算更新所有节点的宏观量ρ和u。
- 施加边界条件(在碰撞或迁移后对边界节点的分布函数进行特殊处理)。
c. 重复步骤b,直到达到预设的模拟时间或收敛状态。
-
应用领域与总结
LBM广泛应用于计算流体力学领域,特别擅长处理复杂几何边界、孔隙尺度流动、悬浮颗粒流、血液流动、湍流模拟(通过大涡模拟技术)等问题。它是一种介于微观分子动力学与宏观连续介质力学之间的介观数值桥梁,兼具物理清晰性、算法简洁性和高效并行能力。