Literature Review: 简化的格子 Boltzmann 方法

注:该文章同步发在知乎专栏CSDN
这里所说的 “简化的格子 Boltzmann 方法” 其实是 Simplified and Highly Stable Lattice Boltzmann Method (SHSLBM)([1], [2], [3], [4])。该方法的特色是仅使用平衡态分布函数、宏观密度、宏观速度进行 LBM 计算,并保证无条件稳定。
下面的内容只是我对相关文献进行简单阅读后的部分整理

单松弛格子 Boltzmann 方法

基本方程

针对流场的 LBGK 演化方程为

fα(r+cα+Δt,t+Δt)fα(r,t)=1τ[fα(r,t)fα(eq)](1)f_{\alpha} (\boldsymbol{r} + \boldsymbol{c}_\alpha + \Delta t, t + \Delta t) - f_{\alpha} (\boldsymbol{r}, t) = -\frac{1}{\tau} \left[ f_{\alpha} (\boldsymbol{r}, t) - f_{\alpha}^{(eq)} \right] \tag{1}

其中 fα(r,t)f_{\alpha} (\boldsymbol{r}, t)tt 时刻在 r\boldsymbol{r} 处沿着 cα\boldsymbol{c}_\alpha 方向的密度分布函数, τ\tau 为 BGK 碰撞项的松弛时间。 fα(eq)f_{\alpha}^{(eq)}cα\boldsymbol{c}_\alpha 方向的平衡态分布

fα(eq)=ρwα[1+cαucs2+(cαu)22cs4uu2cs2](2)f_{\alpha}^{(eq)} = \rho w_\alpha \left[ 1 + \frac{\boldsymbol{c}_\alpha \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{c}_\alpha \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{\boldsymbol{u} \cdot \boldsymbol{u}}{2 c_s^2} \right] \tag{2}

式 (2) 中 ρ\rho 为流体密度, u=(ux,uy,uz)T\boldsymbol{u} = (u_x, u_y, u_z)^T 为流体宏观速度, wαw_\alphacα\boldsymbol{c}_\alpha 的权重系数, csc_s 为格子声速。 wαw_\alphacα\boldsymbol{c}_\alphacsc_s 的数值由选取的离散速度模型决定。

对于 LBM 而言,宏观量表示为

ρ=αfα=αfα(eq),ρu=αcαfα=αcαfα(eq)(3)\rho = \sum_{\alpha} f_{\alpha} = \sum_{\alpha} f_{\alpha}^{(eq)}, \quad \rho\boldsymbol{u} = \sum_{\alpha} \boldsymbol{c}_\alpha f_{\alpha} = \sum_{\alpha} \boldsymbol{c}_\alpha f_{\alpha}^{(eq)} \tag{3}

Chapman-Enskog 展开

Boltzmann 方程和 LBGK 方程都可以通过多尺度展开还原为 Navier-Stokes 方程。这里以 Chapman-Enskog 为例:

fα=fα(eq)+ϵfα(1)+ϵ2fα(2)+...,t=ϵt0+ϵ2t1,r=ϵr0f_{\alpha} = f_{\alpha}^{(eq)} + \epsilon f_{\alpha}^{(1)} + \epsilon^2 f_{\alpha}^{(2)} + ... , \quad \frac{\partial}{\partial t} = \epsilon \frac{\partial}{\partial t_0} + \epsilon^2 \frac{\partial}{\partial t_1}, \quad \frac{\partial}{\partial \boldsymbol{r}} = \epsilon \frac{\partial}{\partial \boldsymbol{r}_0}

上述展开保留至 ϵ1\epsilon^{1} ,即可还原为[5]

ρt+(αcαfα(eq))=0(4)\frac{\partial \rho}{\partial t} + \nabla \cdot \left(\sum_{\alpha} \boldsymbol{c}_\alpha f_{\alpha}^{(eq)} \right) = 0 \tag{4}

ρut+Π=0(5)\frac{\partial \rho \boldsymbol{u}}{\partial t} + \nabla \cdot \Pi = \boldsymbol{0} \tag{5}

式 (5) 中张量 Π\Pi 表示为

Πβγ=α(cα)β(cα)γ[fα(eq)+(112τ)ϵfα(1)]\Pi_{\beta \gamma} = \sum_{\alpha} (\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} \left[ f_{\alpha}^{(eq)} + \left(1 - \frac{1}{2 \tau}\right) \epsilon f_{\alpha}^{(1)} \right]

由于只保留到 ϵ1\epsilon^{1} ,所以 ϵfα(1)fαfα(eq)=fα(neq)\epsilon f_{\alpha}^{(1)} \approx f_{\alpha} - f_{\alpha}^{(eq)} = f_{\alpha}^{(neq)} 近似为非平衡态分布函数。此时

Πβγ=α(cα)β(cα)γ[fα(eq)+(112τ)fα(neq)](6)\Pi_{\beta \gamma} = \sum_{\alpha} (\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} \left[ f_{\alpha}^{(eq)} + \left(1 - \frac{1}{2 \tau}\right) f_{\alpha}^{(neq)} \right] \tag{6}

并且存在如下关系

fα(neq)ϵfα(1)=τ[t+cα]fα(eq)Δt(7)f_{\alpha}^{(neq)} \approx \epsilon f_{\alpha}^{(1)} = -\tau \left[ \frac{\partial}{\partial t} + \boldsymbol{c}_{\alpha} \cdot \nabla \right] f_{\alpha}^{(eq)} \Delta t \tag{7}

D=t+cα\mathrm{D} = \frac{\partial}{\partial t} + \boldsymbol{c}_{\alpha} \cdot \nabla ,则 fα(neq)τ(Δt)Dfα(eq)f_{\alpha}^{(neq)} \approx -\tau \cdot (\Delta t) \cdot \mathrm{D}f_{\alpha}^{(eq)}

流体运动粘度 ν\nu 和松弛时间 τ\tau 的关系为

ν=(τ12)cs2Δt\nu = \left( \tau - \frac{1}{2} \right) c_s^2 \Delta t

SHSLBM

式 (7) 说明:在保留至 ϵ1\epsilon^{1} 的情况下, fα(neq)f_{\alpha}^{(neq)}fα(eq)f_{\alpha}^{(eq)} 存在联系。考虑到式 (1) 中由 1τ\frac{-1}{\tau} 松弛的部分即为 fα(neq)f_{\alpha}^{(neq)} ,因此式 (1) 理应可以被写作完全由 fα(eq)f_{\alpha}^{(eq)} 进行表示的形式。这便是 SHSLBM 的核心思想。

基本算法

SHSLBM 的单个时间步迭代分为预报和校正两部分,具体写作:

  1. 预报步:计算 (r,t)(\boldsymbol{r},t) 的预估密度 ρ\rho^{*} 和预估速度 u\boldsymbol{u}^{*}

ρ=αfα(eq)(rcαΔt,tΔt),ρu=αcαfα(eq)(rcαΔt,tΔt)(8)\rho^{*} = \sum_{\alpha} f_{\alpha}^{(eq)} (\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t -\Delta t), \quad \rho^{*} \boldsymbol{u}^{*} = \sum_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(eq)} (\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t -\Delta t) \tag{8}

  1. 校正步:根据 ρ\rho^{*}u\boldsymbol{u}^{*} 得出校正值

