Units Conversion
For the LBM, the values of macroscopic quantities can not be directly imposed on boundaries and so, the initial and boundary values of distribution functions have to be calculated from the known values of the macroscopic quantities after being converted to the lattice unit system by means of dimensionless numbers (e.g. Reynolds number). The perfect introduction to the units conversion in LBM one can find in Timm Kruger's presentation.
Geometry and Mesh Generation
Another issue that should be resolved before one can start simulations is a geometry definition and mesh building. The common terminology used in LBM lattice arrangement is referred to the dimension of the problem and the number of speed and uses DnQm notation, where n represents the dimension of the problem (1 for 1-D, 2 for 2-D, and 3 for 3-D) and m refers to the speed model, the number of linkages (typically 5, 9 for 2D and 15, 19, 27 for 3D) [Mohamad 2011]. Most solvers provide the possibility of building geometry by means of internal functions that incorporate primitive geometries. Another usually available possibility is to import geometry from an external CAD program in .stl format (surface mesh). As LBM uses a natively structured Cartesian grid (2D-quadrilateral, 3D-hexahedral with multiblock-octree structure) one can in a relatively simple and automatic way import the .stl geometry and build the grid internally. Unfortunately, currently, there is a lack of dedicated open-source LBM mesh builder. The interesting project "Lattice Boltzmann Grid Generator" is realized by Andrea Pasquali at the TU Braunschweig. The main idea of his project is to build a mesh generator for LBM on the basis of the OpenFOAM's snappyHexMesh. Other projects try to utilize different general-purpose Cartesian meshing tools like Cart3D from NASA and CartGen. Even general-purpose geometry and unstructured mesh generators like Netgen or Gmsh may be considered, but there is no simple way to incorporate unstructured mesh into LBM solver. SALOME is open-source software that provides a generic platform for building geometry, mesh, and post-processing operations. The list of general-purpose public domain and commercial mesh generators one can find on the Robert Schneiders web page.
Algorithms
The solution procedure in LBM usually consists of two consecutive steps: collision and propagation of Fi values - the probability distribution function along the i lattice direction. Propagation can be realized with the use of one or two copies of Fi and can be affected by the grid multiblock structure and boundaries. The collision model depends on physical model of the process that we simulate (e.g. fluid model). The most popular collision models are: BGK (Bhatnagar-Gross-Krook) and MRT (Multiple-Relaxation-Time), and their regularized forms. Short description of collision models one can find on Palabos Wiki web page.
Initial and Boundary Conditions
The widely used schemes for imposing initial conditions are equilibrium, non-equilibrium, and iterative method. In the most popular equilibrium scheme, the distribution functions are initialized as the equilibria directly from initial values of velocity and reference density. We can distinguish two main types of boundary conditions: heuristic that includes all types of bounce-back schemes and hydrodynamic that covers schemes which realize exact boundary conditions based on the relations between the macroscopic fluid variables and the distribution functions. The beauty of bounce-back schemes relies on their simplicity and ability to impose on complex geometry in a straightforward way, but they introduce some errors inevitably. Short description of different types of boundary conditions one can find on Palabos Wiki web page.
Post-processing
After the successful simulation, its results have to be processed and visualized. Most open-source solvers write results in widely accepted formats e.g VTK. ParaView is an open-source, multi-platform data analysis and visualization application. With ParaView you can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView’s batch processing capabilities. ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of petascale as well as on laptops for smaller data.