2. 作用力模型

文档B站视频讲解:

2.1. 单松弛作用力模型

标准LBGK碰撞方程为:

\[ f_i^*(\boldsymbol{x}, t) = f_i(\boldsymbol{x}, t) - \frac{1}{\tau} \left[ f_i(\boldsymbol{x}, t) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}) \right] \]

其中平衡态分布函数 \(f_i^\mathrm{eq}(\rho, \boldsymbol{u})\)的形式为:

\[ f_i^\mathrm{eq}(\rho, \boldsymbol{u}) = w_i \rho \left[ 1 + \frac{\boldsymbol{e}_i \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{e}_i \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{\boldsymbol{u} \cdot \boldsymbol{u}}{2 c_s^2} \right] \]

迁移步为:

\[ f_i(\boldsymbol{x} + \boldsymbol{e}_i \Delta t, t + \Delta t) = f_i^*(\boldsymbol{x}, t) \]

宏观量的计算:

\[ \rho = \sum_i f_i, \quad \boldsymbol{u} = \ \frac{\sum_i f_i \boldsymbol{e}_i}{\rho} \]

符号定义为:

  • \(f_i(\boldsymbol{x}, t)\): 位置 \(\boldsymbol{x}\)、时刻 \(t\) 的分布函数

  • \(f_i^\mathrm{eq}(\rho, \boldsymbol{u})\): 平衡态分布函数

  • \(\boldsymbol{F}\): 作用在节点上的力

  • \(\boldsymbol{u}\): 宏观速度

  • \(\tau\): 弛豫时间,与粘度相关 \(\nu = \delta_t c_s^2 (\tau - 0.5)\)

2.1.1. Guo et al. (2002) 格式

文献:Guo Z, Zheng C, Shi B. Discrete lattice effects on the forcing term in the lattice Boltzmann method[J]. Physical Review E, 2002, 65(4): 046308.

这是最标准、应用最广泛的模型,通过严格推导消除了离散晶格效应。

  • 碰撞方程: 在标准 LBGK 方程中加入源项 \(S_i\)

    \[ f_i(\boldsymbol{x} + \boldsymbol{e}_i \Delta t, t + \Delta t) = f_i(\boldsymbol{x}, t) - \frac{1}{\tau} \left[ f_i(\boldsymbol{x}, t) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}) \right] + \Delta t S_i \]
    \[ S_i = \left( 1 - \frac{1}{2\tau} \right) w_i \left[ \frac{\boldsymbol{e}_i - \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{e}_i \cdot \boldsymbol{u})}{c_s^4}\boldsymbol{e}_i \right] \cdot \boldsymbol{F} \]
  • 宏观速度计算: 实际的流体宏观速度 \(\boldsymbol{u}\) 必须包含半步长的力修正:

    \[ \boldsymbol{u} = \frac{\sum f_i \boldsymbol{e}_i}{\rho} + \frac{\Delta t \boldsymbol{F}}{2\rho} \]

2.1.2. He et al. (1998) 格式

文献:He X, Shan X, Doolen G D. Discrete Boltzmann equation model for nonideal gases[J]. Physical Review E, 1998, 57(1): R13-R16.

该作用力格式在低马赫数下与Guo et al. (2002)的作用力格式一致

  • 碰撞方程: 在标准 LBGK 方程中加入源项 \(S_i\)

    \[ f_i(\boldsymbol{x} + \boldsymbol{e}_i \Delta t, t + \Delta t) = f_i(\boldsymbol{x}, t) - \frac{1}{\tau} \left[ f_i(\boldsymbol{x}, t) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}) \right] + \Delta t S_i \]
    \[ S_i = \left( 1 - \frac{1}{2\tau} \right) \frac{\boldsymbol{F} \cdot (\boldsymbol{e}_i - \boldsymbol{u})}{\rho c_s^2} f_i^\mathrm{eq}(\rho, \boldsymbol{u}) \]
  • 宏观速度计算: 实际的流体宏观速度 \(\boldsymbol{u}\) 必须包含半步长的力修正:

    \[ \boldsymbol{u} = \frac{\sum f_i \boldsymbol{e}_i}{\rho} + \frac{\Delta t \boldsymbol{F}}{2\rho} \]

2.1.3. Exact Difference Method (EDM)

文献:Kupershtokh A L, Medvedev D A, Karpov D I. On equations of state in a lattice Boltzmann method[J]. Computers & Mathematics with Applications, 2009, 58(5): 965-974.

由Kupershtokh et al. (2009)提出,常用于多相流和高密度比模拟。

  • 碰撞方程

    \[ f_i(\boldsymbol{x} + \boldsymbol{e}_i \Delta t, t + \Delta t) = f_i(\boldsymbol{x}, t) - \frac{1}{\tau} \left[ f_i(\boldsymbol{x}, t) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}^*) \right]+ \Delta S_i^\mathrm{EDM} \]
    \[ \Delta S_i^\mathrm{EDM} = f_i^\mathrm{eq}(\rho, \boldsymbol{u}^* + \Delta \boldsymbol{u}) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}^*) \]

    其中\(\boldsymbol{u}^* = \frac{\sum f_i \boldsymbol{e}_i}{\rho}\) 是原始矩这一时刻的速度,\(\Delta \boldsymbol{u} = \frac{\boldsymbol{F} \Delta t}{\rho}\)是由于力产生的速度增量。

  • 宏观速度

    \[ \boldsymbol{u} = \frac{\sum f_i \boldsymbol{e}_i}{\rho} + \frac{\Delta t \boldsymbol{F}}{2\rho} \]
  • 特点: 非常稳健,不需要计算复杂的梯度项,直接利用平衡态函数的稳定性。

2.1.4. Shan-Chen (1993) 格式

文献:Shan X, Chen H. Lattice Boltzmann model for simulating flows with multiple phases and components[J]. Physical Review E, 1993, 47(3): 1815.

这是经典的 LBM 多相流模型(SC模型)中原本采用的受力方式。它不是添加源项 \(S_i\),而是通过修改平衡态速度来引入力的作用。

  • 碰撞方程

    \[ f_i(\boldsymbol{x} + \boldsymbol{e}_i \Delta t, t + \Delta t) = f_i(\boldsymbol{x}, t) - \frac{1}{\tau} \left[ f_i(\boldsymbol{x}, t) - f_i^\mathrm{eq}(\rho, \boldsymbol{u}^\mathrm{eq}) \right] \]

    我们不再修改碰撞方程的形式,而是用一个新的“平衡态速度”\(\boldsymbol{u}^\mathrm{eq}\) 来计算 \(f_i^\mathrm{eq}\)

    \[ \boldsymbol{u}^\mathrm{eq} = \frac{\sum f_i \boldsymbol{e}_i}{\rho} + \frac{\tau \boldsymbol{F}}{\rho} \]
  • 宏观速度: 注意:在标准的 Shan-Chen 实现中,模拟过程中的宏观速度的定义仍为原始矩

    \[ \boldsymbol{u} = \frac{\sum f_i \boldsymbol{e}_i}{\rho} \]

2.2. 多松弛作用力模型

未完待续…

2.3. 代码下载

单松弛作用力模型.zip


如果您觉得这个项目对您有帮助,可以考虑用以下方式支持我:

  • ☕ 请我喝杯咖啡

如果条件允许,欢迎捐赠支持
每一分都是对我莫大的鼓励,让我能投入更多时间维护和更新。

  • 📄 引用我的文章

如果暂时不便捐赠,适当引用我的文章也是极好的支持!
您的引用能帮助这个工作获得更多关注,同样让我感到无比欣慰。

无论哪种方式,都是对我的巨大支持!🙏感谢您让开源世界更美好!✨