这是自己的一份笔记,主要是和格子Boltzmann方法的DnQb离散速度模型相关的。还请读者确定自己已经知道常见的DnQb模型长什么样再来读这篇文章,这样会好理解一些。

Gauss-Hermite积分与DnQb模型

一般来说,密度分布函数的Maxwell-Boltzmann平衡态分布为:

feq=ρ(2πRT)D/2exp[(ξu)22RT],(1-1)f^{eq} = \frac{\rho}{ (2 \pi R T)^{D/2} } \exp \left[ - \frac{(\boldsymbol{\xi} - \boldsymbol{u})^2}{2 R T} \right], \tag{1-1}

其中 ξ\boldsymbol{\xi} 为分子速度;RR 为气体常数;DD为问题的维度数;ρ\rho 为流场密度;u\boldsymbol{u} 为流场速度。而 LBM 里常用的离散平衡态分布一般写作(沿着 cα\boldsymbol{c}_\alpha 方向,权重为 WαW_\alphacs2=RTc_s^2 = RT):

fαeq=ρWα×[1+ξαucs2+(ξαu)22cs4u22cs2].(1-2)f^{eq}_{\alpha} = \rho W_{\alpha} \times \left[ 1 + \frac{\boldsymbol{\xi}_{\alpha} \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{\xi}_{\alpha} \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{|\boldsymbol{u}|^2}{2 c_s^2} \right]. \tag{1-2}

那么这两者是怎么联系起来的呢?参考文献 [1] 讲的就是这个事情。最近自己总算是略懂一点了,这里把笔记写下来,作为备忘录。

平衡态分布的展开

当马赫数远小于1时,我们可以对式(1)的平衡态做如下离散:

feq(ξ)=ρ(2πRT)D/2exp(ξ22RT)×[1+ξuRT+(ξu)22(RT)2u22RT](1-3)\begin{aligned} f^{eq} (\boldsymbol{\xi}) &= \frac{\rho}{ (2 \pi R T)^{D/2} } \exp \left( - \frac{|\boldsymbol{\xi}|^2}{2 R T} \right)\\ & \quad \times \left[ 1 + \frac{\boldsymbol{\xi} \cdot \boldsymbol{u}}{R T} + \frac{(\boldsymbol{\xi} \cdot \boldsymbol{u})^2}{2 (R T)^2} - \frac{|\boldsymbol{u}|^2}{2 R T} \right] \end{aligned} \tag{1-3}

式(1-3)中,我们对 u\boldsymbol{u} 进行展开,并且只截断到2阶。而格子Boltzmann方法(LBM)要做的,便是把下面的这个积分

+ψ(ξ)feq(ξ)dξ\int_{-\infty}^{+\infty} \psi(\boldsymbol{\xi}) f^{eq} (\boldsymbol{\xi}) \mathrm{d}\boldsymbol{\xi}

用离散的方式近似计算,其中 ψ(ξ)\psi(\boldsymbol{\xi}) 是关于 ξ\boldsymbol{\xi} 的多项式。下面我们将先以一维的情况为例,不去考虑多维的积分,简单讲讲数值离散的具体操作。

一维情形的离散 —— 以 D1Q3 为例

由于这一节只讨论一维问题,分子速度 ξ\xi 和宏观速度 uu 即是标量值(不需要向量形式的加粗),并且维度 D=1D=1。所以,式(3)写作

feq(ξ)=ρ(2πRT)1/2exp(ξ22RT)×[1+ξuRT+(ξu)22(RT)2u22RT].(1-4)\begin{aligned} f^{eq} (\xi) &= \frac{\rho}{ (2 \pi R T)^{1/2} } \exp \left( - \frac{\xi^2}{2 R T} \right)\\ & \quad \times \left[ 1 + \frac{\xi u}{R T} + \frac{(\xi u)^2}{2 (R T)^2} - \frac{u^2}{2 R T} \right]. \end{aligned} \tag{1-4}

积分形式的抽象

式(1-4)的中括号内的四项可以用积分的加法拆成四个积分,并且每一项都可以看成如下形式:

Constant+exp(ξ22RT)ψ(ξ)dξ,\text{Constant} \cdot \int_{-\infty}^{+\infty} \exp \left( - \frac{\xi^2}{2 R T} \right) \psi(\xi) \mathrm{d}\xi,

其中 ψ(ξ)\psi(\xi) 为关于 ξ\xi 的多项式。那么,我们令 ψm(ξ)=ξm\psi_{m}(\xi) = \xi^{m}mm 为自然数),将研究目标变为式(1-5)的通式,即:

ρ(2πRT)1/2+exp(ξ22RT)ψm(ξ)dξ.(1-5)\frac{\rho}{ (2 \pi R T)^{1/2} } \cdot \int_{-\infty}^{+\infty} \exp \left( - \frac{\xi^2}{2 R T} \right) \psi_{m}(\xi) \mathrm{d}\xi. \tag{1-5}

为简化这个积分的计算,这里需要引入变量代换

ζ=ξ/2RT,\zeta = \xi / \sqrt{2 R T},

dξ=2RTdζ.\mathrm{d}\xi = \sqrt{2 R T} \mathrm{d}\zeta.

代换后,有:

ρ(2πRT)1/2+exp(ζ2)ψm(2RTζ)2RTdζ=ρ(2πRT)1/2(2RT)(m+1)/2Im=ρπ(2RT)m/2Im\begin{aligned} & \frac{\rho}{ (2 \pi R T)^{1/2} } \cdot \int_{-\infty}^{+\infty} \exp \left( - \zeta^2 \right) \psi_{m}(\sqrt{2 R T} \zeta) \sqrt{2 R T} \mathrm{d}\boldsymbol{\zeta} \\=& \frac{\rho}{ (2 \pi R T)^{1/2} } \cdot (2 R T)^{(m+1)/2} \cdot I_m \\=& \frac{\rho}{\sqrt{\pi}} \cdot (2 R T)^{m/2} \cdot I_m \end{aligned}

其中 Im=+exp(ζ2)ζmdζ\displaystyle I_m = \int_{-\infty}^{+\infty} \exp \left( - \zeta^2 \right) \zeta^m \mathrm{d}\boldsymbol{\zeta},且 mm 为自然数。

所以,下面的积分会被展开为

I=+ψm(ξ)feq(ξ)dξ=ρπ[(1u22RT)(2RT)m/2Im+uRT(2RT)(m+1)/2Im+1+u22(RT)2(2RT)(m+2)/2Im+2].(1-6)\begin{aligned} I=& \int_{-\infty}^{+\infty} \psi_m(\xi) f^{eq} (\xi) \mathrm{d}\xi \\=& \frac{\rho}{\sqrt{\pi}} \left[ \left(1 - \frac{u^2}{2 R T}\right) (2 R T)^{m/2} I_m + \frac{u}{RT} (2 R T)^{(m+1)/2} I_{m+1} \right. \\&\qquad \left. + \frac{u^2}{2(RT)^2} (2 R T)^{(m+2)/2} I_{m+2} \right]. \end{aligned} \tag{1-6}

数值积分的构造

假设我们想用一个三点格式的Gauss-Hermite数值积分进行近似,则:

+exp(ζ2)ϕ(ζ)dζ=i[1,0,1]wiϕ(ζi).\int_{-\infty}^{+\infty} \exp(- \zeta^2) \phi(\zeta) \mathrm{d} \zeta = \sum_{i \in [-1, 0, 1]} w_{i} \phi(\zeta_{i}).

其中:

ζ0=0,ζ1=3/2,ζ1=3/2,w0=2π/3,w1=π/6,w1=π/6.\begin{aligned} \zeta_0 = 0 ,\quad& \zeta_{1} = \sqrt{3/2} ,\quad& \zeta_{-1} = -\sqrt{3/2} ,\\ w_0 = 2\sqrt{\pi} / 3 ,\quad& w_{1} = \sqrt{\pi} / 6 ,\quad& w_{-1} = \sqrt{\pi} / 6. \end{aligned}

如果用变换关系代换回 ξ\xi,则 ξ0=0\xi_0 = 0, ξ1=3RT\xi_{-1} = -\sqrt{3RT}ξ1=3RT\xi_{1} = \sqrt{3RT}.

