Commit 9fdbed4d authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

LBM section - copy-edit (addressed comments by RF)

parent e62d8831
Loading
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -7,9 +7,9 @@ For the simulation of air flow in a \todo{wind tunnel simulations are in the nex
Instead of directly solving a macroscopic PDE, such as the Navier--Stokes equations or a general advection-diffusion equation, LBM approximates the temporal evolution of macroscopic quantities such as density $\rho$~[\si{\kilogram\per\cubic\metre}], velocity $\vec v$~[\si{\metre\per\second}], and other variables (e.g., pressure, stress tensor, etc.) using probability moments of the density distribution function $f(\vec x, \vec \xi, t)$~[\si{\kilogram\second\cubed\per\metre\tothe{6}}] that represents the density of particles with velocity $\vec \xi = [\xi_x, \xi_y, \xi_z]^T$~[\si{\metre\per\second}] at position $\vec x$ and time $t$.
Based on the kinetic theory \cite{kruger:2017lattice}, the density distribution function $f$ evolves according to the Boltzmann transport equation
\begin{equation} \label{eq:lbm:BTE}
    \frac{\partial f}{\partial t} + \sum\limits_{i=1}^3 \xi_i \frac{\partial f}{\partial x_i} + \sum\limits_{i=1}^3 \frac{F_i}{\rho} \frac{\partial f}{\partial \xi_i} = \mathcal C(f),
    \frac{\partial f}{\partial t} + \sum\limits_{i=1}^3 \xi_i \frac{\partial f}{\partial x_i} + \sum\limits_{i=1}^3 \frac{F_i}{\rho} \frac{\partial f}{\partial \xi_i} = \mathcal C,
\end{equation}
where $\rho$~[\si{\kilogram\per\cubic\metre}] is the mass density, $\vec F = [F_x, F_y, F_z]^T$~[\si{\newton\per\cubic\metre}] represents the external body force density acting on the mass and $\mathcal C(f)$ denotes a general collision operator.
where $\rho$~[\si{\kilogram\per\cubic\metre}] is the mass density, $\vec F = [F_x, F_y, F_z]^T$~[\si{\newton\per\cubic\metre}] represents the external body force density acting on the mass and $\mathcal C$~[\si{\kilogram\second\squared\per\metre\tothe{6}}] denotes a general collision operator that depends on the distribution function and other parameters (e.g., relaxation times and equilibrium distribution).
LBM follows from the discretization of \cref{eq:lbm:BTE} in space, velocity space, and time.

\subsection{Components of the lattice Boltzmann method}
@@ -35,7 +35,7 @@ Similarly, the time interval $I = \left[0, t_{\max}\right]$ is discretized by a
The next step in the discretization of the Boltzmann transport equation \eqref{eq:lbm:BTE} is the selection of an appropriate discrete velocity set.
The velocity sets are typically named as D$D$Q$Q$, where $D$ stands for the spatial dimension and $Q$ denotes the number of discrete velocities per lattice site.
The most common examples are D1Q3, D2Q5, D2Q9, D3Q7, D3Q15, D3Q19, and D3Q27.
Not all velocity sets are suitable for accurate resolution of the desired macroscopic equation.
Not all velocity sets are suitable for accurate resolution of the desired macroscopic equation \cite{kruger:2017lattice,fucik:lbman,fucik:lbmat}.
In this thesis, we aim to use LBM for the solution of the Navier--Stokes equations in $\mathbb R^3$ and thus consider the D3Q27 velocity set consisting of $Q = 27$ discrete velocities.

A velocity set for LBM is fully defined by two sets of quantities: lattice velocities $\vec \xi_q$ and the corresponding weights $w_q$ for $q = 1, \ldots, Q$.
@@ -46,11 +46,10 @@ The Python script in \cref{appendix:LBM:velocity sets} can be used to quickly ve

\subsubsection{Discrete lattice Boltzmann equation}

Before discretization, the \cref{eq:lbm:BTE} is first transformed to a non-dimensional form by scaling the physical quantities based on a characteristic length, time and density.
For the purpose of lattice computations, a system of \emph{lattice units} is defined by selecting $\delta x$, $\delta t$ and $\rho_0$ (i.e., density of an incompressible fluid) as the conversion factors.
Before discretization, \cref{eq:lbm:BTE} is first transformed to a non-dimensional form by scaling the physical quantities based on a characteristic length, time and density \cite{kruger:2017lattice}.
For the purpose of lattice computations, a system of \emph{lattice units} is defined by selecting $\delta_x$, $\delta_t$ and $\rho_0$ (i.e., density of an incompressible fluid) as the conversion factors.
In lattice units, we set the space step as $\Delta x = 1$, the time step as $\Delta t = 1$, and the average density $\hat\rho_0 = 1$.
Additionally, all microscopic velocities in the used velocity set have components given by $\vec \xi_{\vec i} = [i_1 c, i_2 c, i_3 c]^T$, where $i_1, i_2, i_3 \in \{-1, 0, 1\}$ and $c = \Delta x / \Delta t$ is the lattice speed.
\todo{Here it is necessary to define which $q$ corresponds to which multiindex $\vec i$.}
Additionally, all microscopic velocities in the used velocity set have components in $\{-c, 0, c\}$, where $c = \Delta x / \Delta t$ is the lattice speed.

The discretization of \cref{eq:lbm:BTE} in velocity space (using a velocity set), space (using a lattice) and time (using a discrete set of time levels) leads to the lattice Boltzmann equation
\begin{equation}\label{eq:lbm:LBE}
@@ -79,7 +78,7 @@ Other macroscopic quantities, such as the stress tensor, can be obtained from hi

The term $\mathcal C_q$ in \cref{eq:lbm:LBE} denotes the discrete collision operator; in this paper we use the cumulant operator proposed in~\cite{geier2015cumulant} with the relaxation rates set as suggested therein and including the approximations of the spatial velocity derivatives to reduce the artifacts due to the absence of higher-order cumulants~\cite{geier2017a,geier2017b}.

\inline{Link between LBE and NSE (from the analysis): $\hat\nu = c_s^2 \left( \hat\tau - \frac{1}{2} \right)$, $\nu = \hat\nu \frac{\delta x^2}{\delta t}$ but this is for SRT, the cumulant operator has different/more relaxation parameters}
\inline{Link between LBE and NSE (from the analysis): $\hat\nu = c_s^2 \left( \hat\tau - \frac{1}{2} \right)$, $\nu = \hat\nu \frac{\delta_x^2}{\delta_t}$ but this is for SRT, the cumulant operator has different/more relaxation parameters}

\subsubsection{Equilibrium function}

+5 −0
Original line number Diff line number Diff line
@@ -6,6 +6,11 @@
A Python script solving the system of equations that the given velocity set must satisfy.
The reference mentioned in the code is \cite[Section~3.4.7.2]{kruger:2017lattice}.

\bigskip
\noindent
[\href{https://mmg-gitlab.fjfi.cvut.cz/gitlab/-/snippets/2}{online version}]
\todo{hide the link in the printed version}

\inputminted[
    linenos=true,
    fontsize=\scriptsize,
+23 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@

@Article{langr:2016evaluation,
  author    = {Langr, Daniel and Tvrdik, Pavel},
  journal   = {IEEE Transactions on parallel and distributed systems},
  journal   = {IEEE Transactions on Parallel and Distributed Systems},
  title     = {Evaluation criteria for sparse matrix storage formats},
  year      = {2016},
  number    = {2},
@@ -1370,6 +1370,28 @@
  doi      = {10.3390/computation10060092},
}

@Article{fucik:lbman,
  author   = {Fučík, Radek and Straka, Robert},
  journal  = {Computers \& Mathematics with Applications},
  title    = {Equivalent finite difference and partial differential equations for the lattice {Boltzmann} method},
  year     = {2021},
  issn     = {0898-1221},
  month    = may,
  pages    = {96--103},
  volume   = {90},
  abstract = {A general method for the derivation of equivalent finite difference equations (EFDEs) and subsequent equivalent partial differential equations (EPDEs) is presented for a general matrix lattice Boltzmann method (LBM). The method can be used for both the advection diffusion equations and Navier-Stokes equations in all dimensions. In principle, the EFDEs are derived using a recurrence formula. A computational algorithm is proposed for generating sequences of matrices and vectors that are used to obtain EFDEs coefficients. For all DdQq velocity models, the algorithm is proven to be finite and all coefficients are obtained after q iterations. The resulting EFDEs and EPDEs are derived for selected velocity models and include the single relaxation time, multiple relaxation times, and cascaded LBM collision operators. The algorithm for the derivation of EFDEs and EPDEs is implemented in C++ using the GiNaC library for symbolic algebraic computations. Its implementation is available under the terms and conditions of the GNU general public license (GPL).},
  doi      = {10.1016/j.camwa.2021.03.014},
}

@Article{fucik:lbmat,
  author   = {Fučík, Radek and Eichler, Pavel and Klinkovský, Jakub and Straka, Robert and Oberhuber, Tomáš},
  journal  = {Numerical Algorithms},
  title    = {Lattice {Boltzmann} method analysis tool ({LBMAT})},
  year     = {2022},
  issn     = {1572-9265},
  note     = {Submitted -- under review},
}

@Comment{jabref-meta: databaseType:bibtex;}

@Comment{jabref-meta: protectedFlag:true;}