pylbm is an all-in-one package for numerical simulations using Lattice Boltzmann solvers.
This package gives all the tools to describe your lattice Boltzmann scheme in 1D, 2D and 3D problems.
We choose the D’Humières formalism to describe the problem. You can have complex geometry with a set of simple shape like circle, sphere, …
pylbm performs the numerical scheme using Cython, NumPy or Loo.py from the scheme and the domain given by the user. Pythran and Numba wiil be available soon. pylbm has MPI support with mpi4py.
You can install pylbm in several ways
conda install pylbm -c conda-forge
pip install pylbm
pip install pylbm --user
You can also clone the project and install the latest version
git clone https://github.com/pylbm/pylbm
To install pylbm from source, we encourage you to create a fresh environment using conda.
conda create -n pylbm_env python=3.6
As mentioned at the end of the creation of this environment, you can activate it using the comamnd line
conda activate pylbm_env
Now, you just have to go into the pylbm directory that you cloned and install the dependencies
conda install --file requirements-dev.txt -c conda-forge
and then, install pylbm
python setup.py install
pylbm can be a simple way to make numerical simulations by using the Lattice Boltzmann method.
Once the package is installed you just have to understand how to build a dictionary that will be understood by pylbm to perform the simulation. The dictionary should contain all the needed informations as
the geometry (see here for documentation)
the scheme (see here for documentation)
another informations like the space step, the scheme velocity, the generator of the functions…
To understand how to use pylbm, you have a lot of Python notebooks in the tutorial.
You can also find other examples in the gallery.
The most important classes
Create a geometry that defines the fluid part and the solid part.
Create a domain that defines the fluid part and the solid part and computes the distances between these two states.
Create the class with all the needed informations for each elementary scheme.
create a class simulation
D. D’HUMIERES, Generalized Lattice-Boltzmann Equations, Rarefied Gas Dynamics: Theory and Simulations, 159, pp. 450-458, AIAA Progress in astronomics and aeronautics (1992).
F. DUBOIS, Equivalent partial differential equations of a lattice Boltzmann scheme, Computers and Mathematics with Applications, 55, pp. 1441-1449 (2008).
B. GRAILLE, Approximation of mono-dimensional hyperbolic systems: a lattice Boltzmann scheme as a relaxation method, Journal of Comutational Physics, 266 (3179757), pp. 74-88 (2014).
Y.H. QIAN, D. D’HUMIERES, and P. LALLEMAND, Lattice BGK Models for Navier-Stokes Equation, Europhys. Lett., 17 (6), pp. 479-484 (1992).