所以,积分 ImI_m 可以被近似成:

Im=+exp(ζ2)ζmdζi[1,0,1]wiζim=(2RT)m/2i[1,0,1]wiξim\begin{aligned} I_m &= \int_{-\infty}^{+\infty} \exp \left( - \zeta^2 \right) \zeta^m \mathrm{d}\boldsymbol{\zeta} \\&\approx \sum_{i \in [-1, 0, 1]} w_{i} \zeta_{i}^m \\&= (2RT)^{-m/2} \sum_{i \in [-1, 0, 1]} w_{i} \xi_{i}^m \end{aligned}

也就是说,

(2RT)m/2Imi[1,0,1]wiξim(2 R T)^{m/2} I_m \approx \sum_{i \in [-1, 0, 1]} w_{i} \xi_{i}^m

综上所述,式(1-6)就会被改写为:

I=+ψm(ξ)feq(ξ)dξi[1,0,1]ξim{ρwiπ[1+ξiuRT+(ξiu)22(RT)2u22RT]}.\begin{aligned} I=& \int_{-\infty}^{+\infty} \psi_m(\xi) f^{eq} (\xi) \mathrm{d}\xi \\ \approx& \sum_{i \in [-1, 0, 1]} \xi_{i}^{m} \cdot \left\{ \rho \frac{w_{i}}{\sqrt{\pi}} \cdot \left[ 1 + \frac{\xi_{i} u}{R T} + \frac{(\xi_{i} u)^2}{2 (R T)^2} - \frac{u^2}{2 R T} \right] \right\}. \end{aligned}

到这一步,我们就可以定义 ξi\xi_{i} 方向的离散平衡态 fieqf^{eq}_{i} 为:

fieq=ρWi[1+ξiucs2+(ξiu)22cs4u22cs2].(1-7)f^{eq}_{i} = \rho W_{i} \cdot \left[ 1 + \frac{\xi_{i} u}{c_s^2} + \frac{(\xi_{i} u)^2}{2 c_s^4} - \frac{u^2}{2 c_s^2} \right]. \tag{1-7}

其中的权重 Wi=wi/πW_{i} = w_i / \sqrt{\pi}。并且,如果令 c=3RTc = \sqrt{3RT}, 则 cs=RT=c/3c_s = \sqrt{RT} = c / \sqrt{3}

至此,我们就整理出了 D1Q3 模型:

i{i} 离散速度 ξi\xi_{i} 权重系数 WiW_i
0 0 2/3
-c -c 1/6
c c 1/6

注意:在多数LBM实践中,我们通常将 cc 无量纲化,即令 c=1c=1

更高维的扩展

由于各个坐标轴之间是正交的,这种做法同样可以拓展到高维空间。

打个比方,对于三维问题, ξ=[ξx,ξy,ξz]T\boldsymbol{\xi} = [\xi_x, \xi_y, \xi_z]^{\mathrm{T}}, 则 dξ=dξxdξydξz\mathrm{d}\boldsymbol{\xi} = \mathrm{d}\xi_x \mathrm{d}\xi_y \mathrm{d}\xi_z。积分时就只需要将不同方向的分量分离出来就可以了。

对于二维问题,记 ψm,n(ξ)=ξxmξyn\psi_{m,n}(\boldsymbol{\xi})=\xi_x^{m} \xi_y^{n},则

I=ψm,n(ξ)f(st)dξ=ρπ(2RT)m+n{(1u22RT)ImIn+12RT2(uxIm+1In+uyImIn+1)+1RT(ux2Im+2In+2uxuyIm+1In+1+uy2ImIn+2)}(1-8)\begin{aligned} I =& \int\psi_{m , n} (\boldsymbol{\xi}) f^{( \mathrm{s t} )} \mathrm{d}\boldsymbol{\xi} \\=& \frac{\rho}{\pi} ( \sqrt{2 R T} )^{m+n} \Biggl\{\left( 1-\frac{u^{2}} {2 R T} \right) I_{m} I_{n} \\&+ \frac{1} {\sqrt{2 R T}} 2 ( u_{x} I_{m+1} I_{n}+u_{y} I_{m} I_{n+1} ) \\&+ \frac{1} {R T} (u_{x}^{2} I_{m+2} I_{n}+2 u_{x} u_{y} I_{m+1} I_{n+1}+u_{y}^{2} I_{m} I_{n+2}) \Biggr\} \end{aligned} \tag{1-8}

式(1-8)同样可以整理成:

I=i,j[1,0,1]ψ(ξi,j){ρwiwjπ[1+ξi,jucs2+(ξi,ju)22cs4u22cs2]}(1-9)I = \sum_{i,j\in[-1,0,1]} \psi(\boldsymbol{\xi}_{i,j}) \cdot \left\{ \rho \frac{w_i w_j}{\pi} \left[ 1 + \frac{\boldsymbol{\xi}_{i,j} \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{\xi}_{i,j} \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{\|\boldsymbol{u}\|^2}{2 c_s^2} \right] \right\} \tag{1-9}

其中 ξi,j=2RT(ζi,ζj)\boldsymbol{\xi}_{i,j}=\sqrt{2RT} (\zeta_i,\zeta_j)。令 Wi,j=wiwj/πW_{i,j} = w_i w_j / \pi ,便得出了 D2Q9 模型的权重。

类似的,对于三维问题,则可以整理出

I=i,j,k[1,0,1]ψ(ξi,j,k){ρwiwjwkπ3/2[1+ξi,j,kucs2+(ξi,j,ku)22cs4u22cs2]}(1-10)I = \sum_{i,j,k\in[-1,0,1]} \psi(\boldsymbol{\xi}_{i,j,k}) \cdot \left\{ \rho \frac{w_i w_j w_k}{\pi^{3/2}} \left[ 1 + \frac{\boldsymbol{\xi}_{i,j,k} \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{\xi}_{i,j,k} \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{\|\boldsymbol{u}\|^2}{2 c_s^2} \right] \right\} \tag{1-10}

其中 ξi,j,k=2RT(ζi,ζj,ζk)\boldsymbol{\xi}_{i,j,k}=\sqrt{2RT} (\zeta_i,\zeta_j,\zeta_k)。令 Wi,j,k=wiwjwk/π3/2W_{i,j,k} = w_i w_j w_k / \pi^{3/2} ,便得出了 D3Q27 模型的权重。

待定系数法与DnQb模型

上面的内容可以说从数学上给出了明确的证明。然而实际使用中,其实还是用待定系数法来敲定 DnQb 模型更多一些。下面的内容里,为了保持和何雅玲老师的书标号一致,这里将第 α\alpha 个格子速度向量记作 eα\boldsymbol{e}_{\alpha},其权重也记作 ωα\omega_{\alpha}

一般来说,d 维空间下的格子速度的 n 阶张量为:

Ei1i2...in(n)=α(eα)i1(eα)i2...(eα)in(2-1)E_{i_1 i_2 ... i_n}^{(n)} = \sum_{\alpha} (\boldsymbol{e}_{\alpha})_{i_1} (\boldsymbol{e}_{\alpha})_{i_2} ... (\boldsymbol{e}_{\alpha})_{i_n} \tag{2-1}

假如你选取的离散速度集(共有 MM 个速度)是各向同性的,则应该满足

Ei1i2...i2n+1(2n+1)=0,E^{(2n+1)}_{i_1 i_2 ... i_{2n+1}} = 0,

Ei1i2...i2n(2n)=Md(d+2)...(d+2n2)Δi1i2...i2n(2n)E^{(2n)}_{i_1 i_2 ... i_{2n}} = \frac{M}{d (d+2) ... (d+2n-2)} \Delta^{(2n)}_{i_1 i_2 ... i_{2n}}

下面我们首先从张量算子 Δ(2n)\Delta^{(2n)} 开始介绍。详情可见文献 [2] 的第3章,这篇文章在scihub上可以直接下载。

格子张量

张量算子 Δ(2n)\Delta^{(2n)} 实际上计算的是将 2n2n 个指标全部两两配对的所有方式之和。它的具体形式为:

Δij(2)=δijΔijkl(4)=δijδkl+δikδjl+δilδjkΔijklpq(6)=δijΔklpq(4)+δikΔjlpq(4)+δilΔjkpq(4)+δipΔjklq(4)+δiqΔjklp(4)\begin{aligned} \Delta^{(2)}_{ij}&=\delta_{ij} \\ \Delta^{(4)}_{ijkl}&=\delta_{ij}\delta_{kl} + \delta_{ik}\delta_{jl} + \delta_{il}\delta_{jk} \\ \Delta^{(6)}_{ijklpq}&=\delta_{ij}\Delta^{(4)}_{klpq} + \delta_{ik}\Delta^{(4)}_{jlpq} + \delta_{il}\Delta^{(4)}_{jkpq} + \delta_{ip}\Delta^{(4)}_{jklq} + \delta_{iq}\Delta^{(4)}_{jklp} \end{aligned}

并存在如下递归关系:

Δi1i2i2n(2n)=j=22nδi1,ijΔi2ij1ij+1i2n(2n2)\Delta^{(2n)}_{i_1 i_2 \dots i_{2n}} = \sum_{j=2}^{2n} \delta_{i_1, i_{j}} \cdot \Delta^{(2n-2)}_{i_2 \dots i_{j-1} i_{j+1} \dots i_{2n}}

其中 δij\delta_{ij} 为克罗内克积。

  1. 2n2n 个指标分成 nn 对再求和,共有 (2n−1)!! 项。
    计算思路为 :第一个元素有 (2n−1) 个选择配对;剩下 (2n−2) 个元素之中的第一个有 (2n−3) 个选择;后续依此类推。
  2. 有的书会从排列组合视角出发,写成 (2n)!2nn!=总积偶数部分的积\frac{(2n)!}{2^n n!} = \frac{\text{总积}}{\text{偶数部分的积}},结果是等价的。
    计算思路为2n2n 个元素的全排列,除以每对内部的顺序(2n2^n),再除以 nn 对之间的顺序(n!n!)。

为了简洁表示 Δ(2n)\Delta^{(2n)} 的分量,文献 [2] 引入了 upper simplicial components,其索引是非递增的多重指标(如(i1,i2,,ik)(i_1,i_2,\dots,i_k),满足i1i2iki_1 \geq i_2 \geq \dots \geq i_k)。 假设我们讨论一下二维空间的 Δijkl(4)\Delta^{(4)}_{ijkl} ,其中的 i,j,k,li,j,k,l 取 1 或 2。 那么下标的所有排列便是:

  • 1111(全1,非递增)→ 值3
  • 2111(1个2、3个1,非递增)→ 值0
  • 2211(2个2、2个1,非递增)→ 值1
  • 2221(3个2、1个1,非递增)→ 值0
  • 2222(全2,非递增)→ 值3

Δ(4)=[3,0,1,0,3]\Delta^{(4)}=[3,0,1,0,3].

在后续的描述中,为了避免写一大堆下标,我们采用如下简记

E(n)=Ei1i2in(n),Δ(2n)=Δi1i2i2n(2n),δ(2n)=δi1i2i2n(2n),E^{(n)} = E^{(n)}_{i_1 i_2 \dots i_{n}}, \quad \Delta^{(2n)} = \Delta^{(2n)}_{i_1 i_2 \dots i_{2n}}, \quad \delta^{(2n)} = \delta^{(2n)}_{i_1 i_2 \dots i_{2n}},

这里的 Δ(2n)\Delta^{(2n)} 就是 {i1,i2,i2n}\{i_1, i_2, \dots i_{2n}\} 一系列下标组成的 Δi1i2i2n(2n)\Delta^{(2n)}_{i_1 i_2 \dots i_{2n}}。而 δ(2n)\delta^{(2n)} 则是2n个下标的克罗内克积,当所有下标相等时才等于1,否则为0。

速度矩与权重系数

E(2n)E^{(2n)} 的定义中,若假设所有 eα\boldsymbol{e}_{\alpha} 一样长,可得:

1Mα(eαv)2n=(2n1)!!d(d+2)...(d+2n2)Q2nv2n\frac{1}{M} \sum_{\alpha} (\boldsymbol{e}_{\alpha} \cdot \boldsymbol{v})^{2n} = \underbrace{\frac{(2n-1)!!}{d (d+2) ... (d+2n-2)}}_{Q_{2n}} \|\boldsymbol{v}\|^{2n}

对于二维情况 (d=2d=2),则 Q2=1/2Q_2 = 1/2, Q4=3/8Q_4 = 3/8, Q6=5/16Q_6 = 5/16, Q8=35/128Q_8 = 35/128。对于三维情况 (d=3d=3),则 Q2n=1/(2n+1)Q_{2n} = 1 / (2n+1).

同理,拓展到奇数阶,则有:

1Mα(eαv)2n(eαv)=Q2nv2nv\frac{1}{M} \sum_{\alpha} (\boldsymbol{e}_{\alpha} \cdot \boldsymbol{v})^{2n} (\boldsymbol{e}_{\alpha} \cdot \boldsymbol{v}) = Q_{2n} \|\boldsymbol{v}\|^{2n} \boldsymbol{v}

因此,对于一个所有 eα\boldsymbol{e}_{\alpha} 一样长的离散速度集来说,它的离散速度矩的权重是确定的一个数 —— Q2nQ_{2n}

假如 eα{\boldsymbol{e}_{\alpha}} 中的所有速度并不等长,我们则可以认为:

Ei1i2...in(n)=αω(eα)(eα)i1(eα)i2...(eα)inE_{i_1 i_2 ... i_n}^{(n)} = \sum_{\alpha} \omega(\|\boldsymbol{e}_{\alpha}\|) \cdot (\boldsymbol{e}_{\alpha})_{i_1} (\boldsymbol{e}_{\alpha})_{i_2} ... (\boldsymbol{e}_{\alpha})_{i_n}

其中 ω(eα)\omega(\|\boldsymbol{e}_{\alpha}\|) 指代由特征速度的模 eα\|\boldsymbol{e}_{\alpha}\| 决定的权重系数。

DnQb 模型的确定

Qian等的 DnQb 模型采用如下的平衡态分布:

fαeq(ρ,u;eα,ωα)=ωαρ[1+eαucs2+(eαu)22cs4u22cs2].f^{eq}_{\alpha} (\rho, \boldsymbol{u}; \boldsymbol{e}_{\alpha}, \omega_{\alpha}) = \omega_{\alpha} \rho \cdot \left[ 1 + \frac{\boldsymbol{e}_{\alpha} \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{e}_{\alpha} \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{\|\boldsymbol{u}\|^2}{2 c_s^2} \right].

其中 ρ\rho 为流场密度;u\boldsymbol{u} 为流场速度,cs2=RTc_s^2 = RT。若是为了模拟Navier-Stokes方程,平衡态分布函数需要满足下面的约束:

αfαeq=ρ,αfαeqeα=ρu,αfαeqeαieαj=ρuiuj+pδij.(2-2)\begin{aligned} \sum_{\alpha} f^{eq}_{\alpha} &= \rho ,\\ \sum_{\alpha} f^{eq}_{\alpha} \boldsymbol{e}_{\alpha} &= \rho \boldsymbol{u} ,\\ \sum_{\alpha} f^{eq}_{\alpha} e_{\alpha i} e_{\alpha j} &= \rho u_i u_j + p \delta_{ij}. \end{aligned} \tag{2-2}

在待定系数法的框架下,就是把已经设计好的离散速度集 {eα}\{\boldsymbol{e}_{\alpha}\} 代入上面的约束中,然后求解对应的权重 ωα\omega_{\alpha}

在这种视角下,我们要怎么确定就是要用 D2Q9、D3Q15、D3Q19 这些形式呢?

首先,正四边形最多能保证三阶格子张量是各向同性的,而到了四阶就变成了 Eijkl(4)M=4=2δijklE_{ijkl}^{(4)}|_{M=4} = 2 \delta_{ijkl}。为了解决这个问题,我们可以在在原有最近邻链接基础上,增加更远邻的链接,扩大速度方向集合 {eα}\{\boldsymbol{e}_{\alpha}\}。 而正方晶格加对角线的方式,就构成了典型的 D2Q9 模型:此时速度方向等效于正八边形顶点,当 M=8>4M=8>4 时,E(4)E^{(4)} 满足各向同性条件(MM 不整除4)。

同样的道理,在三维空间中若是使用立方晶格,此时速度方向为立方体顶点(M=8M=8,最近邻链接),对称性较低。E(4)E^{(4)} 也是各向异性的,无法导出标准流体方程。此时也需要把一些对角线方向加进来,让 E(4)E^{(4)} 满足各向同性条件。

Example: 以 D2Q9 为例

首先,我们把 D2Q9 分成三组

组别 速度配置 权重
1 (0,0)(0,0) ω0\omega_0
2 cyc:(±c,0)(\pm c,0) ω1=ω2=ω3=ω4\omega_1=\omega_2=\omega_3=\omega_4
3 (±c,±c)(\pm c,\pm c) ω5=ω6=ω7=ω8\omega_5=\omega_6=\omega_7=\omega_8

对于组别 2,根据格子张量的表格,我们有

α[14]eαi=0,α[14]eαieαj=2δijc2α[14]eαieαjeαk=0,α[14]eαieαjeαkeαl=2δijklc4\begin{aligned} \sum_{\alpha\in[1-4]} e_{\alpha i} &= 0 ,& \sum_{\alpha\in[1-4]} e_{\alpha i} e_{\alpha j} &= 2\delta_{ij} \cdot c^2\\ \sum_{\alpha\in[1-4]} e_{\alpha i} e_{\alpha j} e_{\alpha k} &= 0 ,& \sum_{\alpha\in[1-4]} e_{\alpha i} e_{\alpha j} e_{\alpha k} e_{\alpha l} &= 2\delta_{ijkl} \cdot c^4\\ \end{aligned}

对于组别 3,同理可得

α[58]eαi=0,α[58]eαieαj=4δijc2α[58]eαieαjeαk=0,α[58]eαieαjeαkeαl=(4Δijkl(4)8δijkl(4))c4\begin{aligned} \sum_{\alpha\in[5-8]} e_{\alpha i} &= 0 ,& \sum_{\alpha\in[5-8]} e_{\alpha i} e_{\alpha j} &= 4\delta_{ij} \cdot c^2\\ \sum_{\alpha\in[5-8]} e_{\alpha i} e_{\alpha j} e_{\alpha k} &= 0 ,& \sum_{\alpha\in[5-8]} e_{\alpha i} e_{\alpha j} e_{\alpha k} e_{\alpha l} &= (4 \Delta^{(4)}_{ijkl} - 8 \delta^{(4)}_{ijkl}) \cdot c^4\\ \end{aligned}

代入式(2-2),依次得:

ρ(ω0+4ω1+4ω5)+ρu2[ω1(c2cs42cs2)+ω5(2c2cs42cs2)ω02cs2]=ρ(2-3)\rho (\omega_0 + 4 \omega_1 + 4 \omega_5) + \rho \|\boldsymbol{u}\|^2 \left[ \omega_1 \left(\frac{c^2}{c_s^4} - \frac{2}{c_s^2}\right) \right.\\ \left. + \omega_5 \left(\frac{2 c^2}{c_s^4} - \frac{2}{c_s^2}\right) - \frac{\omega_0}{2 c_s^2} \right] = \rho \tag{2-3}

ρu(ω12c2cs2+ω54c2cs2)=ρu(2-4)\rho \boldsymbol{u} \left( \omega_1 \frac{2 c^2}{c_s^2} + \omega_5 \frac{4 c^2}{c_s^2} \right) = \rho \boldsymbol{u} \tag{2-4}

ρω1α=14[eαieαj(1u22cs2)+eαieαjeαkeαlukul2cs4]+ρω5α=58[eαieαj(1u22cs2)+eαieαjeαkeαlukul2cs4]=ρuiuj+pδij(2-5)\begin{aligned} \rho \omega_1 \sum_{\alpha=1}^{4} \left[ e_{\alpha i} e_{\alpha j} \left(1 - \frac{u^2}{2 c_s^2}\right) + \frac{e_{\alpha i} e_{\alpha j} e_{\alpha k} e_{\alpha l} u_k u_l}{2 c_s^4} \right] &+ \\ \rho \omega_5 \sum_{\alpha=5}^{8} \left[ e_{\alpha i} e_{\alpha j} \left(1 - \frac{u^2}{2 c_s^2}\right) + \frac{e_{\alpha i} e_{\alpha j} e_{\alpha k} e_{\alpha l} u_k u_l}{2 c_s^4} \right] &= \rho u_i u_j + p \delta_{ij} \end{aligned} \tag{2-5}

由式(2-3),得:

ω0+4ω1+4ω5=1ω1(c2cs42cs2)+ω2(2c2cs42cs2)ω02cs2=0\begin{aligned} \omega_0 + 4 \omega_1 + 4 \omega_5 = 1 \\ \omega_1 \left(\frac{c^2}{c_s^4} - \frac{2}{c_s^2}\right) + \omega_2 \left(\frac{2 c^2}{c_s^4} - \frac{2}{c_s^2}\right) - \frac{\omega_0}{2 c_s^2} = 0 \end{aligned}

由式(2-4),得:

(ω1+2ω5)2c2cs2=1(\omega_1 + 2 \omega_5) \frac{2 c^2}{c_s^2} =1

式(2-5)需要用到如下化简:

Δijkl(4)ukul=δij(δklukul)+(δikδjlukul)+(δilδjkukul)=δiju2+2uiuj\begin{aligned} \Delta^{(4)}_{ijkl} u_{k} u_{l} &= \delta_{ij} (\delta_{kl} u_{k} u_{l}) + (\delta_{ik}\delta_{jl}u_{k} u_{l}) + (\delta_{il}\delta_{jk} u_{k} u_{l}) \\ &=\delta_{ij} \|\boldsymbol{u}\|^2 + 2 u_i u_j \end{aligned}

其中:

  • 第一项仅当 k=lk=l 时不为0。因此 δklukul=k=lukul=kukuk=u2\delta_{kl} u_k u_l = \sum_{k=l} u_k u_l = \sum_{k} u_k u_k = \|\boldsymbol{u}\|^2
  • 第二项 δik\delta_{ik} 要求 k=ik=i 时才非零,δjl\delta_{jl} 要求 l=jl=j 时才非零。因此对 k,lk,l 求和时,只有 k=ik=il=jl=j 的项保留,即 uiuju_i u_j
  • 第三项 δil\delta_{il} 要求 l=il=iδjk\delta_{jk} 要求 k=jk=j。因此只有 l=il=ik=jk=j 的项保留,即 uiuju_i u_j

由于式(2-5)的左侧可被简化为

(ω14ω5)c4cs4ρδijklukul+ρc2δij[(1u22cs2)(2ω1+4ω5)+2ω5u2c2cs4]+ρuiujw54c2cs4(2-6)\begin{aligned} (\omega_1 - 4 \omega_5) \frac{c^4}{c_s^4} \rho \delta_{ijkl} u_k u_l &+ \rho c^2 \delta_{ij} \left[ (1 - \frac{\|\boldsymbol{u}\|^2}{2 c_s^2}) (2\omega_1 + 4\omega_5) \right. \\ &\left. + 2 \omega_5 \frac{\|\boldsymbol{u}\|^2 c^2}{c_s^4} \right] + \rho u_i u_j w_5 \frac{4 c^2}{c_s^4} \tag{2-6} \end{aligned}

所以

w54c2cs4=1ω14ω5=0(1u22cs2)(2ω1+4ω5)+2ω5u2c2cs4=pρc2\begin{aligned} w_5 \frac{4 c^2}{c_s^4} &= 1 \\ \omega_1 - 4 \omega_5 &= 0 \\ \left(1 - \frac{\|\boldsymbol{u}\|^2}{2 c_s^2}\right) (2\omega_1 + 4\omega_5) + 2 \omega_5 \frac{\|\boldsymbol{u}\|^2 c^2}{c_s^4} &= \frac{p}{\rho c^2} \end{aligned}

联立这些方程就可以解得: ω0=4/9\omega_0 = 4/9, ω1=1/9\omega_1 = 1/9, ω5=1/36\omega_5 = 1/36, cs=c/3c_s = c / \sqrt{3}

附录

(1)对于二维正M边形网格,eα=e(cos(2παM),sin(2παM))\boldsymbol{e}_{\alpha} = e \left( \cos(\frac{2\pi\alpha}{M}), \sin(\frac{2\pi\alpha}{M})\right)。此时阶数 nnMM 的对应关系为:

各向同性张量 E(n)E^{(n)} 正多边形边数 MM
E(2)E^{(2)} M>2M \gt 2
E(3)E^{(3)} M2,M3M \ge 2, M \neq 3
E(4)E^{(4)} M>2,M4M \gt 2, M \neq 4
E(5)E^{(5)} M2,M[3,5]M \ge 2, M \neq [3,5]
E(6)E^{(6)} M>4,M6M \gt 4, M \neq 6
E(7)E^{(7)} M2,M[3,5,7]M \ge 2, M \neq [3,5,7]

(2)文献[2]给出了三维情况下 E(n)E^{(n)} 的各向同性情况,下表用 Y 和 N 分别表示是和否。其中 cyc 表示循环排列, ϕ=(1+5)/2\phi=(1+\sqrt{5})/2

几何形状 速度配置 M E(2)E^{(2)} E(3)E^{(3)} E(4)E^{(4)} E(5)E^{(5)} E(6)E^{(6)}
四面体 (1,1,1)(1,1,1), cyc:(1,1,1)(1,-1,-1) 4 Y N N N N
立方体 cyc:(±1,±1,±1)(\pm 1,\pm 1,\pm 1) 8 Y Y N Y N
八面体 cyc:(±1,0,0)(\pm 1,0,0) 6 Y Y N Y N
十二面体 (±1,±1,±1)(\pm 1,\pm 1,\pm 1), cyc: (0,±ϕ1,±ϕ)(0, \pm \phi-1, \pm \phi) 20 Y Y Y Y N
二十面体 cyc: (0,±ϕ,±1)(0, \pm \phi, \pm 1) 12 Y Y Y Y N

(3)两种基本正方形格子模型的偶数阶张量

速度配置 M E(2)E^{(2)} E(4)E^{(4)} E(6)E^{(6)}
cyc:(±1,0)(\pm 1,0) 4 2δ(2)2 \delta^{(2)} 2δ(4)2 \delta^{(4)} 2δ(6)2 \delta^{(6)}
(±1,±1)(\pm 1,\pm 1) 8 4δ(2)4 \delta^{(2)} 4Δ(4)8δ(4)4 \Delta^{(4)} - 8 \delta^{(4)} 43Δ(6)16δ(6)\frac{4}{3} \Delta^{(6)} - 16 \delta^{(6)}

(4)几种最对称的三维Bravais晶格的偶数阶张量

形状 速度配置 M E(2)E^{(2)} E(4)E^{(4)} E(6)E^{(6)}
Primitive cubic cyc:(±1,0,0)(\pm 1,0,0) 6 2δ(2)2 \delta^{(2)} 2δ(4)2 \delta^{(4)} 2δ(6)2 \delta^{(6)}
Body-centered cubic (±1,±1,±1)(\pm 1,\pm 1,\pm 1) 8 8δ(2)8 \delta^{(2)} 8(Δ(4)2δ(4))8 (\Delta^{(4)} - 2\delta^{(4)}) 8(Δ(6)2Δ(4,2)+16δ(6))8 (\Delta^{(6)} - 2 \Delta^{(4,2)} + 16\delta^{(6)})
Face-centered cubic cyc:(±1,±1,0)(\pm 1,\pm 1,0) 12 8δ(2)8 \delta^{(2)} 4(Δ(4)δ(4))4 (\Delta^{(4)} - \delta^{(4)}) 4(Δ(4,2)+13δ(6))4 (\Delta^{(4,2)} + 13\delta^{(6)})

在文献[2]的原话中:

Δ(n,m)\Delta^{(n,m)} is the sum of all possible products of pairs of Kronecker delta symbols with nn and mm indices。

具体到 Δ(4,2)=Δijklmn(4,2)\Delta^{(4,2)} = \Delta^{(4,2)}_{ijklmn} ,它应该是 C62=15\mathrm{C}_{6}^{2} = 15 个项的和。打个比方:第1个项是 δijδklmn(4)\delta_{ij}\delta^{(4)}_{klmn};第2个项是 δikδjlmn(4)\delta_{ik}\delta^{(4)}_{jlmn};后续依次类推,直到把15个组合都轮换出来,然后求和。

参考

[1] HE X, LUO L S. Theory of the lattice Boltzmann method: From the Boltzmann equation to the lattice Boltzmann equation[J]. Physical Review E, 1997, 56(6): 6811-6817. DOI:10.1103/PhysRevE.56.6811.
[2] WOLFRAM S. Cellular automaton fluids 1: Basic theory[J]. Journal of Statistical Physics, 1986, 45(3-4): 471-526. DOI:10.1007/BF01021083.
[3] 何雅玲, 王勇, 李庆, 童自翔. 格子Boltzmann方法的理论及应用[M]. 1 版. 北京: 高等教育出版社, 2023.

Lattice Boltzmann method

The (force-free) LBM equation is

fi(x+ci,t+δt)fi(x,t)=Ωi(x,t).f_{i}(\boldsymbol{x} + \boldsymbol{c}_{i}, t+\delta_t) - f_{i}(\boldsymbol{x}, t) = \Omega_{i}(\boldsymbol{x}, t).

In LBGK model, Ωi(x,t)=1τ[fi(x,t)fi(eq)]\Omega_{i}(\boldsymbol{x}, t) = -\frac{1}{\tau} \left[ f_{i}(\boldsymbol{x}, t) - f_{i}^{(eq)} \right].

The fi(eq)f_{i}^{(eq)} is the equilibrium state,

fi(eq)=wiρ[1+ciucs2+(ciu)22cs4u22cs2].f_{i}^{(eq)} = w_{i} \rho \left[ 1 + \frac{\boldsymbol{c}_{i} \cdot \boldsymbol{u}}{c_s^2} + \frac{(\boldsymbol{c}_{i} \cdot \boldsymbol{u})^2}{2 c_s^4} - \frac{|\boldsymbol{u}|^2}{2 c_s^2} \right].

wiw_i is the weight of the ci\boldsymbol{c}_{i}. csc_s is the speed of sound. ρ,u\rho, \boldsymbol{u} are the fluid density and velocity, respectively.

For simplicity, we define fi=fiΩif^{*}_{i} = f_{i} - \Omega_{i} as the post-collision population.

Curved boundary in LBM

The purpose of boundary algorithms is to reconstruct missing fiˉ(xF,t+δt)f_{\bar{i}}(\boldsymbol{x}_{F}, t+\delta_t) after the streaming step.

Interpolated bounce-back method (IBB) ia a general ideas to implement the boundary condition. We will introduce it at below.

NOTE: ① In the left figure, xw=xF+qciˉ\boldsymbol{x}_{w} = \boldsymbol{x}_{F} + q \boldsymbol{c}_{\bar{i}}, and ciˉ=ci\boldsymbol{c}_{\bar{i}} = -\boldsymbol{c}_{i}. ② Let the yellow node is xb\vec{x}_b, then q=xwxF/xbxFq = |\vec{x}_w - \vec{x}_F| / |\vec{x}_b - \vec{x}_F|

Interpolated bounce-back method

It treats the unknown fi(xF,t+δt)f_{i}(\boldsymbol{x}_{F}, t+\delta_t) as a polynomial of the known populations.

fi(xF,t+δt)=a1fiˉ(xFF,t)+a2fiˉ(xF,t)+a3fi(xF,t)+Kf_{i}(\boldsymbol{x}_{F}, t+\delta_t) = a_1 f_{\bar{i}}^{*}(\boldsymbol{x}_{FF}, t) + a_2 f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t) + a_3 f_{i}^{*}(\boldsymbol{x}_{F}, t) + K

where KK is a correction term.


|👉 How to find the coefficients aia_i?
(1) Use Chapman-Enskog expansion, Taylor expansion, or Grad’s method to find the coefficients.
(2) BFL: a mesoscopic, geometrical approach proposed by Bouzidi et al.

BFL scheme

It determinates the boundary scheme based on the value of qq. The length of the orange line is 1.

When q12q \ge \frac{1}{2} (Figure (a)), we have

fi(x+,t+δt)=fiˉ(xF,t),fi(xFF,t+δt)=fi(xF,t).f_{i}(\boldsymbol{x}_{+}, t+\delta_t) = f_{\bar{i}}^{*} (\boldsymbol{x}_{F}, t) ,\quad f_{i}(\boldsymbol{x}_{FF}, t+\delta_t) = f_{i}^{*} (\boldsymbol{x}_{F}, t).

Then we can do linear interpolation to calculate fi(xF,t+δt)f_{i}(\boldsymbol{x}_{F}, t+\delta_t):

fi(xF,t+δt)=fi(x+,t+δt)+2q12q[fi(xFF,t+δt)fi(x+,t+δt)]=12qfiˉ(xF,t)+(112q)fi(xF,t)\begin{aligned} f_{i}(\boldsymbol{x}_{F}, t+\delta_t) =& f_{i}(\boldsymbol{x}_{+}, t+\delta_t) + \\ &\frac{2q - 1}{2q} [f_{i}(\boldsymbol{x}_{FF}, t+\delta_t)- f_{i}(\boldsymbol{x}_{+}, t+\delta_t)] \\ =& \frac{1}{2q} f_{\bar{i}}^{*} (\boldsymbol{x}_{F}, t) + (1-\frac{1}{2q}) f_{i}^{*} (\boldsymbol{x}_{F}, t) \end{aligned}

When q<12q < \frac{1}{2} (Figure (b)), we can do linear interpolation, i.e.,

fi(xF,t+δt)=fiˉ(x+,t)=fiˉ(xF,t)+(12q)[fiˉ(xFF,t)fiˉ(xF,t)]=2qfiˉ(xF,t)+(12q)fiˉ(xFF,t)\begin{aligned} f_{i}(\boldsymbol{x}_{F}, t+\delta_t) =& f_{\bar{i}}^{*}(\boldsymbol{x}_{+}, t)\\ =& f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t) \\ & + (1-2q) [f_{\bar{i}}^{*}(\boldsymbol{x}_{FF}, t) - f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t)]\\ =& 2q f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t) + (1-2q) f_{\bar{i}}^{*}(\boldsymbol{x}_{FF}, t) \end{aligned}