{ρ=ρρu=ρu(11τ)αcα[fα(neq)(r+Δt2cα,tΔt2)fα(neq)(rΔt2cα,tΔt2)](9-1)\begin{cases} \rho = \rho^{*} \\ \rho \boldsymbol{u} = \rho^{*} \boldsymbol{u}^{*} - \left(1 - \frac{1}{\tau}\right) \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} [f_{\alpha}^{(neq)}(\boldsymbol{r}+\frac{\Delta t}{2}\boldsymbol{c}_{\alpha},t-\frac{\Delta t}{2}) - f_{\alpha}^{(neq)}(\boldsymbol{r}-\frac{\Delta t}{2}\boldsymbol{c}_{\alpha},t-\frac{\Delta t}{2})] \end{cases} \tag{9-1}

式 (9-1) 中非平衡态的计算通过对式 (7) 的差分实现,即:

fα(neq)(rΔt2cα,tΔt2)=τ[fα(eq)(r,t)fα(eq)(rcαΔt,tΔt)]+O((Δt)3)f_{\alpha}^{(neq)}(\boldsymbol{r} - \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) = -\tau \left[ f_{\alpha}^{(eq)}(\boldsymbol{r}, t) - f_{\alpha}^{(eq)}(\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t - \Delta t) \right] + O((\Delta t)^3)

同理:

fα(neq)(r+Δt2cα,tΔt2)=τ[fα(eq)(r+cαΔt,t)fα(eq)(r,tΔt)]+O((Δt)3)f_{\alpha}^{(neq)}(\boldsymbol{r} + \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) = -\tau \left[ f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) - f_{\alpha}^{(eq)}(\boldsymbol{r}, t - \Delta t) \right] + O((\Delta t)^3)

在这两条式子中, fα(eq)(r,t)f_{\alpha}^{(eq)}(\boldsymbol{r}, t)fα(eq)(r+cαΔt,t)f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) 都是未知的。参照Shu等[6]的做法,对上面两条公式中的这两个量使用预报步数据进行近似,即

fα(eq)(r,t)=fα(eq)(ρ(r,t),u(r,t))f_{\alpha}^{(eq)}(\boldsymbol{r}, t) = f_{\alpha}^{(eq)}(\rho^{*}(\boldsymbol{r}, t), \boldsymbol{u}^{*}(\boldsymbol{r}, t))

式 (9-1) 中 ρu\rho \boldsymbol{u} 的计算还可以进一步化简。注意到,对于 fα(neq)(rΔt2cα,tΔt2)f_{\alpha}^{(neq)}(\boldsymbol{r} - \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) ,有

