【笔记】格子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+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).