One-node local boundary

We can notice that: the general scheme usually employs the data of xFF\boldsymbol{x}_{FF}, which is the second layer of fluid.

To design local linkwise boundary condition, one must discard the nonlocal contribution f(xFF,t)f^{*}(\boldsymbol{x}_{FF}, t) that appears in the interpolation scheme.

Because the existence of f(xFF,t)f^{*}(\boldsymbol{x}_{FF}, t) would make the scheme hard to describe the narrow region or corner.

1st order time approximation

The boundary node xw\vec{x}_w is at the middle of x1\vec{x}_1 and x2\vec{x}_2, which is easier to use the half-way bounce-back (J. Fluid Mech., 271 (1994), pp. 285–309).

The first one is based on the following first-order in time approximation:

fiˉ(xFF,t)=fiˉ(xF,t+δt)LBM streaming stepfiˉ(xF,t)Approximation\underbrace{f_{\bar{i}}^{*}(\boldsymbol{x}_{FF}, t) = f_{\bar{i}}(\boldsymbol{x}_{F}, t+\delta_t) }_{\text{LBM streaming step}} \approx \underbrace{f_{\bar{i}}(\boldsymbol{x}_{F}, t)}_{\text{Approximation}}

Zhao et al.[3] point out that: their scheme can obtain second-order accuracy under the diffusive scaling (δt=O(δx2)\delta_t = O(\delta_x^2)) [3].