αcαfα(neq)(rΔt2cα,tΔt2)=τ[αcαfα(eq)(r,t)αcαfα(eq)(rcαΔt,tΔt)]+O((Δt)3)=τ(ρuρu)+O((Δt)3)=O((Δt)3)\begin{aligned} \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(neq)}(\boldsymbol{r} - \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) &= -\tau \left[ \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) \right.\\ &\quad\left. -\sum\limits_{\alpha} \boldsymbol{c}_{\alpha}f_{\alpha}^{(eq)}(\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t - \Delta t)\right] + O((\Delta t)^3) \\ &= -\tau (\rho^{*} \boldsymbol{u}^{*} - \rho^{*} \boldsymbol{u}^{*}) + O((\Delta t)^3) \\ &= O((\Delta t)^3) \end{aligned}

所以式 (9-1) 可进一步化简为式 (9-2)

{ρ=ρρu=ρu(11τ)αcαfα(neq)(r+Δt2cα,tΔt2)(9-2)\begin{cases} \rho = \rho^{*} \\ \rho \boldsymbol{u} = \rho^{*} \boldsymbol{u}^{*} - \left(1 - \frac{1}{\tau}\right) \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(neq)}(\boldsymbol{r}+\frac{\Delta t}{2}\boldsymbol{c}_{\alpha},t-\frac{\Delta t}{2}) \end{cases} \tag{9-2}

对应的宏观流程

事实上,式 (8) 和式 (9-1), (9-2) 的预报和校正存在着对应的宏观偏微分方程。下面简要说明一下。

预报步

式 (8) 对应的宏观方程为

{ρt+(αcαfα(eq))=0ρut+[α(cα)β(cα)γfα(eq)+12τα(cα)β(cα)γfα(neq)]=0(10)\begin{cases} \frac{\partial \rho}{\partial t} + \nabla \cdot \left(\sum\limits_{\alpha} \boldsymbol{c}_\alpha f_{\alpha}^{(eq)} \right) = 0 \\ \frac{\partial \rho \boldsymbol{u}}{\partial t} + \nabla \cdot \left[ \sum\limits_{\alpha}(\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} f_{\alpha}^{(eq)} + \frac{1}{2 \tau} \sum\limits_{\alpha}(\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} f_{\alpha}^{(neq)} \right] = \boldsymbol{0} \end{cases} \tag{10}

首先,对 fα(eq)(rcαΔt,tΔt)f_{\alpha}^{(eq)} (\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t -\Delta t)(r,t)(\boldsymbol{r},t) 进行展开,并代入式 (7) ,得到:

fα(eq)(rcαΔt,tΔt)=fα(eq)(r,t)(Δt)Dfα(eq)(r,t)+(Δt)22D2fα(eq)(r,t)+O((Δt)3)=fα(eq)(r,t)(Δt)Dfα(eq)(r,t)Δt2τDfα(neq)(r,t)+O((Δt)3)(11)\begin{aligned} f_{\alpha}^{(eq)} (\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t, t -\Delta t) &= f_{\alpha}^{(eq)} (\boldsymbol{r}, t) - (\Delta t) \mathrm{D} f_{\alpha}^{(eq)} (\boldsymbol{r}, t) \\ &\quad+ \frac{(\Delta t)^2}{2} \mathrm{D}^{2} f_{\alpha}^{(eq)} (\boldsymbol{r}, t) + O((\Delta t)^3) \\ &= f_{\alpha}^{(eq)} (\boldsymbol{r}, t) - (\Delta t) \mathrm{D} f_{\alpha}^{(eq)} (\boldsymbol{r}, t) \\ &\quad - \frac{\Delta t}{2 \tau} \mathrm{D} f_{\alpha}^{(neq)} (\boldsymbol{r}, t) + O((\Delta t)^3) \\ \end{aligned} \tag{11}

将式 (11) 代入式 (8) 的第一条公式,有:

ρ=αfα(eq)(r,t)(Δt)αDfα(eq)(r,t)Δt2ταDfα(neq)(r,t)+O((Δt)3)(12)\begin{aligned} \rho^{*} &= \sum_{\alpha}f_{\alpha}^{(eq)}(\boldsymbol{r}, t) - (\Delta t) \sum_{\alpha} \mathrm{D} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) \\ &\quad - \frac{\Delta t}{2 \tau} \sum_{\alpha} \mathrm{D} f_{\alpha}^{(neq)}(\boldsymbol{r}, t) + O((\Delta t)^3) \end{aligned} \tag{12}

式 (12) 右侧第一项与 ρ\rho^{*} 相等,右侧第三项根据非平衡态的守恒律可知其为 0 。所以在消去式 (12) 中的 Δt\Delta t 后, ρ\rho^{*} 的计算与式 (10) 中第一条公式对应,并具有 O((Δt)2)O((\Delta t)^2) 精度。

将式 (11) 代入式 (8) 的第二条公式,整理得:

ρu=αcαfα(eq)(r,t)(Δt)αcαDfα(eq)(r,t)Δt2ταcαDfα(neq)(r,t)+O((Δt)3)=αcαfα(eq)(r,t)(Δt)[tαcαfα(eq)(r,t)+α(cα)β(cα)γ(fα(eq)(r,t)+12τfα(neq)(r,t))]Δt2ταtcαfα(neq)(r,t)+O((Δt)3)(13)\begin{aligned} \rho^{*} \boldsymbol{u}^{*} &= \sum_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) - (\Delta t) \sum_{\alpha} \boldsymbol{c}_{\alpha} \mathrm{D} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) \\ &\quad - \frac{\Delta t}{2 \tau} \sum_{\alpha} \boldsymbol{c}_{\alpha} \mathrm{D} f_{\alpha}^{(neq)}(\boldsymbol{r}, t) + O((\Delta t)^3) \\ &= \sum_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) - (\Delta t) \left[ \frac{\partial}{\partial t} \sum_{\alpha} \boldsymbol{c}_{\alpha} f_{\alpha}^{(eq)}(\boldsymbol{r}, t) + \right. \\ &\quad \left. \nabla \cdot \sum_{\alpha} (\boldsymbol{c}_{\alpha})_\beta (\boldsymbol{c}_{\alpha})_\gamma \left( f_{\alpha}^{(eq)}(\boldsymbol{r}, t) + \frac{1}{2 \tau} f_{\alpha}^{(neq)}(\boldsymbol{r}, t) \right) \right] \\ &\quad - \frac{\Delta t}{2 \tau} \sum_{\alpha} \frac{\partial}{\partial t} \boldsymbol{c}_{\alpha} f_{\alpha}^{(neq)}(\boldsymbol{r}, t) + O((\Delta t)^3) \end{aligned} \tag{13}

式 (13) 右侧第一项与 ρu\rho^{*} \boldsymbol{u}^{*} 相等,右侧 αtcαfα(neq)(r,t)\sum\limits_{\alpha} \frac{\partial}{\partial t} \boldsymbol{c}_{\alpha} f_{\alpha}^{(neq)}(\boldsymbol{r}, t) 项根据非平衡态的守恒律可知其为 0 。所以在消去式 (13) 中的 Δt\Delta t 后, ρu\rho^{*} \boldsymbol{u}^{*} 的计算与式 (10) 中第二条公式对应,并具有 O((Δt)2)O((\Delta t)^2) 精度。

校正步

式 (9) 对应的宏观方程为

{ρt=0ρut+[(112τ)α(cα)β(cα)γfα(neq)]=0(14)\begin{cases} \frac{\partial \rho}{\partial t} = 0 \\ \frac{\partial \rho \boldsymbol{u}}{\partial t} + \nabla \cdot \left[ \left( 1 - \frac{1}{2 \tau} \right) \sum\limits_{\alpha}(\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} f_{\alpha}^{(neq)} \right] = \boldsymbol{0} \end{cases} \tag{14}

这里主要介绍一下动量方程的还原。对 fα(neq)(r±Δt2cα,tΔt2)f_{\alpha}^{(neq)}(\boldsymbol{r} \pm \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) 进行 Taylor 展开,得到

fα(neq)(r±Δt2cα,tΔt2)=fα(neq)(r,tΔt2)±Δt2(cα)fα(neq)(r,tΔt2)+(Δt)28(cα)2fα(neq)(r,tΔt2)+O((Δt)3)\begin{aligned} f_{\alpha}^{(neq)}(\boldsymbol{r} \pm \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) &= f_{\alpha}^{(neq)}(\boldsymbol{r}, t - \frac{\Delta t}{2}) \\ &\quad \pm \frac{\Delta t}{2} (\boldsymbol{c}_{\alpha} \cdot \nabla) f_{\alpha}^{(neq)}(\boldsymbol{r}, t - \frac{\Delta t}{2}) \\ &\quad + \frac{(\Delta t)^2}{8} (\boldsymbol{c}_{\alpha} \cdot \nabla)^2 f_{\alpha}^{(neq)}(\boldsymbol{r}, t - \frac{\Delta t}{2}) + O((\Delta t)^3) \end{aligned}

这里我们以未化简的式 (9-1) 为例。在式 (9-1) 的动量校正步中,有:

(11τ)1Δtαcα[fα(neq)(r+Δt2cα,tΔt2)fα(neq)(rΔt2cα,tΔt2)]=(11τ)αcα(cα)fα(neq)(r,tΔt2)+O((Δt)2)=[(11τ)α(cα)β(cα)γfα(neq)(r,tΔt2)]+O((Δt)2)\begin{aligned} &\quad \left(1 - \frac{1}{\tau}\right) \frac{1}{\Delta t} \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} [f_{\alpha}^{(neq)}(\boldsymbol{r}+\frac{\Delta t}{2}\boldsymbol{c}_{\alpha},t-\frac{\Delta t}{2}) - f_{\alpha}^{(neq)}(\boldsymbol{r}-\frac{\Delta t}{2}\boldsymbol{c}_{\alpha},t-\frac{\Delta t}{2})] \\ &= \left(1 - \frac{1}{\tau}\right) \sum\limits_{\alpha} \boldsymbol{c}_{\alpha} (\boldsymbol{c}_{\alpha} \cdot \nabla) f_{\alpha}^{(neq)}(\boldsymbol{r}, t - \frac{\Delta t}{2}) + O((\Delta t)^2) \\ &= \nabla \cdot \left[ \left(1 - \frac{1}{\tau}\right) \sum\limits_{\alpha}(\boldsymbol{c}_\alpha)_{\beta} (\boldsymbol{c}_\alpha)_{\gamma} f_{\alpha}^{(neq)}(\boldsymbol{r}, t - \frac{\Delta t}{2}) \right] + O((\Delta t)^2) \\ \end{aligned}

