Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Lattice Boltzmann methods

From Wikipedia, the free encyclopedia
Class of computational fluid dynamics methods

Thelattice Boltzmann methods (LBM), originated from thelattice gas automata (LGA) method (Hardy-Pomeau-Pazzis andFrisch-Hasslacher-Pomeau models), is a class ofcomputational fluid dynamics (CFD) methods forfluid simulation. Instead of solving theNavier–Stokes equations directly, a fluid density on a lattice is simulated with streaming and collision (relaxation) processes.[1] The method is versatile[1] as the model fluid can straightforwardly be made to mimic common fluid behaviour like vapour/liquid coexistence, and so fluid systems such as liquid droplets can be simulated. Also, fluids in complex environments such as porous media can be straightforwardly simulated, whereas with complex boundaries other CFD methods can be hard to work with.

Computer simulation in two dimensions, using Lattice Boltzmann method, of a droplet that starts stretched and relaxes to its equilibrium circular shape

Algorithm

[edit]
Schematic of D2Q9 lattice vectors for 2D Lattice Boltzmann

Unlike CFD methods that solve the conservation equations of macroscopic properties (i.e., mass, momentum, and energy) numerically, LBM models the fluid consisting of fictive particles, and such particles perform consecutive propagation and collision processes over a discrete lattice. Due to its particulate nature and local dynamics, LBM has several advantages over other conventional CFD methods, especially in dealing with complex boundaries, incorporating microscopic interactions, and parallelization of the algorithm.[2] A different interpretation of the lattice Boltzmann equation is that of a discrete-velocityBoltzmann equation. The numerical methods of solution of the system of partial differential equations then give rise to a discrete map, which can be interpreted as the propagation and collision of fictitious particles.

In an algorithm, there are collision and streaming steps. These evolve the density of the fluidρ(x,t){\displaystyle \rho ({\vec {x}},t)}, forx{\displaystyle {\vec {x}}} the position andt{\displaystyle t} the time. As the fluid is on a lattice, the density has a number of componentsfi,i=0,,a{\displaystyle f_{i},i=0,\ldots ,a} equal to the number of lattice vectors connected to each lattice point. As an example, the lattice vectors for a simple lattice used in simulations in two dimensions is shown here. This lattice is usually denoted D2Q9, for two dimensions and nine vectors: four vectors along north, east, south and west, plus four vectors to the corners of aunit square, plus a vector with both components zero. Then, for example vectore4=(0,1){\displaystyle {\vec {e}}_{4}=(0,-1)}, i.e., it points due south and so has nox{\displaystyle x} component but ay{\displaystyle y} component of1{\displaystyle -1}. So one of the nine components of the total density at the central lattice point,f4(x,t){\displaystyle f_{4}({\vec {x}},t)}, is that part of the fluid at pointx{\displaystyle {\vec {x}}} moving due south, at a speed in lattice units of one.

Then the steps that evolve the fluid in time are:[1]

The collision step

For the Bhatnagar Gross and Krook (BGK)[3] model, which leads relaxation to equilibrium via collisions between the molecules of a fluid, we have

fi(x,t)=fi(x,t)+fieq(x,t)fi(x,t)τf{\displaystyle f_{i}^{\ast }({\vec {x}},t)=f_{i}({\vec {x}},t)+{\frac {f_{i}^{eq}({\vec {x}},t)-f_{i}({\vec {x}},t)}{\tau _{f}}}\,\!},

wherefi(x,t){\displaystyle f_{i}^{\ast }({\vec {x}},t)} is the new lattice density, andfieq(x,t){\displaystyle f_{i}^{eq}({\vec {x}},t)} is the equilibrium density along directioni which can be expressed by using a Taylor expansion (see below, inMathematical equations for simulations):

fieq=ωiρ(1+3eiuc2+9(eiu)22c43(uu)2c2){\displaystyle f_{i}^{eq}=\omega _{i}\rho \left(1+{\frac {3{\vec {e}}_{i}\cdot {\vec {u}}}{c^{2}}}+{\frac {9({\vec {e}}_{i}\cdot {\vec {u}})^{2}}{2c^{4}}}-{\frac {3({\vec {u}}\cdot {\vec {u}})}{2c^{2}}}\right)}.

The model assumes that the fluid locally relaxes to equilibrium over a characteristic timescaleτf{\displaystyle \tau _{f}}. This timescale determines thekinematic viscosity, the larger it is, the larger is the kinematic viscosity.

The streaming step
fi(x+eiδt,t+δt)=fi(x,t){\displaystyle f_{i}({\vec {x}}+{\vec {e}}_{i}\delta _{t},t+\delta _{t})=f_{i}^{\ast }({\vec {x}},t)\,\!}

Asfi(x,t){\displaystyle f_{i}^{\ast }({\vec {x}},t)} is, by definition, the fluid density at pointx{\displaystyle {\vec {x}}} at timet{\displaystyle t}, that is moving at a velocity ofei{\displaystyle {\vec {e}}_{i}} per time step, then at the next time stept+δt{\displaystyle t+\delta _{t}} it will have flowed to pointx+eiδt{\displaystyle {\vec {x}}+{\vec {e}}_{i}\delta _{t}}.

Advantages

[edit]
  • The LBM was designed from scratch to run efficiently onmassively parallel architectures, ranging from inexpensive embeddedFPGAs andDSPs up toGPUs and heterogeneous clusters and supercomputers (even with a slow interconnection network). It enables complex physics and sophisticated algorithms. Efficiency leads to a qualitatively new level of understanding since it allows solving problems that previously could not be approached (or only with insufficient accuracy).
  • The method originates from a molecular description of a fluid and can directly incorporate physical terms stemming from a knowledge of the interaction between molecules. Hence it is an indispensable instrument in fundamental research, as it keeps the cycle between the elaboration of a theory and the formulation of a corresponding numerical model short.
  • Automated data pre-processing and lattice generation in a time that accounts for a small fraction of the total simulation.
  • Parallel data analysis, post-processing and evaluation.
  • Fully resolved multi-phase flow with small droplets and bubbles.
  • Fully resolved flow through complex geometries and porous media.
  • Complex, coupled flow with heat transfer and chemical reactions.

Limitations and development

[edit]