Here:

xw=xF+qciˉ\vec{x}_w = \vec{x}_{F} + q \vec{c}_{\bar{i}}, x1=xF+lciˉ\vec{x}_1 = \vec{x}_{F} + l \vec{c}_{\bar{i}}, x2=2xwx1\vec{x}_2 = 2 \vec{x}_{w} - \vec{x}_1.

Stability condition: l[max{0,2q1},2q]l \in [\max\{0, 2q-1\}, 2q]

With x1\vec{x}_1 and xFF\vec{x}_{FF}, the interpolation of xF\vec{x}_{F} is:

fi(xF,t+δt)=l1+lfi(xFF,t+δt)+11+lfi(x1,t+δt)=l1+lfi(xF,t)LBM Streaming+11+lfi(x1,t+δt)\begin{aligned} f_i (\vec{x}_{F}, t + \delta_t) =& \frac{l}{1+l} f_i (\vec{x}_{FF}, t + \delta_t) + \frac{1}{1+l} f_i (\vec{x}_{1}, t + \delta_t) \\ =& \underbrace{\frac{l}{1+l} f_i^{*} (\vec{x}_{F}, t)}_{\text{LBM Streaming}} + \frac{1}{1+l} f_i (\vec{x}_{1}, t + \delta_t) \end{aligned}