此时联立式 (13) ,即可还原式 (14) 中的动量方程。

SHSLBM 的稳定性分析

这里令 Y=(y1,y2,y3,y4)T\mathbf{Y} = (y_1, y_2, y_3, y_4)^T。其中

y1=ρ,y2=ρux,y3=ρuy,y4=ρuzy_1 = \rho,\quad y_2 = \rho u_x ,\quad y_3 = \rho u_y ,\quad y_4 = \rho u_z

将这些符号代换到式 (2) 的 fα(eq)f_{\alpha}^{(eq)} 中,得:

fα(eq)=y1αwα+wαcs2(cαxy2α+cαyy3α+cαzy4α)+wα2y1αcs4(cαxy2α+cαyy3α+cαzy4α)2wα2y1αcs2(y2α2+y3α2+y4α2)(15)\begin{aligned} f_{\alpha}^{(eq)} &= y_{1 \alpha} w_{\alpha} + \frac{w_\alpha}{c_s^2} ( c_{\alpha x} y_{2 \alpha}+ c_{\alpha y} y_{3 \alpha} + c_{\alpha z} y_{4 \alpha} ) \\ &\quad + \frac{w_\alpha}{2 y_{1 \alpha} c_s^4} ( c_{\alpha x} y_{2 \alpha}+ c_{\alpha y} y_{3 \alpha} + c_{\alpha z} y_{4 \alpha} )^2 \\ &\quad - \frac{w_\alpha}{2 y_{1 \alpha} c_s^2} (y_{2 \alpha}^2 + y_{3 \alpha}^2 + y_{4 \alpha}^2) \end{aligned} \tag{15}

where the subscript α\alpha denotes the quantities at a space level of (rcαΔt)(\boldsymbol{r} - \boldsymbol{c}_{\alpha} \Delta t).[2:1]

预报步

对于第 nn 步的结果 Yn\mathbf{Y}^{n},式 (8) 的预报步写作 Y=G(Yn)\mathbf{Y}^{*} = \mathbf{G}(\mathbf{Y}^{n})

为便于进行诺依曼稳定性分析,对上式进行求导,有

dY=[Yy1]ndy1n+[Yy2]ndy2n+[Yy3]ndy3n+[Yy4]ndy4n\mathrm{d \mathbf{Y}^{*}} = \left[ \frac{\partial \mathbf{Y}^{*}}{\partial y_1} \right]^n \mathrm{d}y_1^n + \left[ \frac{\partial \mathbf{Y}^{*}}{\partial y_2} \right]^n \mathrm{d}y_2^n + \left[ \frac{\partial \mathbf{Y}^{*}}{\partial y_3} \right]^n \mathrm{d}y_3^n + \left[ \frac{\partial \mathbf{Y}^{*}}{\partial y_4} \right]^n \mathrm{d}y_4^n

上标 nn 代表第 nn 个时间步。由于 dY=(dy1,dy2,dy3,dy4)T\mathrm{d \mathbf{Y}^{*}} = (\mathrm{d} y_1^{*}, \mathrm{d} y_2^{*}, \mathrm{d} y_3^{*}, \mathrm{d} y_4^{*})^T ,所以,对于预报步结果的每个分量而言有: dyλ=κ=14[yλyκ]ndyκn\mathrm{d} y_{\lambda}^{*} = \sum_{\kappa = 1}^{4}\left[ \frac{\partial y_{\lambda}^{*}}{\partial y_{\kappa}} \right]^n \mathrm{d}y_{\kappa}^nλ,κ[1,2,3,4]\lambda, \kappa \in [1,2,3,4])。

对于本文列出的方程组, [yλyκ]n\left[ \frac{\partial y_{\lambda}^{*}}{\partial y_{\kappa}} \right]^n 多达 16 个。因此下文仅拿 [y1y1]n\left[ \frac{\partial y_{1}^{*}}{\partial y_{1}} \right]^n 举例进行计算。

