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 (multiple relaxation times lattice Boltzmann method) 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 will be available soon. pylbm has MPI support with mpi4py.
You can now insert a 3D geometrical object from a STL file.
Your boundary conditions can now use the normal vector located on all the bounds
You can install pylbm in several ways
With mamba or conda
mamba install pylbm -c conda-forge
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
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.
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 Computational 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).