For the unknown distribution function fi(x1,t+δt)f_i (\vec{x}_{1}, t + \delta_t), Zhao et al.[3] use the half-way bounce-back purposed by Ladd (J. Fluid Mech., 271 (1994), pp. 285–309).

fi(x1,t+δt)=fiˉ(x2,t+δt)+2wiρ0ciu(xb,t)cs2f_i (\vec{x}_{1}, t + \delta_t) = f_{\bar{i}} (\vec{x}_{2}, t + \delta_t) + 2 w_i \rho_0 \frac{\boldsymbol{c}_i \cdot \boldsymbol{u}(\vec{x}_b, t)}{c_s^2}

Here the wall velocity u(xb,t)\boldsymbol{u}(\vec{x}_b, t) is a known quantity.

Next, we interpolate fiˉ(x2,t+δt)f_{\bar{i}} (\vec{x}_{2}, t + \delta_t) with the distribution functions at xF\vec{x}_F and xb\vec{x}_b:

fiˉ(x2,t+δt)=(1+l2q)fiˉ(xF,t+δt)+(2ql)fiˉ(xb,t+δt)f_{\bar{i}} (\vec{x}_{2}, t + \delta_t) = (1+l-2q) f_{\bar{i}} (\vec{x}_{F}, t + \delta_t) + (2q-l) f_{\bar{i}} (\vec{x}_{b}, t + \delta_t)

Consider the streaming step from xF\vec{x}_F and xb\vec{x}_b, we have: fiˉ(xF,t)=fiˉ(xb,t+δt)f_{\bar{i}}^{*} (\vec{x}_{F}, t) = f_{\bar{i}} (\vec{x}_{b}, t + \delta_t).

Finally, with the approximation

fiˉ(xFF,t)=fiˉ(xF,t+δt)LBM streaming stepfiˉ(xF,t)Approximation,\underbrace{f_{\bar{i}}^{*}(\boldsymbol{x}_{FF}, t) = f_{\bar{i}}(\boldsymbol{x}_{F}, t+\delta_t) }_{\text{LBM streaming step}} \approx \underbrace{f_{\bar{i}}(\boldsymbol{x}_{F}, t)}_{\text{Approximation}},

we can obtain the local boundary scheme:

fi(xF,t+δt)=1+l2q1+lfiˉ(xF,t)before collision+l1+lfi(xF,t)+2ql1+lfiˉ(xF,t)post collision terms+2wiρ0(1+l)cs2ciu(xb,t)Ladd’s bounce-backf_i (\vec{x}_{F}, t + \delta_t) = \underbrace{ \frac{1+l-2q}{1+l} f_{\bar{i}} (\vec{x}_F, t) }_{\text{before collision}} + \underbrace{ \frac{l}{1+l} f_{i}^{*}(\boldsymbol{x}_{F}, t) + \frac{2q-l}{1+l} f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t) }_{\text{post collision terms}} + \underbrace{\frac{2 w_i \rho_0}{(1+l)c_s^2} \boldsymbol{c}_i \cdot \boldsymbol{u}(\vec{x}_b, t)}_{\text{Ladd's bounce-back}}

[NOTE]
(1) This scheme doesn’t rely on the collision model.
(2) If xFF\boldsymbol{x}_{FF} is always available, we can remove the first-order time approximation, and convert the scheme into a two-node scheme.
(3) When l=ql = q, the scheme is equivalent to that purposed by Geier et al. (Comput. Math. Appl., 70 (2015), pp. 507–547)

fi(xF,t+δt)=1q1+qfiˉ(xF,t)+q1+q[fi(xF,t)+fiˉ(xF,t)]+2wiρ0(1+q)cs2ciu(xb,t)f_i (\vec{x}_{F}, t + \delta_t) = \frac{1-q}{1+q} f_{\bar{i}} (\vec{x}_F, t) + \frac{q}{1+q} [f_{i}^{*}(\boldsymbol{x}_{F}, t) + f_{\bar{i}}^{*}(\boldsymbol{x}_{F}, t)] + \frac{2 w_i \rho_0}{(1+q)c_s^2} \boldsymbol{c}_i \cdot \boldsymbol{u}(\vec{x}_b, t)

If we still use fiˉ(xFF,t)f_{\bar{i}}^{*} (\vec{x}_{FF}, t) rather than replacing it with fiˉ(xF,t)f_{\bar{i}} (\vec{x}_{F}, t), the scheme is equivalent to that purposed by Yu et al. (AIAA Paper, 2003-0953, 2003.).

Non-equilibrium state reconstruction

Tao et al.[4] have proposed a scheme to reconstruct the equilibrium and non-equilibrium state of the fluid node near the wall.

For the boundary node xF\vec{x}_F, its unknown distribution function can be calculated by the following interpolation:

fi(xF,t+δt)=11+qfi(xw,t+δt)+q1+qfi(xFF,t+δt).f_{i}(\vec{x}_F, t + \delta_t) = \frac{1}{1+q} f_{i}(\vec{x}_w, t + \delta_t) + \frac{q}{1+q} f_{i}(\vec{x}_{FF}, t + \delta_t).

Then we begin to discuss the reconstruction process.

First, consider the streaming step from xF\vec{x}_F to xFF\vec{x}_{FF}, we have:

fi(xF,t)=fi(xFF,t+δt)f_{i}^{*}(\vec{x}_{F}, t) = f_{i}(\vec{x}_{FF}, t + \delta_t)

Second, the term fi(xw,t+δt)f_{i}(\vec{x}_w, t + \delta_t) can be divided into two parts of equilibrium (fi(eq)f_{i}^{(eq)}) and non-equilibrium states (fi(neq)f_{i}^{(neq)}):

fi(xw,t+δt)=fi(eq)(xw,t+δt)+fi(neq)(xw,t+δt)=fi(eq)(xw,t+δt)+fi(neq)(xF,t+δt)=fi(eq)(xw,t+δt)+fiˉ(neq)(xF,t)\begin{aligned} f_{i}(\vec{x}_w, t + \delta_t) &= f_{i}^{(eq)}(\vec{x}_w, t + \delta_t) + f_{i}^{(neq)}(\vec{x}_w, t + \delta_t) \\ &= f_{i}^{(eq)}(\vec{x}_w, t + \delta_t) + f_{i}^{(neq)}(\vec{x}_F, t + \delta_t) \\ &= f_{i}^{(eq)}(\vec{x}_w, t + \delta_t) + f_{\bar{i}}^{(neq)}(\vec{x}_F, t) \end{aligned}

Consider the substitution from fi(neq)(xF,t+δt)f_{i}^{(neq)}(\vec{x}_F, t + \delta_t) to fiˉ(neq)(xF,t)f_{\bar{i}}^{(neq)}(\vec{x}_F, t) as a non-equilibrium bounce-back, as mentioned in Tao et al.[4].

The fi(eq)(xw,t+δt)f_{i}^{(eq)}(\vec{x}_w, t + \delta_t) can be determined by the known velocity and the approximate fluid density

fi(eq)(xw,t+δt)=fi(eq)(u(xw,t+δt),ρ(xw,t+δt))fi(eq)(u(xw,t+δt),ρ(xF,t+δt))fi(eq)(u(xw,t+δt),ρ(xF,t))\begin{aligned} f_{i}^{(eq)}(\vec{x}_w, t + \delta_t) &= f_{i}^{(eq)} \left( \vec{u}(\vec{x}_w, t + \delta_t), \rho(\vec{x}_w, t + \delta_t) \right) \\ &\approx f_{i}^{(eq)} \left( \vec{u}(\vec{x}_w, t + \delta_t), \rho(\vec{x}_F, t + \delta_t) \right) \\ &\approx f_{i}^{(eq)} \left( \vec{u}(\vec{x}_w, t + \delta_t), \rho(\vec{x}_F, t) \right) \\ \end{aligned}

Here we cite the original sentences from the paper [4]:

It has been demonstrated that for low speed flow, using ρA(t)\rho_A (t) and ρA(t+δt)\rho_A (t+\delta_t) to approximate ρA(t+δt)\rho_A (t+\delta_t) and ρW(t+δt)\rho_W (t+\delta_t) have second- and third-order accuracies, respectively [23,39].

== Reference ==
[23] Z. Guo, C. Zheng, B. Shi, An extrapolation method for boundary conditions in lattice Boltzmann method, Phys. Fluids 14 (6) (2002) 2007–2010.
[39] Z. Guo, C. Shu, Lattice Boltzmann Method and Its Applications in Engineering, World Scientific, 2013.


So the boundary scheme purposed by Tao et al. [4] is:

fi(xF,t+δt)=q1+qfi(xF,t)+11+q{fi(eq)(u(xw,t+δt),ρ(xF,t))+fiˉ(neq)(xF,t)}f_{i}(\vec{x}_F, t + \delta_t) = \frac{q}{1+q} f_{i}^{*}(\vec{x}_{F}, t) + \frac{1}{1+q} \left\{ f_{i}^{(eq)} \left( \vec{u}(\vec{x}_w, t + \delta_t), \rho(\vec{x}_F, t) \right) + f_{\bar{i}}^{(neq)}(\vec{x}_F, t) \right\}

[NOTE]
This scheme sounds easy and familar, right? Let’s make a summary.
(1) It comes from the interpolation scheme.
(2) Employ streaming step to eliminate the unknown fi(xFF,t+δt)f_{i}(\vec{x}_{FF}, t + \delta_t).
(3) The distribution function at the wall node xw\vec{x}_w is divieded into two parts: fi(eq)f_{i}^{(eq)} and fi(neq)f_{i}^{(neq)}.
(4) fi(eq)f_{i}^{(eq)} is approximated by known macroscopic variables.
(5) fi(neq)f_{i}^{(neq)} is approximated by the non-equilibrium bounce-back.

Enhanced single-node boundary condition

Here, we introduce the enhanced single-node boundary condition purposed by Marson et al.[1].

fi(xF,t+δt)=a1fiˉ(xFF)+a2(xF+2f(eq)(xw))1+a3fi(xF)+a4f~i(xw,t+δt)2+a5f~i(xw)3Kfi(neq)(xF)τ4\begin{aligned} f_{i}(\vec{x}_F, t + \delta_t) =& \cancel{a_1 f_{\bar{i}}^{*}(\vec{x}_{FF})} + a_2 \underbrace{(\vec{x}_{F} + 2 f^{(eq)-}(\vec{x}_{w}))}_{\text{1}} + a_3 f_{i}^{*}(\vec{x}_{F})\\ & + a_4 \underbrace{ \tilde{f}_{i}(\vec{x}_w, t + \delta_t) }_{\text{2}} + a_5 \underbrace{\tilde{f}_{i}^{*}(\vec{x}_w)}_{\text{3}} - \underbrace{K^{-} \frac{f_{i}^{(neq)-}(\vec{x}_F)}{\tau^{-}}}_{\text{4}} \end{aligned}

Term ①: The haly-way bounce-back from Ladd (J. Fluid Mech., 271 (1994), pp. 285–309).
Note that: f(eq)(xw)=wiρciuw/cs2f^{(eq)-}(\vec{x}_{w}) = w_i \rho \vec{c}_i \cdot \vec{u}_w / c_s^2.
Term ②: The term from [4].
Term ③: The new term designed by Marson et al.[1].
Term ④: The new (optional) term mentioned in the Sec. ⅣB of Marson et al.[1].

Marson et al.[1] use TRT collision model. So here we briefly introduce the two-relaxation-time (TRT) collision model.

{fi+(x+ciδt,t+δt)fi+(x,t)=1τ+(fi+(x,t)fi(eq)+(x,t))fi(x+ciδt,t+δt)fi(x,t)=1τ(fi(x,t)fi(eq)(x,t))\begin{cases} f_{i}^{+} (\vec{x} + \vec{c}_i \delta_t, t + \delta_t) - f_{i}^{+} (\vec{x}, t) = -\frac{1}{\tau^{+}} (f_{i}^{+} (\vec{x}, t) - f_{i}^{(eq)+} (\vec{x}, t)) \\ f_{i}^{-} (\vec{x} + \vec{c}_i \delta_t, t + \delta_t) - f_{i}^{-} (\vec{x}, t) = -\frac{1}{\tau^{-}} (f_{i}^{-} (\vec{x}, t) - f_{i}^{(eq)-} (\vec{x}, t)) \\ \end{cases}

where

fi+=12(fi+fi),fi=12(fifi),fi(eq)+=12(fi(eq)+fi(eq))=wiρ(1+(ciu)22cs4u22cs2),fi(eq)=12(fi(eq)fi(eq))=wiρciucs2,\begin{aligned} f_{i}^{+} = \frac{1}{2} (f_i + f_{-i}) ,\quad f_{i}^{-} = \frac{1}{2} (f_i - f_{-i}) ,\\ f_{i}^{(eq)+} = \frac{1}{2} (f_i^{(eq)} + f_{-i}^{(eq)}) = w_i \rho (1 + \frac{(\vec{c}_i \cdot \vec{u})^2}{2 c_s^4} - \frac{|\vec{u}|^2}{2 c_s^2}) ,\\ f_{i}^{(eq)-} = \frac{1}{2} (f_i^{(eq)} - f_{-i}^{(eq)}) = w_i \rho \frac{\vec{c}_i \cdot \vec{u}}{c_s^2} ,\\ \end{aligned}

and the TRT magic number is: Λ=(τ+12)(τ12)\Lambda = (\tau^{+} - \frac{1}{2}) (\tau^{-} - \frac{1}{2}).

Marson et al.[1] design the wall populations f~i(xw)\tilde{f}_{i}^{*}(\vec{x}_w) and f~i(xw,t+δt)\tilde{f}_{i}(\vec{x}_w, t+\delta_t).【Ω\Omega is the collision operator.】

f~i(xw,t)=deff~i(eq)(xw,t)+(1Ω)f~i(neq)(xw,t)f~i(xw,t+δt)=deff~i(eq)(xw,t+δt)+f~i(neq)(xw,t+δt)\begin{aligned} \tilde{f}_{i}^{*}(\vec{x}_w, t) \overset{\text{def}}{=}& \tilde{f}_{i}^{(eq)}(\vec{x}_w, t) + (1 - \Omega) \tilde{f}_{i}^{(neq)}(\vec{x}_w, t) \\ \tilde{f}_{i}(\vec{x}_w, t+\delta_t) \overset{\text{def}}{=}& \tilde{f}_{i}^{(eq)}(\vec{x}_w, t+\delta_t) + \tilde{f}_{i}^{(neq)}(\vec{x}_w, t+\delta_t) \end{aligned}

Consider f~i(xw,t+δt)\tilde{f}_{i}(\vec{x}_w, t+\delta_t), its equilibrium part is approximated by

f~i(eq)(xw,t+δt)fi(eq)+(ρ(xF,t),u(x{w,F},t+δt))+fi(eq)(ρ(xF,t),u(xw,t+δt)) \tilde{f}_{i}^{(eq)} (\vec{x}_w, t+\delta_t) \approx f_{i}^{(eq)+} (\rho(\vec{x}_F, t), \vec{u}(\vec{x}_{\{w, F\}}, t+\delta_t)) + f_{i}^{(eq)-} (\rho(\vec{x}_F, t), \vec{u}(\vec{x}_{w}, t+\delta_t))

Here, x{w,F}\vec{x}_{\{w, F\}} means use xw\vec{x}_{w} or xF\vec{x}_F as the position.

The non-equilibrium part is approximated by an nonequilibrium bounce-back. This is a first-order approximation of the nonequilibrium bounce-back method of Zou and He, and it leads to the following second-order accurate approximation:

f~i(neq)(xw,t+δt)=f~i(neq)(xF,t)\tilde{f}_{i}^{(neq)}(\vec{x}_w, t+\delta_t) = \tilde{f}_{i}^{(neq)}(\vec{x}_F, t)

For the f~i(xw,t)\tilde{f}_{i}^{*}(\vec{x}_w, t) , we have

f~i(eq)(xw,t)fi(eq)+(ρ(xF,t),u(x{w,F},t))+fi(eq)(ρ(xF,t),u(xw,t)) \tilde{f}_{i}^{(eq)} (\vec{x}_w, t) \approx f_{i}^{(eq)+} (\rho(\vec{x}_F, t), \vec{u}(\vec{x}_{\{w, F\}}, t)) + f_{i}^{(eq)-} (\rho(\vec{x}_F, t), \vec{u}(\vec{x}_{w}, t))

The non-equilibrium term is also split into symmetric and anti-symmetric parts: f~i(neq)(xw,t)=fi(neq)+(xw,t)+fi(neq)(xw,t)\tilde{f}_{i}^{(neq)}(\vec{x}_w, t) = f_{i}^{(neq)+}(\vec{x}_w, t) + f_{i}^{(neq)-}(\vec{x}_w, t). Marson et al.[1] gives three ways to approximate the non-equilibrium term.

(1) Non-symmetric enhanced local interpolation (Denoted as N):

fi(neq)+(xw,t)fi(neq)+(xF,t),fi(neq)(xw,t)fi(neq)(xF,t)f_{i}^{(neq)+}(\vec{x}_w, t) \approx f_{i}^{(neq)+}(\vec{x}_F, t) ,\quad f_{i}^{(neq)-}(\vec{x}_w, t) \approx -f_{i}^{(neq)-}(\vec{x}_F, t)

(2) Symmetric enhanced local interpolation (Denoted as S):

fi(neq)+(xw,t)fi(neq)+(xF,t),fi(neq)(xw,t)fi(neq)(xF,t)f_{i}^{(neq)+}(\vec{x}_w, t) \approx f_{i}^{(neq)+}(\vec{x}_F, t) ,\quad f_{i}^{(neq)-}(\vec{x}_w, t) \approx f_{i}^{(neq)-}(\vec{x}_F, t)

(3) Central enhanced local interpolation (Denoted as C):

fi(neq)+(xw,t)fi(neq)+(xF,t),fi(neq)(xw,t)=0f_{i}^{(neq)+}(\vec{x}_w, t) \approx f_{i}^{(neq)+}(\vec{x}_F, t) ,\quad f_{i}^{(neq)-}(\vec{x}_w, t) = 0

The following table shows the interpolation coefficients provided by Marson et al. [1]. It should be noted that KK^{-} is the term used to eliminate viscosity errors in steady-state conditions. In practice, τ+12\tau^{+} \rightarrow \frac{1}{2} at high Reynolds numbers, making the contribution of Kfi(neq)(xF)τK^{-} \frac{f_{i}^{(neq)-}(\vec{x}_F)}{\tau^{-}} less significant.

[NOTE]: The calculation of KK^{-} could be found in Marson et al. [1].

References

[1] Marson, F., Thorimbert, Y., Chopard, B., Ginzburg, I. & Latt, J. Enhanced single-node lattice Boltzmann boundary condition for fluid flows. Phys. Rev. E 103, 053308 (2021).
[2] 郭照立 & 郑楚光. 格子Boltzmann方法的原理及应用. (科学出版社, 2009).
[3] Zhao, W., Huang, J. & Yong, W.-A. Boundary conditions for kinetic theory based models I: Lattice boltzmann models. Multiscale Modeling & Simulation 17, 854–872 (2019).
[4] Tao, S., He, Q., Chen, B., Yang, X. & Huang, S. One-point second-order curved boundary condition for lattice Boltzmann simulation of suspended particles. Computers & Mathematics with Applications 76, 1593–1607 (2018).

0%