[y1y1]n=y1αfα(eq)=α[wαwα2(y1αn)2cs4(cαxy2αn+cαyy3αn+cαzy4αn)2+wα2(y1αn)2cs2((y2αn)2+(y3αn)2+(y4αn)2)](16)\begin{aligned} \left[ \frac{\partial y_{1}^{*}}{\partial y_{1}} \right]^n &= \frac{\partial}{\partial y_{1}} \sum_{\alpha} f_{\alpha}^{(eq)} \\ &= \sum_{\alpha} \left[ w_{\alpha} - \frac{w_\alpha}{2 (y_{1\alpha}^n)^2 c_s^4} ( c_{\alpha x} y_{2 \alpha}^n + c_{\alpha y} y_{3 \alpha}^n + c_{\alpha z} y_{4 \alpha}^n )^2 \right. \\ &\quad\left. + \frac{w_\alpha}{2 (y_{1\alpha}^n)^2 c_s^2} ((y_{2 \alpha}^n)^2 + (y_{3 \alpha}^n)^2 + (y_{4 \alpha}^n)^2) \right] \end{aligned} \tag{16}

假设式 (16) 中的 dyi\mathrm{d} y^{*}_{i}, dyin\mathrm{d} y^{n}_{i}, yiαny^{n}_{i \alpha} 均可被展开为如下形式(i=[1,2,3,4]i = [1,2,3,4]j=1j=\sqrt{-1}

dyi=dyiexp(jkr),dyin=dyinexp(jkr),yiαn=yinexp(jkr)\mathrm{d} y^{*}_{i} = \overline{\mathrm{d} y_{i}}^{*} \exp(j \boldsymbol{k \cdot r}) ,\quad \mathrm{d} y^{n}_{i} = \overline{\mathrm{d} y_{i}}^{n} \exp(j \boldsymbol{k \cdot r}) ,\quad y^{n}_{i \alpha} = y_{i}^{n} \exp(j \boldsymbol{k \cdot r})

代入到式 (16) 和 dY\mathrm{d \mathbf{Y}^{*}} 表达式,得

[y1y1]n=y1αfα(eq)=α[wαwα2(y1n)2cs4(cαxy2n+cαyy3n+cαzy4n)2+wα2(y1n)2cs2((y2n)2+(y3n)2+(y4n)2)](17)\begin{aligned} \left[ \frac{\partial y_{1}^{*}}{\partial y_{1}} \right]^n &= \frac{\partial}{\partial y_{1}} \sum_{\alpha} f_{\alpha}^{(eq)} \\ &= \sum_{\alpha} \left[ w_{\alpha} - \frac{w_\alpha}{2 (y_{1}^n)^2 c_s^4} ( c_{\alpha x} y_{2}^n + c_{\alpha y} y_{3}^n + c_{\alpha z} y_{4}^n )^2 \right. \\ &\quad\left. + \frac{w_\alpha}{2 (y_{1}^n)^2 c_s^2} ((y_{2}^n)^2 + (y_{3}^n)^2 + (y_{4}^n)^2) \right] \end{aligned} \tag{17}

格子张量的一些性质[2:2]

αwα=1.α[0,1,...,q1]αwαcαβ=0.β[x,y,z]αwαcαβcαγ=cs2δβγ.β,γ[x,y,z]\begin{aligned} & \sum_{\alpha} w_{\alpha} = 1 .&\qquad \alpha \in [0,1, ..., q-1]\\ & \sum_{\alpha} w_{\alpha} c_{\alpha \beta} = 0 .&\qquad \beta \in [x,y,z] \\ & \sum_{\alpha} w_{\alpha} c_{\alpha \beta} c_{\alpha \gamma} = c_s^2 \delta_{\beta \gamma} .&\qquad \beta, \gamma \in [x,y,z] \end{aligned}

注: qq 为离散速度数目

基于格子张量的性质,式 (17) 右侧仅剩下 αwα\sum\limits_{\alpha} w_{\alpha} ,即:

[y1y1]n=1\left[ \frac{\partial y_{1}^{*}}{\partial y_{1}} \right]^n = 1

同理,其他项也可进行类似分析,并得出

[yλyκ]n=δλκ\left[ \frac{\partial y_{\lambda}^{*}}{\partial y_{\kappa}} \right]^n = \delta_{\lambda \kappa}

其中 δλκ\delta_{\lambda \kappa} 为狄拉克函数,且 λ,κ[1,2,3,4]\lambda,\kappa \in [1,2,3,4] 。所以我们可以得到 dY=dYn\overline{\mathrm{d} \mathbf{Y}}^{*} = \overline{\mathrm{d} \mathbf{Y}}^{n}

校正步

dyin+1=dyin+1exp(jkr){\mathrm{d} y_i}^{n+1} = \overline{\mathrm{d} y_i}^{n+1} \exp(j \boldsymbol{k \cdot r})i[1,2,3,4]i \in [1,2,3,4])。由于校正步(式 (9-2) )中并未对 ρ\rho 做修改,易得:

dy1n+1=dy1=dy1n\overline{\mathrm{d} y_1}^{n+1} = \overline{\mathrm{d} y_1}^{*} = \overline{\mathrm{d} y_1}^{n}

根据式 (9-2) 的校正步,以及 fα(neq)(r+Δt2cα,tΔt2)f_{\alpha}^{(neq)}(\boldsymbol{r} + \frac{\Delta t}{2} \boldsymbol{c}_{\alpha}, t - \frac{\Delta t}{2}) 的差分表示,有

y2n+1=y2(τ1)y2n+(τ1)αcαxfα(eq)(r+cαΔt,t)y3n+1=y3(τ1)y3n+(τ1)αcαyfα(eq)(r+cαΔt,t)y4n+1=y4(τ1)y4n+(τ1)αcαzfα(eq)(r+cαΔt,t)(18)\begin{aligned} y_2^{n+1} = y_2^{*} - (\tau - 1) y_2^{n} + (\tau - 1) \sum\limits_{\alpha} c_{\alpha x} f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) \\ y_3^{n+1} = y_3^{*} - (\tau - 1) y_3^{n} + (\tau - 1) \sum\limits_{\alpha} c_{\alpha y} f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) \\ y_4^{n+1} = y_4^{*} - (\tau - 1) y_4^{n} + (\tau - 1) \sum\limits_{\alpha} c_{\alpha z} f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) \end{aligned} \tag{18}

这里同样以 y2n+1y_2^{n+1} 的计算为例,记

S=αcαxfα(eq)(r+cαΔt,t)=αcαxwαy1(α)+αcαxwαcs2(cαxy2(α)+cαyy3(α)+cαzy4(α))+αcαxwα2cs4y1(α)(cαxy2(α)+cαyy3(α)+cαzy4(α))2αcαxwα2cs2y1(α)((y2(α))2+(y3(α))2+(y4(α))2)2\begin{aligned} S &= \sum\limits_{\alpha} c_{\alpha x} f_{\alpha}^{(eq)}(\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t, t) \\ &= \sum\limits_{\alpha} c_{\alpha x} w_{\alpha} y_{1(-\alpha)}^{*} \\ &\quad + \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{c_s^2} (c_{\alpha x} y_{2(-\alpha)}^{*} + c_{\alpha y} y_{3(-\alpha)}^{*} + c_{\alpha z} y_{4(-\alpha)}^{*}) \\ &\quad + \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^4 y_{1(-\alpha)}^{*}} (c_{\alpha x} y_{2(-\alpha)}^{*} + c_{\alpha y} y_{3(-\alpha)}^{*} + c_{\alpha z} y_{4(-\alpha)}^{*})^2 \\ &\quad - \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^2 y_{1(-\alpha)}^{*}} ( (y_{2(-\alpha)}^{*})^2 + (y_{3(-\alpha)}^{*})^2 + (y_{4(-\alpha)}^{*})^2 )^2 \\ \end{aligned}

其中下标 (α)(-\alpha) 代表来自 r+cαΔt\boldsymbol{r} + \boldsymbol{c}_{\alpha} \Delta t 的值。则

y2n+1=y2+(τ1)(Sy2n)(19)y_2^{n+1} = y_2^{*} + (\tau - 1) (S - y_2^{n}) \tag{19}

所以其差分表示为

dy2n+1=dy2+(τ1)(dSdy2n)(20)\mathrm{d} y_2^{n+1} = \mathrm{d} y_2^{*} + (\tau - 1) (\mathrm{d} S - \mathrm{d} y_2^{n}) \tag{20}

对于 dS\mathrm{d} S,有

dS=(Sy1)dy1+(Sy2)dy2+(Sy3)dy3+(Sy4)dy4\mathrm{d} S = \left( \frac{\partial S}{\partial y_1} \right)^{*} \mathrm{d}y_1^{*} + \left( \frac{\partial S}{\partial y_2} \right)^{*} \mathrm{d}y_2^{*} + \left( \frac{\partial S}{\partial y_3} \right)^{*} \mathrm{d}y_3^{*} + \left( \frac{\partial S}{\partial y_4} \right)^{*} \mathrm{d}y_4^{*}

(Sy1)\left( \frac{\partial S}{\partial y_1} \right)^{*} 为例,有

(Sy1)=αcαxwααcαxwα2cs4(y1(α))2(cαxy2(α)+cαyy3(α)+cαzy4(α))2+αcαxwα2cs2(y1(α))2((y2(α))2+(y3(α))2+(y4(α))2)2\begin{aligned} \left( \frac{\partial S}{\partial y_1} \right)^{*} &= \sum\limits_{\alpha} c_{\alpha x} w_{\alpha} \\ &\quad - \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^4 (y_{1(-\alpha)}^{*})^2} (c_{\alpha x} y_{2(-\alpha)}^{*} + c_{\alpha y} y_{3(-\alpha)}^{*} + c_{\alpha z} y_{4(-\alpha)}^{*})^2 \\ &\quad + \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^2 (y_{1(-\alpha)}^{*})^2} ( (y_{2(-\alpha)}^{*})^2 + (y_{3(-\alpha)}^{*})^2 + (y_{4(-\alpha)}^{*})^2 )^2 \end{aligned}