As with Navier–Stokes based CFD, LBM methods have been successfully coupled with thermal-specific solutions to enable heat transfer (solids-based conduction, convection and radiation) simulation capability. For multiphase/multicomponent models, the interface thickness is usually large and the density ratio across the interface is small when compared with real fluids. Recently this problem has been resolved by Yuan andSchaefer who improved on models by Shan and Chen, Swift, and He, Chen, and Zhang. They were able to reach density ratios of 1000:1 by simply changing theequation of state. It has been proposed to applyGalilean Transformation to overcome the limitation of modelling high-speed fluid flows.[4]The fast advancements of this method had also successfully simulatedmicrofluidics,[5] However, as of now, LBM is still limited in simulating highKnudsen number flows whereMonte Carlo methods are instead used, and high-Mach number flows inaerodynamics are still difficult for LBM, and a consistent thermo-hydrodynamic scheme is absent.[6]

Development from the LGA method

[edit]

LBM originated from thelattice gas automata (LGA) method, which can be considered as a simplified fictitious molecular dynamics model in which space, time, and particle velocities are all discrete. For example, in the 2-dimensionalFHP Model each lattice node is connected to its neighbors by 6 lattice velocities on a triangular lattice; there can be either 0 or 1 particles at a lattice node moving with a given lattice velocity. After a time interval, each particle will move to the neighboring node in its direction; this process is called the propagation or streaming step. When more than one particle arrives at the same node from different directions, they collide and change their velocities according to a set of collision rules. Streaming steps and collision steps alternate. Suitable collision rules should conserve theparticle number (mass), momentum, and energy before and after the collision. LGA suffer from several innate defects for use in hydrodynamic simulations: lack ofGalilean invariance for fast flows,statistical noise and poorReynolds number scaling with lattice size. LGA are, however, well suited to simplify and extend the reach ofreaction diffusion andmolecular dynamics models.

The main motivation for the transition from LGA to LBM was the desire to remove the statistical noise by replacing the Boolean particle number in a lattice direction with its ensemble average, the so-called density distribution function. Accompanying this replacement, the discrete collision rule is also replaced by a continuous function known as the collision operator. In the LBM development, an important simplification is to approximate the collision operator with theBhatnagar-Gross-Krook (BGK) relaxation term. This lattice BGK (LBGK) model makes simulations more efficient and allows flexibility of the transport coefficients. On the other hand, it has been shown that the LBM scheme can also be considered as a special discretized form of the continuous Boltzmann equation. FromChapman-Enskog theory, one can recover the governing continuity and Navier–Stokes equations from the LBM algorithm.

Lattices and the DnQm classification

[edit]

Lattice Boltzmann models can be operated on a number of different lattices, both cubic and triangular, and with or without rest particles in the discrete distribution function.

A popular way of classifying the different methods by lattice is the DnQm scheme. Here "Dn" stands for "n dimensions", while "Qm" stands for "m speeds". For example, D3Q15 is a 3-dimensional lattice Boltzmann model on a cubic grid, with rest particles present. Each node has a crystal shape and can deliver particles to 15 nodes: each of the 6 neighboring nodes that share a surface, the 8 neighboring nodes sharing a corner, and itself.[7] (The D3Q15 model does not contain particles moving to the 12 neighboring nodes that share an edge; adding those would create a "D3Q27" model.)

Real quantities as space and time need to be converted to lattice units prior to simulation. Nondimensional quantities, like theReynolds number, remain the same.

Lattice units conversion

[edit]

In most Lattice Boltzmann simulationsδx{\displaystyle \delta _{x}\,\!} is the basic unit for lattice spacing, so if the domain of lengthL{\displaystyle L\,\!} hasN{\displaystyle N\,\!} lattice units along its entire length, the space unit is simply defined asδx=L/N{\displaystyle \delta _{x}=L/N\,\!}. Speeds in lattice Boltzmann simulations are typically given in terms of the speed of sound. The discrete time unit can therefore be given asδt=δxCs{\displaystyle \delta _{t}={\frac {\delta _{x}}{C_{s}}}\,\!}, where the denominatorCs{\displaystyle C_{s}} is the physical speed of sound.[8]

For small-scale flows (such as those seen inporous media mechanics), operating with the true speed of sound can lead to unacceptably short time steps. It is therefore common to raise the latticeMach number to something much larger than the real Mach number, and compensating for this by raising theviscosity as well in order to preserve theReynolds number.[9]

Simulation of mixtures

[edit]

Simulating multiphase/multicomponent flows has always been a challenge to conventional CFD because of the moving and deformableinterfaces. More fundamentally, the interfaces between differentphases (liquid and vapor) or components (e.g., oil and water) originate from the specific interactions among fluid molecules. Therefore, it is difficult to implement such microscopic interactions into the macroscopic Navier–Stokes equation. However, in LBM, the particulate kinetics provides a relatively easy and consistent way to incorporate the underlying microscopic interactions by modifying the collision operator. Several LBM multiphase/multicomponent models have been developed. Here phase separations are generated automatically from the particle dynamics and no special treatment is needed to manipulate the interfaces as in traditional CFD methods. Successful applications of multiphase/multicomponent LBM models can be found in variouscomplex fluid systems, including interface instability,bubble/droplet dynamics,wetting on solid surfaces, interfacial slip, and droplet electrohydrodynamic deformations.

A lattice Boltzmann model for simulation of gas mixture combustion capable of accommodating significant density variations at low-Mach number regime has been recently proposed.[10]

To this respect, it is worth to notice that, since LBM deals with a larger set of fields (as compared to conventional CFD), the simulation of reactive gas mixtures presents some additional challenges in terms of memory demand as far as large detailed combustion mechanisms are concerned. Those issues may be addressed, though, by resorting to systematic model reduction techniques.[11][12][13]

Thermal lattice-Boltzmann method

[edit]

Currently (2009), a thermal lattice-Boltzmann method (TLBM) falls into one of three categories: the multi-speed approach,[14] the passive scalar approach,[15] and the thermal energy distribution.[16]

Derivation of Navier–Stokes equation from discrete LBE

[edit]
See also:Derivation of the Navier–Stokes equations

Starting with the discrete lattice Boltzmann equation (also referred to as LBGK equation due to the collision operator used). We first do a 2nd-orderTaylor series expansion about the left side of the LBE. This is chosen over a simpler 1st-order Taylor expansion as the discrete LBE cannot be recovered. When doing the 2nd-order Taylor series expansion, the zero derivative term and the first term on the right will cancel, leaving only the first and second derivative terms of the Taylor expansion and the collision operator:

fi(x+eiδt,t+δt)=fi(x,t)+δtτf(fieqfi).{\displaystyle f_{i}({\vec {x}}+{\vec {e}}_{i}\delta _{t},t+\delta _{t})=f_{i}({\vec {x}},t)+{\frac {\delta _{t}}{\tau _{f}}}(f_{i}^{eq}-f_{i}).}

