2. 作用力模型
文档B站视频讲解:
2.1. 单松弛作用力模型
标准LBGK碰撞方程为:
其中平衡态分布函数 \(f_i^\mathrm{eq}(\rho, \boldsymbol{u})\)的形式为:
迁移步为:
宏观量的计算:
符号定义为:
\(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. 代码下载
如果您觉得这个项目对您有帮助,可以考虑用以下方式支持我:
☕ 请我喝杯咖啡
如果条件允许,欢迎捐赠支持!
每一分都是对我莫大的鼓励,让我能投入更多时间维护和更新。
📄 引用我的文章
如果暂时不便捐赠,适当引用我的文章也是极好的支持!
您的引用能帮助这个工作获得更多关注,同样让我感到无比欣慰。
无论哪种方式,都是对我的巨大支持!🙏感谢您让开源世界更美好!✨