与预报步的做法类似,将 yi(α)y_{i(-\alpha)}^{*} 近似为 yiy_{i}^{*},得到:

(Sy1)=αcαxwααcαxwα2cs4(y1)2(cαxy2+cαyy3+cαzy4)2+αcαxwα2cs2(y1)2((y2)2+(y3)2+(y4)2)2\begin{aligned} \left( \frac{\partial S}{\partial y_1} \right)^{*} &= \sum\limits_{\alpha} c_{\alpha x} w_{\alpha} \\ &\quad - \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^4 (y_{1}^{*})^2} (c_{\alpha x} y_{2}^{*} + c_{\alpha y} y_{3}^{*} + c_{\alpha z} y_{4}^{*})^2 \\ &\quad + \sum\limits_{\alpha} \frac{c_{\alpha x} w_{\alpha}}{2 c_s^2 (y_{1}^{*})^2} ( (y_{2}^{*})^2 + (y_{3}^{*})^2 + (y_{4}^{*})^2 )^2 \end{aligned}

此时所有 yiy_{i}^{*} 均可被视为常数提取出来。根据格子张量的性质,可得: (Sy1)=0\left( \frac{\partial S}{\partial y_1} \right)^{*} = 0

同理

(Sy2)=1,(Sy3)=(Sy4)=0\left( \frac{\partial S}{\partial y_2} \right)^{*} = 1,\quad \left( \frac{\partial S}{\partial y_3} \right)^{*} = \left( \frac{\partial S}{\partial y_4} \right)^{*} = 0

此时 dS=dy2\overline{\mathrm{d} S } = \overline{\mathrm{d} y_2}^{*} ,则式 (20) 可化简为:

dy2n+1=dy2=dy2n\overline{\mathrm{d} y_2}^{n+1} = \overline{\mathrm{d} y_2}^{*} = \overline{\mathrm{d} y_2}^{n}

同理,对 y3n+1y_3^{n+1}y4n+1y_4^{n+1} 计算可得: dy3n+1=dy3n\overline{\mathrm{d} y_3}^{n+1} = \overline{\mathrm{d} y_3}^{n}dy4n+1=dy4n\overline{\mathrm{d} y_4}^{n+1} = \overline{\mathrm{d} y_4}^{n}

dYn=(dy1n,dy2n,dy3n,dy4n)T\mathrm{d \mathbf{Y}^{n}} = (\mathrm{d} y_1^{n}, \mathrm{d} y_2^{n}, \mathrm{d} y_3^{n}, \mathrm{d} y_4^{n})^TdYn+1=(dy1n+1,dy2n+1,dy3n+1,dy4n+1)T\mathrm{d \mathbf{Y}^{n+1}} = (\mathrm{d} y_1^{n+1}, \mathrm{d} y_2^{n+1}, \mathrm{d} y_3^{n+1}, \mathrm{d} y_4^{n+1})^T ,那么:

dYn+1=IdYn\overline{\mathrm{d \mathbf{Y}}}^{n+1} = \mathbf{I} \, \overline{\mathrm{d \mathbf{Y}}}^{n}

其中 I\mathbf{I} 为单位矩阵。显然,特征矩阵的特征值全是 1 ,代表着该格式无条件稳定。


  1. Chen, Z., Shu, C., Wang, Y., Yang, L. M., & Tan, D. (2017). A Simplified Lattice Boltzmann Method without Evolution of Distribution Function. Advances in Applied Mathematics and Mechanics, 9(1), 1–22. DOI:10.4208/aamm.OA-2016-0029 ↩︎

  2. Z. Chen, C. Shu, D. Tan; Three-dimensional simplified and unconditionally stable lattice Boltzmann method for incompressible isothermal and thermal flows. Physics of Fluids. 1 May 2017; 29 (5): 053601. DOI:10.1063/1.4983339 ↩︎ ↩︎ ↩︎

  3. Chen Z, Shu C, Tan D, Wu C. On improvements of simplified and highly stable lattice Boltzmann method: Formulations, boundary treatment, and stability analysis. Int J Numer Meth Fluids. 2018; 87: 161–179. DOI:10.1002/fld.4485 ↩︎

  4. Chen, Z., & Shu, C. (2020). Simplified and Highly Stable Lattice Boltzmann Method. WORLD SCIENTIFIC. DOI:10.1142/12047 ↩︎

  5. 本文中所有 \nabla 均表示空间偏导 r\frac{\partial}{\partial \boldsymbol{r}}↩︎

  6. C. Shu, Y. Wang, C. Teo, and J. Wu. Development of lattice Boltzmann flux solver for simulation of incompressible flows. Advances In Applied Mathematics And Mechanics. 6, 436 (2014). ↩︎