For simplicity, writefi(x,t){\displaystyle f_{i}({\vec {x}},t)} asfi{\displaystyle f_{i}}. The slightly simplified Taylor series expansion is then as follows, where ":" is the colon product between dyads:

fit+eifi+(12eiei:fi+eifit+122fit2)=1τ(fieqfi).{\displaystyle {\frac {\partial f_{i}}{\partial t}}+{\vec {e}}_{i}\cdot \nabla f_{i}+\left({\frac {1}{2}}{\vec {e}}_{i}{\vec {e}}_{i}:\nabla \nabla f_{i}+{\vec {e}}_{i}\cdot \nabla {\frac {\partial f_{i}}{\partial t}}+{\frac {1}{2}}{\frac {\partial ^{2}f_{i}}{\partial t^{2}}}\right)={\frac {1}{\tau }}(f_{i}^{eq}-f_{i}).}

By expanding the particle distribution function into equilibrium and non-equilibrium components and using the Chapman-Enskog expansion, whereK{\displaystyle K} is the Knudsen number, the Taylor-expanded LBE can be decomposed into different magnitudes of order for the Knudsen number in order to obtain the proper continuum equations:

fi=fieq+Kfineq,{\displaystyle f_{i}=f_{i}^{\text{eq}}+Kf_{i}^{\text{neq}},}
fineq=fi(1)+Kfi(2)+O(K2).{\displaystyle f_{i}^{\text{neq}}=f_{i}^{(1)}+Kf_{i}^{(2)}+O(K^{2}).}

The equilibrium and non-equilibrium distributions satisfy the following relations to their macroscopic variables (these will be used later, once the particle distributions are in the "correct form" in order to scale from the particle to macroscopic level):

ρ=ifieq,{\displaystyle \rho =\sum _{i}f_{i}^{\text{eq}},}
ρu=ifieqei,{\displaystyle \rho {\vec {u}}=\sum _{i}f_{i}^{\text{eq}}{\vec {e}}_{i},}
0=ifi(k)for k=1,2,{\displaystyle 0=\sum _{i}f_{i}^{(k)}\qquad {\text{for }}k=1,2,}
0=ifi(k)ei.{\displaystyle 0=\sum _{i}f_{i}^{(k)}{\vec {e}}_{i}.}

The Chapman-Enskog expansion is then:

t=Kt1+K2t2for t2(diffusive time-scale)t1(convective time-scale),{\displaystyle {\frac {\partial }{\partial t}}=K{\frac {\partial }{\partial t_{1}}}+K^{2}{\frac {\partial }{\partial t_{2}}}\qquad {\text{for }}t_{2}({\text{diffusive time-scale}})\ll t_{1}({\text{convective time-scale}}),}
x=Kx1.{\displaystyle {\frac {\partial }{\partial x}}=K{\frac {\partial }{\partial x_{1}}}.}

By substituting the expanded equilibrium and non-equilibrium into the Taylor expansion and separating into different orders ofK{\displaystyle K}, the continuum equations are nearly derived.

For orderK0{\displaystyle K^{0}}:

fieqt1+ei1fieq=fi(1)τ.{\displaystyle {\frac {\partial f_{i}^{\text{eq}}}{\partial t_{1}}}+{\vec {e}}_{i}\nabla _{1}f_{i}^{\text{eq}}=-{\frac {f_{i}^{(1)}}{\tau }}.}

For orderK1{\displaystyle K^{1}}:

fi(1)t1+fieqt2+eifi(1)+12eiei:fieq+eifieqt1+122fieqt12=fi(2)τ.{\displaystyle {\frac {\partial f_{i}^{(1)}}{\partial t_{1}}}+{\frac {\partial f_{i}^{\text{eq}}}{\partial t_{2}}}+{\vec {e}}_{i}\nabla f_{i}^{(1)}+{\frac {1}{2}}{\vec {e}}_{i}{\vec {e}}_{i}:\nabla \nabla f_{i}^{\text{eq}}+{\vec {e}}_{i}\cdot \nabla {\frac {\partial f_{i}^{\text{eq}}}{\partial t_{1}}}+{\frac {1}{2}}{\frac {\partial ^{2}f_{i}^{\text{eq}}}{\partial t_{1}^{2}}}=-{\frac {f_{i}^{(2)}}{\tau }}.}

Then, the second equation can be simplified with some algebra and the first equation into the following:

fieqt2+(112τ)[fi(1)t1+ei1fi(1)]=fi(2)τ.{\displaystyle {\frac {\partial f_{i}^{\text{eq}}}{\partial t_{2}}}+\left(1-{\frac {1}{2\tau }}\right)\left[{\frac {\partial f_{i}^{(1)}}{\partial t_{1}}}+{\vec {e}}_{i}\nabla _{1}f_{i}^{(1)}\right]=-{\frac {f_{i}^{(2)}}{\tau }}.}

Applying the relations between the particle distribution functions and the macroscopic properties from above, the mass and momentum equations are achieved:

ρt+ρu=0,{\displaystyle {\frac {\partial \rho }{\partial t}}+\nabla \cdot \rho {\vec {u}}=0,}
ρut+Π=0.{\displaystyle {\frac {\partial \rho {\vec {u}}}{\partial t}}+\nabla \cdot \Pi =0.}

The momentum flux tensorΠ{\displaystyle \Pi } has the following form then:

Πxy=ieixeiy[fieq+(112τ)fi(1)],{\displaystyle \Pi _{xy}=\sum _{i}{\vec {e}}_{ix}{\vec {e}}_{iy}\left[f_{i}^{eq}+\left(1-{\frac {1}{2\tau }}\right)f_{i}^{(1)}\right],}

whereeixeiy{\displaystyle {\vec {e}}_{ix}{\vec {e}}_{iy}} is shorthand for the square of the sum of all the components ofei{\displaystyle {\vec {e}}_{i}} (i. e.(xeix)2=xyeixeiy{\displaystyle \textstyle \left(\sum _{x}{\vec {e}}_{ix}\right)^{2}=\sum _{x}\sum _{y}{\vec {e}}_{ix}{\vec {e}}_{iy}}), and the equilibrium particle distribution with second order to be comparable to the Navier–Stokes equation is:

fieq=ωiρ(1+eiucs2+(eiu)22cs4u22cs2).{\displaystyle f_{i}^{\text{eq}}=\omega _{i}\rho \left(1+{\frac {{\vec {e}}_{i}{\vec {u}}}{c_{s}^{2}}}+{\frac {({\vec {e}}_{i}{\vec {u}})^{2}}{2c_{s}^{4}}}-{\frac {{\vec {u}}^{2}}{2c_{s}^{2}}}\right).}

