如何在 LBM 中添加或删除流体格子波兹曼方法

问题描述

LBM 关注流体簇,利用宏观流体密度和速度计算平衡分布函数,然后利用演化方程实现系统迭代。但是如果我们在LBM中的点阵网格点上添加相同的流体或不断减少现有的流体,我们应该如何重新计算宏观流体密度和速度?或者应该如何重新计算格子网格点的分布函数LBM 能否模拟流体不断添加或减少到系统中的场景?例如,水不断从水龙头流出。

解决方法

传统的格子-玻尔兹曼方法(例如二维中的 D2Q9 格子)只能应用于不可压缩流。简而言之,这意味着进入域的质量不能超过退出域的质量:域内的质量在整个模拟过程中大致相同。对一般可压缩的 Navier-Stokes 方程的这种简化不仅可以应用于不可压缩的流体(例如水),还可以应用于低马赫数的流动,例如汽车周围的流动(有关更多详细信息,请参阅 here)。而传统的格子-玻尔兹曼方法无法描述多相流和自由表面流以及具有汇和源的流动(这些都会导致系统密度发生变化)。

不可压缩格子-玻尔兹曼方法中的任何入口或出口条件都属于以下类别之一:

  • 周期边界(从一侧退出域的种群在另一侧再次进入域)
  • 压降周期性边界(例如 Zhang/Kwok)用于周期性流动,但附加项用于补偿域内由于摩擦引起的压降
  • 速度和压力边界(通常是速度入口和压力出口):存在各种这些公式以确保分布的矩实际上是守恒的,并且它们在数值上具有不同的特征稳定。它们中的大多数强制执行某种对称性和更高矩的外推。最简单的是 Zou/He 的那些,但 Guo's extrapolation method 之类的其他算法对于解析不足和湍流(高雷诺数流)要稳定得多。 This review 更详细地讨论了不同的问题。

如果您对有关其实际工作原理的更多详细信息感兴趣,可以查看我用 C++ 编写的用于 2D 和 3D 模拟的 this small code

话虽如此,但在研究中存在一些格子玻尔兹曼方法的变体,这些变体允许多分量或多相流(例如通过引入额外的分布)或可压缩流(具有更多离散速度的格子,并且可能是第二个)格)但它们仍然是外来的,你不会在周围找到很多实现。