【笔记】格子Bolztmann方法中单点局部边界条件的实现

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+ci⋅ucs2+(ci⋅u)22cs4−∣u∣22cs2].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 x⃗b\vec{x}_b, then q=∣x⃗w−x⃗F∣/∣x⃗b−x⃗F∣q = |\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 q≥12q \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)+2q−12q[fi(xFF,t+δt)−fi(x+,t+δt)]=12qfiˉ∗(xF,t)+(1−12q)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)+(1−2q)[fiˉ∗(xFF,t)−fiˉ∗(xF,t)]=2qfiˉ∗(xF,t)+(1−2q)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 x⃗w\vec{x}_w is at the middle of x⃗1\vec{x}_1 and x⃗2\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 step≈fiˉ(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:

x⃗w=x⃗F+qc⃗iˉ\vec{x}_w = \vec{x}_{F} + q \vec{c}_{\bar{i}}, x⃗1=x⃗F+lc⃗iˉ\vec{x}_1 = \vec{x}_{F} + l \vec{c}_{\bar{i}}, x⃗2=2x⃗w−x⃗1\vec{x}_2 = 2 \vec{x}_{w} - \vec{x}_1.

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

With x⃗1\vec{x}_1 and x⃗FF\vec{x}_{FF}, the interpolation of x⃗F\vec{x}_{F} is:

fi(x⃗F,t+δt)=l1+lfi(x⃗FF,t+δt)+11+lfi(x⃗1,t+δt)=l1+lfi∗(x⃗F,t)⏟LBM Streaming+11+lfi(x⃗1,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(x⃗1,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(x⃗1,t+δt)=fiˉ(x⃗2,t+δt)+2wiρ0ci⋅u(x⃗b,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(x⃗b,t)\boldsymbol{u}(\vec{x}_b, t) is a known quantity.

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

fiˉ(x⃗2,t+δt)=(1+l−2q)fiˉ(x⃗F,t+δt)+(2q−l)fiˉ(x⃗b,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 x⃗F\vec{x}_F and x⃗b\vec{x}_b, we have: fiˉ∗(x⃗F,t)=fiˉ(x⃗b,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 step≈fiˉ(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(x⃗F,t+δt)=1+l−2q1+lfiˉ(x⃗F,t)⏟before collision+l1+lfi∗(xF,t)+2q−l1+lfiˉ∗(xF,t)⏟post collision terms+2wiρ0(1+l)cs2ci⋅u(x⃗b,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(x⃗F,t+δt)=1−q1+qfiˉ(x⃗F,t)+q1+q[fi∗(xF,t)+fiˉ∗(xF,t)]+2wiρ0(1+q)cs2ci⋅u(x⃗b,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ˉ∗(x⃗FF,t)f_{\bar{i}}^{*} (\vec{x}_{FF}, t) rather than replacing it with fiˉ(x⃗F,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 x⃗F\vec{x}_F, its unknown distribution function can be calculated by the following interpolation:

fi(x⃗F,t+δt)=11+qfi(x⃗w,t+δt)+q1+qfi(x⃗FF,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 x⃗F\vec{x}_F to x⃗FF\vec{x}_{FF}, we have:

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

Second, the term fi(x⃗w,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(x⃗w,t+δt)=fi(eq)(x⃗w,t+δt)+fi(neq)(x⃗w,t+δt)=fi(eq)(x⃗w,t+δt)+fi(neq)(x⃗F,t+δt)=fi(eq)(x⃗w,t+δt)+fiˉ(neq)(x⃗F,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)(x⃗F,t+δt)f_{i}^{(neq)}(\vec{x}_F, t + \delta_t) to fiˉ(neq)(x⃗F,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)(x⃗w,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)(x⃗w,t+δt)=fi(eq)(u⃗(x⃗w,t+δt),ρ(x⃗w,t+δt))≈fi(eq)(u⃗(x⃗w,t+δt),ρ(x⃗F,t+δt))≈fi(eq)(u⃗(x⃗w,t+δt),ρ(x⃗F,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(x⃗F,t+δt)=q1+qfi∗(x⃗F,t)+11+q{fi(eq)(u⃗(x⃗w,t+δt),ρ(x⃗F,t))+fiˉ(neq)(x⃗F,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(x⃗FF,t+δt)f_{i}(\vec{x}_{FF}, t + \delta_t).
(3) The distribution function at the wall node x⃗w\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(x⃗F,t+δt)=a1fiˉ∗(x⃗FF)+a2(x⃗F+2f(eq)−(x⃗w))⏟1+a3fi∗(x⃗F)+a4f~i(x⃗w,t+δt)⏟2+a5f~i∗(x⃗w)⏟3−K−fi(neq)−(x⃗F)τ−⏟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)−(x⃗w)=wiρc⃗i⋅u⃗w/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⃗+c⃗iδt,t+δt)−fi+(x⃗,t)=−1τ+(fi+(x⃗,t)−fi(eq)+(x⃗,t))fi−(x⃗+c⃗iδ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+f−i),fi−=12(fi−f−i),fi(eq)+=12(fi(eq)+f−i(eq))=wiρ(1+(c⃗i⋅u⃗)22cs4−∣u⃗∣22cs2),fi(eq)−=12(fi(eq)−f−i(eq))=wiρc⃗i⋅u⃗cs2,\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∗(x⃗w)\tilde{f}_{i}^{*}(\vec{x}_w) and f~i(x⃗w,t+δt)\tilde{f}_{i}(\vec{x}_w, t+\delta_t).【Ω\Omega is the collision operator.】

f~i∗(x⃗w,t)=deff~i(eq)(x⃗w,t)+(1−Ω)f~i(neq)(x⃗w,t)f~i(x⃗w,t+δt)=deff~i(eq)(x⃗w,t+δt)+f~i(neq)(x⃗w,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(x⃗w,t+δt)\tilde{f}_{i}(\vec{x}_w, t+\delta_t), its equilibrium part is approximated by

f~i(eq)(x⃗w,t+δt)≈fi(eq)+(ρ(x⃗F,t),u⃗(x⃗{w,F},t+δt))+fi(eq)−(ρ(x⃗F,t),u⃗(x⃗w,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 x⃗w\vec{x}_{w} or x⃗F\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)(x⃗w,t+δt)=f~i(neq)(x⃗F,t)\tilde{f}_{i}^{(neq)}(\vec{x}_w, t+\delta_t) = \tilde{f}_{i}^{(neq)}(\vec{x}_F, t)

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

f~i(eq)(x⃗w,t)≈fi(eq)+(ρ(x⃗F,t),u⃗(x⃗{w,F},t))+fi(eq)−(ρ(x⃗F,t),u⃗(x⃗w,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)(x⃗w,t)=fi(neq)+(x⃗w,t)+fi(neq)−(x⃗w,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)+(x⃗w,t)≈fi(neq)+(x⃗F,t),fi(neq)−(x⃗w,t)≈−fi(neq)−(x⃗F,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)+(x⃗w,t)≈fi(neq)+(x⃗F,t),fi(neq)−(x⃗w,t)≈fi(neq)−(x⃗F,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)+(x⃗w,t)≈fi(neq)+(x⃗F,t),fi(neq)−(x⃗w,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 K−K^{-} 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 K−fi(neq)−(x⃗F)τ−K^{-} \frac{f_{i}^{(neq)-}(\vec{x}_F)}{\tau^{-}} less significant.

[NOTE]: The calculation of K−K^{-} 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).