The equilibrium distribution is only valid for small velocities or smallMach numbers. Inserting the equilibrium distribution back into the flux tensor leads to:

Πxy(0)=ieixeiyfieq=pδxy+ρuxuy,{\displaystyle \Pi _{xy}^{(0)}=\sum _{i}{\vec {e}}_{ix}{\vec {e}}_{iy}f_{i}^{eq}=p\delta _{xy}+\rho u_{x}u_{y},}
Πxy(1)=(112τ)ieixeiyfi(1)=ν(x(ρuy)+y(ρux)).{\displaystyle \Pi _{xy}^{(1)}=\left(1-{\frac {1}{2\tau }}\right)\sum _{i}{\vec {e}}_{ix}{\vec {e}}_{iy}f_{i}^{(1)}=\nu \left(\nabla _{x}\left(\rho {\vec {u}}_{y}\right)+\nabla _{y}\left(\rho {\vec {u}}_{x}\right)\right).}

Finally, theNavier–Stokes equation is recovered under the assumption that density variation is small:

ρ(uxt+yuxuy)=xp+νy(x(ρuy)+y(ρux)).{\displaystyle \rho \left({\frac {\partial {\vec {u}}_{x}}{\partial t}}+\nabla _{y}\cdot {\vec {u}}_{x}{\vec {u}}_{y}\right)=-\nabla _{x}p+\nu \nabla _{y}\cdot \left(\nabla _{x}\left(\rho {\vec {u}}_{y}\right)+\nabla _{y}\left(\rho {\vec {u}}_{x}\right)\right).}

This derivation follows the work of Chen and Doolen.[17]

Mathematical equations for simulations

[edit]

The continuous Boltzmann equation is an evolution equation for a single particle probability distribution functionf(x,ei,t){\displaystyle f({\vec {x}},{\vec {e}}_{i},t)} and the internal energy density distribution functiong(x,ei,t){\displaystyle g({\vec {x}},{\vec {e}}_{i},t)} (He et al.) are each respectively:

tf+(e)f+Fvf=Ω(f),{\displaystyle \partial _{t}f+({\vec {e}}\cdot \nabla )f+F\partial _{v}f=\Omega (f),}
tg+(e)g+Gvf=Ω(g),{\displaystyle \partial _{t}g+({\vec {e}}\cdot \nabla )g+G\partial _{v}f=\Omega (g),}

whereg(x,ei,t){\displaystyle g({\vec {x}},{\vec {e}}_{i},t)} is related tof(x,ei,t){\displaystyle f({\vec {x}},{\vec {e}}_{i},t)} by

g(x,ei,t)=(eu)22f(x,ei,t),{\displaystyle g({\vec {x}},{\vec {e}}_{i},t)={\frac {({\vec {e}}-{\vec {u}})^{2}}{2}}f({\vec {x}},{\vec {e}}_{i},t),}

F{\displaystyle F} is an external force,Ω{\displaystyle \Omega } is a collision integral, ande{\displaystyle {\vec {e}}} (also labeled byξ{\displaystyle {\vec {\xi }}} in literature) is the microscopic velocity. The external forceF{\displaystyle F} is related to temperature external forceG{\displaystyle G} by the relation below. A typical test for one's model is theRayleigh–Bénard convection forG{\displaystyle G}.

F=G(eu)RTfeq,{\displaystyle F={\frac {{\vec {G}}\cdot ({\vec {e}}-{\vec {u}})}{RT}}f^{\text{eq}},}
G=βg0(TTavg)k.{\displaystyle {\vec {G}}=\beta g_{0}(T-T_{avg}){\vec {k}}.}

Macroscopic variables such as densityρ{\displaystyle \rho }, velocityu{\displaystyle {\vec {u}}}, and temperatureT{\displaystyle T} can be calculated as the moments of the density distribution function:

ρ=fde,{\displaystyle \rho =\int f\,d{\vec {e}},}
ρu=efde,{\displaystyle \rho {\vec {u}}=\int {\vec {e}}f\,d{\vec {e}},}
ρDRT2=ρϵ=gde.{\displaystyle {\frac {\rho DRT}{2}}=\rho \epsilon =\int g\,d{\vec {e}}.}

The lattice Boltzmann method discretizes this equation by limiting space to a lattice and the velocity space to a discrete set of microscopic velocities (i. e.ei=(eix,eiy){\displaystyle {\vec {e}}_{i}=({\vec {e}}_{ix},{\vec {e}}_{iy})}). The microscopic velocities in D2Q9, D3Q15, and D3Q19 for example are given as:

ei=c×{(0,0)i=0(1,0),(0,1),(1,0),(0,1)i=1,2,3,4(1,1),(1,1),(1,1),(1,1)i=5,6,7,8{\displaystyle {\vec {e}}_{i}=c\times {\begin{cases}(0,0)&i=0\\(1,0),(0,1),(-1,0),(0,-1)&i=1,2,3,4\\(1,1),(-1,1),(-1,-1),(1,-1)&i=5,6,7,8\\\end{cases}}}
ei=c×{(0,0,0)i=0(±1,0,0),(0,±1,0),(0,0,±1)i=1,2,...,5,6(±1,±1,±1)i=7,8,...,13,14{\displaystyle {\vec {e}}_{i}=c\times {\begin{cases}(0,0,0)&i=0\\(\pm 1,0,0),(0,\pm 1,0),(0,0,\pm 1)&i=1,2,...,5,6\\(\pm 1,\pm 1,\pm 1)&i=7,8,...,13,14\\\end{cases}}}
ei=c×{(0,0,0)i=0(±1,0,0),(0,±1,0),(0,0,±1)i=1,2,...,5,6(±1,±1,0),(±1,0,±1),(0,±1,±1)i=7,8,...,17,18{\displaystyle {\vec {e}}_{i}=c\times {\begin{cases}(0,0,0)&i=0\\(\pm 1,0,0),(0,\pm 1,0),(0,0,\pm 1)&i=1,2,...,5,6\\(\pm 1,\pm 1,0),(\pm 1,0,\pm 1),(0,\pm 1,\pm 1)&i=7,8,...,17,18\\\end{cases}}}

The single-phase discretized Boltzmann equation for mass density and internal energy density are:

fi(x+eiδt,t+δt)fi(x,t)+Fi=Ω(f),{\displaystyle f_{i}({\vec {x}}+{\vec {e}}_{i}\delta _{t},t+\delta _{t})-f_{i}({\vec {x}},t)+F_{i}=\Omega (f),}
gi(x+eiδt,t+δt)gi(x,t)+Gi=Ω(g).{\displaystyle g_{i}({\vec {x}}+{\vec {e}}_{i}\delta _{t},t+\delta _{t})-g_{i}({\vec {x}},t)+G_{i}=\Omega (g).}

The collision operator is often approximated by a BGK collision operator under the condition it also satisfies the conservation laws:

Ω(f)=1τf(fieqfi),{\displaystyle \Omega (f)={\frac {1}{\tau _{f}}}(f_{i}^{\text{eq}}-f_{i}),}
Ω(g)=1τg(gieqgi).{\displaystyle \Omega (g)={\frac {1}{\tau _{g}}}(g_{i}^{\text{eq}}-g_{i}).}

In the collision operatorfieq{\displaystyle f_{i}^{\text{eq}}} is the discrete,equilibrium particle probability distribution function. In D2Q9 and D3Q19, it is shown below for an incompressible flow in continuous and discrete form whereD,R, andT are the dimension, universal gas constant, and absolute temperature respectively. The partial derivation for the continuous to discrete form is provided through a simple derivation to second order accuracy.

feq=ρ(2πRT)D/2e(eu)22RT{\displaystyle f^{\text{eq}}={\frac {\rho }{(2\pi RT)^{D/2}}}e^{-{\frac {({\vec {e}}-{\vec {u}})^{2}}{2RT}}}}
=ρ(2πRT)D/2e(e)22RTeeuRTu22RT{\displaystyle ={\frac {\rho }{(2\pi RT)^{D/2}}}e^{-{\frac {({\vec {e}})^{2}}{2RT}}}e^{{\frac {{\vec {e}}{\vec {u}}}{RT}}-{\frac {{\vec {u}}^{2}}{2RT}}}}
=ρ(2πRT)D/2e(e)22RT(1+euRT+(eu)22(RT)2u22RT+...){\displaystyle ={\frac {\rho }{(2\pi RT)^{D/2}}}e^{-{\frac {({\vec {e}})^{2}}{2RT}}}\left(1+{\frac {{\vec {e}}{\vec {u}}}{RT}}+{\frac {({\vec {e}}{\vec {u}})^{2}}{2(RT)^{2}}}-{\frac {{\vec {u}}^{2}}{2RT}}+...\right)}

Lettingc=3RT{\displaystyle c={\sqrt {3RT}}} yields the final result:

fieq=ωiρ(1+3eiuc2+9(eiu)22c43(u)22c2){\displaystyle f_{i}^{eq}=\omega _{i}\rho \left(1+{\frac {3{\vec {e}}_{i}{\vec {u}}}{c^{2}}}+{\frac {9({\vec {e}}_{i}{\vec {u}})^{2}}{2c^{4}}}-{\frac {3({\vec {u}})^{2}}{2c^{2}}}\right)}
geq=ρ(eu)22(2πRT)D/2e(eu)22RT{\displaystyle g^{eq}={\frac {\rho ({\vec {e}}-{\vec {u}})^{2}}{2(2\pi RT)^{D/2}}}e^{-{\frac {({\vec {e}}-{\vec {u}})^{2}}{2RT}}}}
ωi={4/9i=01/9i=1,2,3,41/36i=5,6,7,8{\displaystyle \omega _{i}={\begin{cases}4/9&i=0\\1/9&i=1,2,3,4\\1/36&i=5,6,7,8\\\end{cases}}}
ωi={1/3i=01/18i=1,2,...,5,61/36i=7,8,...,17,18{\displaystyle \omega _{i}={\begin{cases}1/3&i=0\\1/18&i=1,2,...,5,6\\1/36&i=7,8,...,17,18\\\end{cases}}}

As much work has already been done on a single-component flow, the following TLBM will be discussed. The multicomponent/multiphase TLBM is also more intriguing and useful than simply one component. To be in line with current research, define the set of all components of the system (i. e. walls of porous media, multiple fluids/gases, etc.)Ψ{\displaystyle \Psi } with elementsσj{\displaystyle \sigma _{j}}.

fiσ(x+eiδt,t+δt)fiσ(x,t)+Fi=1τfσ(fiσ,eq(ρσ,vσ)fiσ){\displaystyle f_{i}^{\sigma }({\vec {x}}+{\vec {e}}_{i}\delta _{t},t+\delta _{t})-f_{i}^{\sigma }({\vec {x}},t)+F_{i}={\frac {1}{\tau _{f}^{\sigma }}}(f_{i}^{\sigma ,eq}(\rho ^{\sigma },v^{\sigma })-f_{i}^{\sigma })}

The relaxation parameter,τfσj{\displaystyle \tau _{f}^{\sigma _{j}}\,\!}, is related to thekinematic viscosity,νfσj{\displaystyle \nu _{f}^{\sigma _{j}}\,\!}, by the following relationship:

νfσj=(τfσj0.5)cs2δt.{\displaystyle \nu _{f}^{\sigma _{j}}=(\tau _{f}^{\sigma _{j}}-0.5)c_{s}^{2}\delta _{t}.}

Themoments of thefi{\displaystyle f_{i}\,\!} give the local conserved quantities. The density is given by

ρ=σifi{\displaystyle \rho =\sum _{\sigma }\sum _{i}f_{i}\,\!}
ρϵ=igi{\displaystyle \rho \epsilon =\sum _{i}g_{i}\,\!}
ρσ=ifiσ{\displaystyle \rho ^{\sigma }=\sum _{i}f_{i}^{\sigma }\,\!}

and the weighted average velocity,u{\displaystyle {\vec {u'}}\,\!}, and the local momentum are given by

u=(σρσuστfσ)/(σρστfσ){\displaystyle {\vec {u'}}=\left(\sum _{\sigma }{\frac {\rho ^{\sigma }{\vec {u^{\sigma }}}}{\tau _{f}^{\sigma }}}\right)/\left(\sum _{\sigma }{\frac {\rho ^{\sigma }}{\tau _{f}^{\sigma }}}\right)}
ρσuσ=ifiσei.{\displaystyle \rho ^{\sigma }{\vec {u^{\sigma }}}=\sum _{i}f_{i}^{\sigma }{\vec {e}}_{i}.}
vσ=u+τfσρσFσ{\displaystyle v^{\sigma }={\vec {u'}}+{\frac {\tau _{f}^{\sigma }}{\rho ^{\sigma }}}{\vec {F}}^{\sigma }}

In the above equation for the equilibrium velocityvσ{\displaystyle v^{\sigma }\,\!}, theFσ{\displaystyle {\vec {F}}^{\sigma }\,\!} term is the interaction force between a component and the other components. It is still the subject of much discussion as it is typically a tuning parameter that determines how fluid-fluid, fluid-gas, etc. interact. Frank et al. list current models for this force term. The commonly used derivations are Gunstensen chromodynamic model, Swift's free energy-based approach for both liquid/vapor systems and binary fluids, He's intermolecular interaction-based model, the Inamuro approach, and the Lee and Lin approach.[18]

The following is the general description forFσ{\displaystyle {\vec {F}}^{\sigma }\,\!} as given by several authors.[19][20]

Fσ=ψσ(x)σjHσσj(x,x)iψσj(x+ei)ei{\displaystyle {\vec {F}}^{\sigma }=-\psi ^{\sigma }({\vec {x}})\sum _{\sigma _{j}}H^{\sigma \sigma _{j}}({\vec {x}},{\vec {x}}')\sum _{i}\psi ^{\sigma _{j}}({\vec {x}}+{\vec {e}}_{i}){\vec {e}}_{i}\,\!}

ψ(x){\displaystyle \psi ({\vec {x}})\,\!} is the effective mass andH(x,x){\displaystyle H({\vec {x}},{\vec {x}}')\,\!} is Green's function representing the interparticle interaction withx{\displaystyle {\vec {x}}'\,\!} as the neighboring site. SatisfyingH(x,x)=H(x,x){\displaystyle H({\vec {x}},{\vec {x}}')=H({\vec {x}}',{\vec {x}})\,\!} and whereH(x,x)>0{\displaystyle H({\vec {x}},{\vec {x}}')>0\,\!} represents repulsive forces. For D2Q9 and D3Q19, this leads to

Hσσj(x,x)={hσσj|xx|c0|xx|>c{\displaystyle H^{\sigma \sigma _{j}}({\vec {x}},{\vec {x}}')={\begin{cases}h^{\sigma \sigma _{j}}&\left|{\vec {x}}-{\vec {x}}'\right|\leq c\\0&\left|{\vec {x}}-{\vec {x}}'\right|>c\\\end{cases}}}

Hσσj(x,x)={hσσj|xx|=chσσj/2|xx|=2c0otherwise{\displaystyle H^{\sigma \sigma _{j}}({\vec {x}},{\vec {x}}')={\begin{cases}h^{\sigma \sigma _{j}}&\left|{\vec {x}}-{\vec {x}}'\right|=c\\h^{\sigma \sigma _{j}}/2&\left|{\vec {x}}-{\vec {x}}'\right|={\sqrt {2c}}\\0&{\text{otherwise}}\\\end{cases}}}

The effective mass as proposed by Shan and Chen uses the following effective mass for asingle-component, multiphase system. Theequation of state is also given under the condition of a single component and multiphase.

ψ(x)=ψ(ρσ)=ρ0σ[1e(ρσ/ρ0σ)]{\displaystyle \psi ({\vec {x}})=\psi (\rho ^{\sigma })=\rho _{0}^{\sigma }\left[1-e^{(-\rho ^{\sigma }/\rho _{0}^{\sigma })}\right]\,\!}
p=cs2ρ+c0h[ψ(x)]2{\displaystyle p=c_{s}^{2}\rho +c_{0}h[\psi ({\vec {x}})]^{2}\,\!}

So far, it appears thatρ0σ{\displaystyle \rho _{0}^{\sigma }\,\!} andhσσj{\displaystyle h^{\sigma \sigma _{j}}\,\!} are free constants to tune but once plugged into the system'sequation of state(EOS), they must satisfy the thermodynamic relationships at the critical point such that(P/ρ)T=(2P/ρ2)T=0{\displaystyle (\partial P/\partial {\rho })_{T}=(\partial ^{2}P/\partial {\rho ^{2}})_{T}=0\,\!} andp=pc{\displaystyle p=p_{c}\,\!}. For the EOS,c0{\displaystyle c_{0}\,\!} is 3.0 for D2Q9 and D3Q19 while it equals 10.0 for D3Q15.[21]

It was later shown by Yuan and Schaefer[22] that the effective mass density needs to be changed to simulate multiphase flow more accurately. They compared the Shan and Chen (SC), Carnahan-Starling (C–S), van der Waals (vdW), Redlich–Kwong (R–K), Redlich–Kwong Soave (RKS), and Peng–Robinson (P–R) EOS. Their results revealed that the SC EOS was insufficient and that C–S, P–R, R–K, and RKS EOS are all more accurate in modeling multiphase flow of a single component.

For the popular isothermal Lattice Boltzmann methods these are the only conserved quantities. Thermal models also conserve energy and therefore have an additional conserved quantity:

ρθ+ρuu=ifieiei.{\displaystyle \rho \theta +\rho uu=\sum _{i}f_{i}{\vec {e}}_{i}{\vec {e}}_{i}.}

Unstructured grids

[edit]

Normally, the lattice Boltzmann methods is implemented on regular grids, However the use of unstructured grid can help with solving complex boundaries, unstructured grids are made of triangles or tetrahedra with variations.

AssumingΩj{\displaystyle \Omega ^{j}} is a volume made by allbarycenters of tetrahedra, faces and edges connected to vertexvj{\displaystyle {\boldsymbol {v}}^{j}}, the discrete velocity density function:

fi(vj,t+δt)=fi(vj,t)δtkSijkfi(vk,t)δtτkCjk(fi(vk,t)fieq(vk)){\displaystyle f_{i}({\boldsymbol {v}}^{j},t+\delta t)=f_{i}({\boldsymbol {v}}^{j},t)-\delta t\sum _{k}S_{i}^{jk}f_{i}({\boldsymbol {v}}^{k},t)-{\delta t \over \tau }\sum _{k}C^{jk}(f_{i}({\boldsymbol {v}}^{k},t)-f_{i}^{eq}({\boldsymbol {v}}^{k}))}

wherevk{\displaystyle {\boldsymbol {v}}^{k}} are position of a vertex and its neighbors, and:

Cjk=1VjΩjwk(x)dΩ{\displaystyle C^{jk}={1 \over V^{j}}\int _{\Omega ^{j}}w_{k}({\boldsymbol {x}})d\Omega }

Sijk=1VjΩj(ein)wk(x)dΩ{\displaystyle S_{i}^{jk}={1 \over V^{j}}\oint _{\partial \Omega ^{j}}({\vec {e_{i}}}{\vec {n}})w_{k}({\boldsymbol {x}})d\Omega }

wherewk(x){\displaystyle w_{k}({\boldsymbol {x}})} is wights of a linear interpolation ofx{\displaystyle {\boldsymbol {x}}} by vertices of triangle or tetrahedra thatx{\displaystyle {\boldsymbol {x}}} lies within.[23]

Applications

[edit]

During the last years, the LBM has proven to be a powerful tool for solving problems at different length and time scales. Some of the applications of LBM include:

  • Porous Media flows[24]
  • Biomedical Flows
  • Earth sciences (Soil filtration).
  • Energy Sciences (Fuel Cells[25]).

Example implementation

[edit]

This is a barebone implementation of LBM on a 100x100 grid, UsingPython:

# This is a fluid simulator using the lattice Boltzmann method.# Using D2Q9 and periodic boundary, and used no external library.# It generates two ripples at 50,50 and 50,40.# Reference: Erlend Magnus Viggen's Master thesis, "The Lattice Boltzmann Method with Applications in Acoustics".# For Wikipedia under CC-BY-SA license.importmath# Define some utilitiesdefsum(a):s=0foreina:s=s+ereturns# Weights in D2Q9Weights=[1/36,1/9,1/36,1/9,4/9,1/9,1/36,1/9,1/36]# Discrete velocity vectorsDiscreteVelocityVectors=[[-1,1],[0,1],[1,1],[-1,0],[0,0],[1,0],[-1,-1],[0,-1],[1,-1],]# A Field2D classclassField2D:def__init__(self,res:int):self.field=[]forbinrange(res):fm=[]forainrange(res):fm.append([0,0,0,0,1,0,0,0,0])self.field.append(fm[:])self.res=res# This visualize the simulation, can only be used in a terminal@staticmethoddefVisualizeField(a,sc,res):stringr=""foruinrange(res):row=""forvinrange(res):n=int(u*a.res/res)x=int(v*a.res/res)flowmomentem=a.Momentum(n,x)col="\033[38;2;{0};{1};{2}m██".format(int(127+sc*flowmomentem[0]),int(127+sc*flowmomentem[1]),0)row=row+colprint(row)stringr=stringr+row+"\n"returnstringr# Momentum of the fielddefMomentum(self,x,y):returnvelocityField[y][x][0]*sum(self.field[y][x]),velocityField[y][x][1]*sum(self.field[y][x])# Resolution of the simulationres=100a=Field2D(res)# The velocity fieldvelocityField=[]forDummyVariableinrange(res):DummyList=[]forDummyVariable2inrange(res):DummyList.append([0,0])velocityField.append(DummyList[:])# The density fieldDensityField=[]forDummyVariableinrange(res):DummyList=[]forDummyVariable2inrange(res):DummyList.append(1)DensityField.append(DummyList[:])# Set initial conditionDensityField[50][50]=2DensityField[40][50]=2# Maximum solving stepsMaxSteps=120# The speed of sound, specifically 1/sqrt(3) ~ 0.57SpeedOfSound=1/math.sqrt(3)# time relaxation constantTimeRelaxationConstant=0.5# Solveforsinrange(MaxSteps):# Collision Stepdf=Field2D(res)foryinrange(res):forxinrange(res):forvinrange(9):Velocity=a.field[y][x][v]FirstTerm=Velocity# The Flow VelocityFlowVelocity=velocityField[y][x]Dotted=(FlowVelocity[0]*DiscreteVelocityVectors[v][0]+FlowVelocity[1]*DiscreteVelocityVectors[v][1])# #The taylor expainsion of equilibrium termtaylor=(1+((Dotted)/(SpeedOfSound**2))+((Dotted**2)/(2*SpeedOfSound**4))-((FlowVelocity[0]**2+FlowVelocity[1]**2)/(2*SpeedOfSound**2)))# The current densitydensity=DensityField[y][x]# The equilibriumequilibrium=density*taylor*Weights[v]SecondTerm=(equilibrium-Velocity)/TimeRelaxationConstantdf.field[y][x][v]=FirstTerm+SecondTerm# Streaming Stepforyinrange(0,res):forxinrange(0,res):forvinrange(9):# Target, the lattice point this iteration is solvingTargetY=y+DiscreteVelocityVectors[v][1]TargetX=x+DiscreteVelocityVectors[v][0]# Peiodic BoundaryifTargetY==resandTargetX==res:a.field[TargetY-res][TargetX-res][v]=df.field[y][x][v]elifTargetX==res:a.field[TargetY][TargetX-res][v]=df.field[y][x][v]elifTargetY==res:a.field[TargetY-res][TargetX][v]=df.field[y][x][v]elifTargetY==-1andTargetX==-1:a.field[TargetY+res][TargetX+res][v]=df.field[y][x][v]elifTargetX==-1:a.field[TargetY][TargetX+res][v]=df.field[y][x][v]elifTargetY==-1:a.field[TargetY+res][TargetX][v]=df.field[y][x][v]else:a.field[TargetY][TargetX][v]=df.field[y][x][v]# Calculate macroscopic variablesforyinrange(res):forxinrange(res):# Recompute Density FieldDensityField[y][x]=sum(a.field[y][x])# Recompute Flow VelocityFlowVelocity=[0,0]forDummyVariableinrange(9):FlowVelocity[0]=(FlowVelocity[0]+DiscreteVelocityVectors[DummyVariable][0]*a.field[y][x][DummyVariable])forDummyVariableinrange(9):FlowVelocity[1]=(FlowVelocity[1]+DiscreteVelocityVectors[DummyVariable][1]*a.field[y][x][DummyVariable])FlowVelocity[0]=FlowVelocity[0]/DensityField[y][x]FlowVelocity[1]=FlowVelocity[1]/DensityField[y][x]# Insert to Velocity FieldvelocityField[y][x]=FlowVelocity# VisualizeField2D.VisualizeField(a,128,100)

See also

[edit]

References

[edit]
  1. ^abcChen, Shiyi; Doolen, Gary D. (1998). "Lattice Boltzmann Method for Fluid Flows".Annual Review of Fluid Mechanics.30 (1):329–364.Bibcode:1998AnRFM..30..329C.doi:10.1146/annurev.fluid.30.1.329.ISSN 0066-4189.
  2. ^Axner, L.; Bernsdorf, J.; Zeiser, T.; Lammers, P.; Linxweiler, J.; Hoekstra, A. G. (2008-05-01)."Performance evaluation of a parallel sparse lattice Boltzmann solver".Journal of Computational Physics.227 (10):4895–4911.Bibcode:2008JCoPh.227.4895A.doi:10.1016/j.jcp.2008.01.013.ISSN 0021-9991.
  3. ^Bhatnagar, P. L.; Gross, E. P.; Krook, M. (1954-05-01). "A Model for Collision Processes in Gases. I. Small Amplitude Processes in Charged and Neutral One-Component Systems".Physical Review.94 (3):511–525.Bibcode:1954PhRv...94..511B.doi:10.1103/PhysRev.94.511.ISSN 0031-899X.
  4. ^Amir H. Hedjripour, David P. Callaghan & Tom E. Baldock, Generalized transformation of the lattice Boltzmann method for shallow water flows,https://doi.org/10.1080/00221686.2016.1168881
  5. ^Zhang, Junfeng (2011-01-01). "Lattice Boltzmann method for microfluidics: models and applications".Microfluidics and Nanofluidics.10 (1):1–28.doi:10.1007/s10404-010-0624-1.ISSN 1613-4990.
  6. ^Tu, Jiyuan; Yeoh, Guan Heng; Liu, Chaoqun (2018).Computational fluid dynamics: a practical approach (Third ed.). Oxford; Cambridge, MA: Butterworth-Heinemann.ISBN 978-0-08-101127-0.OCLC 1022830545.
  7. ^Succi, p. 68
  8. ^Succi, Appendix D (p. 261-262)
  9. ^Succi, chapter 8.3, p. 117-119
  10. ^Di Rienzo, A. Fabio; Asinari, Pietro; Chiavazzo, Eliodoro; Prasianakis, Nikolaos; Mantzaras, John (2012)."Lattice Boltzmann model for reactive flow simulations"(PDF).EPL.98 (3) 34001.Bibcode:2012EL.....9834001D.doi:10.1209/0295-5075/98/34001.S2CID 121908046.
  11. ^Chiavazzo, Eliodoro; Karlin, Ilya; Gorban, Alexander; Boulouchos, Konstantinos (2010). "Coupling of the model reduction technique with the Lattice Boltzmann method for combustion simulations".Combust. Flame.157 (10):1833–1849.Bibcode:2010CoFl..157.1833C.doi:10.1016/j.combustflame.2010.06.009.
  12. ^Chiavazzo, Eliodoro; Karlin, Ilya; Gorban, Alexander; Boulouchos, Konstantinos (2012)."Efficient simulations of detailed combustion fields via the Lattice Boltzmann method".International Journal of Numerical Methods for Heat & Fluid Flow.21 (5):494–517.doi:10.1108/09615531111135792.S2CID 122060895.
  13. ^Chiavazzo, Eliodoro; Karlin, Ilya; Gorban, Alexander; Boulouchos, Konstantinos (2009). "Combustion simulation via Lattice Boltzmann and reduced chemical kinetics".Journal of Statistical Mechanics: Theory and Experiment.2009 (6) P06013.Bibcode:2009JSMTE..06..013C.doi:10.1088/1742-5468/2009/06/P06013.S2CID 6459762.
  14. ^McNamara, G., Garcia, A., and Alder, B., "A hydrodynamically correct thermal lattice boltzmann model", Journal of Statistical Physics, vol. 87, no. 5, pp. 1111-1121, 1997.
  15. ^Shan, Xiaowen (1997). "Simulation of Rayleigh-Bénard convection using a lattice Boltzmann method".Physical Review E.55 (3):2780–2788.arXiv:comp-gas/9612001.Bibcode:1997PhRvE..55.2780S.doi:10.1103/PhysRevE.55.2780.
  16. ^He, Xiaoyi; Chen, Shiyi; Doolen, Gary D. (10 October 1998)."A Novel Thermal Model for the Lattice Boltzmann Method in Incompressible Limit".Journal of Computational Physics.146 (1):282–300.Bibcode:1998JCoPh.146..282H.doi:10.1006/jcph.1998.6057.
  17. ^Chen, S., and Doolen, G. D., "Lattice Boltzmann Method for Fluid FlowsArchived 2019-02-25 at theWayback Machine", Annual Review of Fluid Mechanics, vol. 30, p. 329–364, 1998.
  18. ^Frank, X., Almeida, G., Perre, P., "Multiphase flow in the vascular system of wood: From microscopic exploration to 3-D Lattice Boltzmann experiments", International Journal of Multiphase Flow, vol. 36, pp. 599-607, 2010.
  19. ^Yuan, P.,Schaefer, L., "Equations of State in a Lattice Boltzmann model", Physics of Fluids, vol. 18, 2006.
  20. ^Harting, Jens; Chin, Jonathan; Venturoli, Maddalena; Coveney, Peter V. (2005). "Large-scale lattice Boltzmann simulations of complex fluids: Advances through the advent of computational Grids".Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.363 (1833):1895–1915.arXiv:cs/0501021.Bibcode:2005RSPTA.363.1895H.doi:10.1098/rsta.2005.1618.PMID 16099756.
  21. ^Yuan, P.,Schaefer, L., "A Thermal Lattice Boltzmann Two-Phase Flow Model and its Application to Heat Transfer Problems-Part 1. Theoretical Foundation", Journal of Fluid Engineering 142-150, vol. 128, 2006.
  22. ^Yuan, P.;Schaefer, L. (2006). "Equations of State in a Lattice Boltzmann model".Physics of Fluids.18 (4): 042101–042101–11.Bibcode:2006PhFl...18d2101Y.doi:10.1063/1.2187070.
  23. ^Misztal, Marek Krzysztof; Hernandez-Garcia, Anier; Matin, Rastin; Sørensen, Henning Osholm; Mathiesen, Joachim (2014-09-09). "Detailed analysis of the lattice Boltzmann method on unstructured grids".arXiv:1409.2754 [physics.flu-dyn].
  24. ^Fu, Jinlong; Dong, Jiabin; Wang, Yongliang; Ju, Yang; Owen, D. Roger J.; Li, Chenfeng (April 2020). "Resolution Effect: An Error Correction Model for Intrinsic Permeability of Porous Media Estimated from Lattice Boltzmann Method".Transport in Porous Media.132 (3):627–656.Bibcode:2020TPMed.132..627F.doi:10.1007/s11242-020-01406-z.S2CID 214648297.
  25. ^Espinoza, Mayken (2015)."Compress effects on porosity, gas-phase tortuosity, and gas permeability in a simulated PEM gas diffusion layer".International Journal of Energy Research.39 (11):1528–1536.Bibcode:2015IJER...39.1528E.doi:10.1002/er.3348.S2CID 93173199.

Further reading

[edit]

External links

[edit]
Biology
Chemistry
Physics
Linguistics
Social science
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Lattice_Boltzmann_methods&oldid=1332526624"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp