# 作用力模型 文档B站视频讲解: > [LBM中的单松弛作用力模型](https://www.bilibili.com/video/BV166rvBTExE/) ## 单松弛作用力模型 **标准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)$ ### 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} $$ ### 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} $$ ### 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} $$ * **特点**: 非常稳健,不需要计算复杂的梯度项,直接利用平衡态函数的稳定性。 ### 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} $$ --- ## 多松弛作用力模型 未完待续... ## 代码下载 [单松弛作用力模型.zip](https://raw.githubusercontent.com/JR-LBM-THU/JRLBM-tutorial/main/docs/source/LBM模型速查/files/单松弛作用力模型.zip) --- **如果您觉得这个项目对您有帮助,可以考虑用以下方式支持我:** - ☕ 请我喝杯咖啡 > 如果条件允许,[欢迎捐赠支持](../支持与捐赠/支持与捐赠.md)! > 每一分都是对我莫大的鼓励,让我能投入更多时间维护和更新。 - 📄 引用我的文章 > 如果暂时不便捐赠,[适当引用我的文章](../我的文章/我的文章.md)也是极好的支持! > 您的引用能帮助这个工作获得更多关注,同样让我感到无比欣慰。 无论哪种方式,都是对我的巨大支持!🙏感谢您让开源世界更美好!✨