A curated list of some open source frameworks, libraries and softwares employing lattice Boltzmann methods. This list is by no means complete. So if you would like me to add something, please send me a link to [email protected] or perform a pull request.
- ch4-project [1] - a parallelized numerical framework written in C++ which can simulate multiphase flows, turbulence, lagrangian particles (point-sized, tracers etc.) and thermal flows. Developed by the Unité de Mécanique de Lille, University of Lille.
- HemeLB [2] - a parallelized numerical framework written in C which can simulate flows in complex geometries including cerebral blood flow scenarios, ranging from normal to neuropathological conditions, aneurysms and arterio-venous malformations, as well as the entire intra-cranial vasculature. Developed at the Centre for Computational Science, University College London.
- HemoCell [3] - a parallelized numerical framework written in C++ for simulating deformable blood suspensions using a combined Immersed boundary-lattice Boltzmann method. This is built on top of the Palabos library. Developed at the Computational Science lab, University of Amsterdam.
- LBfoam [4] - an MPI parallelized numerical framework (extended from the Palabos library) for simulating foaming processes including bubble nucleation, coalescence using different rheological models. Developed at the Department of Mechanical Engineering, University of Toronto.
- LBDEMcoupling-public [5] - a parallelized coupling package between the Palabos library and the discrete element code LIGGGHTS using C++. Can perform resolved simulations of fluid-particle systems. Developed by the Johannes Kepler University Linz.
- LBSim - a C++ fluid dynamics simulator which can simulate complex flows, multiphase flows, thermal flows and microfluidics. Developed by the Software Development Center at the University of Sao Paulo.
- LBsoft [6] - an MPI parallelized numerical solver written in FORTRAN90 for simulating colloidal emulsions by coupling lattice Boltzmann methods for the fluid and discrete particle dynamics for the colloids.
- LB3D [7] - an MPI parallelized numerical framework written in Fortran90 to simulate 3D simple, binary oil/water and ternary oil/water/amphiphile fluids using the Shan-Chen model for binary fluid interactions. Also offers the possibilities of studying flows involving micro-mixing, porous media, fluid surface interactions and other multicomponent flows. Developed at the University College London, University of Stuttgart and Eindhoven University of Technology.
- LIFE - a parallelized numerical framework written in C++ employing lattice Boltzmann-immersed boundary-finite element solver for simulating fluid-structure interaction problems involving slender structures.
- LUDWIG [8, 9] - a parallelized numerical framework written in C which can simulate complex fluids including mixtures, symmetric binary fluids, colloidal suspensions, polar gels, charged fluids and liquid crystals. Developed at the University of Edinburgh.
- LUMA [10] - an MPI parallelized numerical solver written in C/C++ for simulating 3D complex fluid structure interaction and turbulent flow problems. Developed at the University of Manchester.
- Microflow 3D [11, 12] - an open-source parallel numerical framework (CUDA and GPU) for simulating transient flows in comlex geometries, inlcuding microflows in channels of microsystems or bio-chips and flows in narrow blood vessels. Developed at the Wroclaw University of Science and Technology.
- MultiphasePorousMediaPalabos - an open source parallel numerical framework using the Palabos library for modeling single and multiphase flows in complex porous geometries. Developed at the University of Texas, Austin.
- Musubi [13] - a parallel numerical solver written in Fortran 2003 for simulating multicomponent flows, blood flows, porous media and liquid mixtures. Developed at the Simulation Techniques and Scientific Computing group at Universität Siegen.
- NekLBM - a high-order parallelized numerical solver written in Fortran 90 and C, based on spectral element discontinuous Galerkin methods. Developed at the Mathematics and Computer Science Division of Argonne National Laboratory.
- OpenLB [14, 15] - an MPI parallelized numerical framework written in C++ which can simulate multiphase flows, multicomponent flows, turbulence, particulate flows, complex flows, thermal flows, non-Newtonian flows and porous media to name a few. Developed by the Lattice Boltzmann research group at Kalsruhe Institute of Technology.
- Palabos [16] - an MPI parallelized numerical framework written in C++ which can simulate multiphase flows, multicomponent flows, turbulence, particulate flows, complex flows, thermal flows, non-Newtonian flows and grid refinement. Developed by the Scientific and Parallel Computing group at University of Geneva.
- SailFish [17] - a numerical framework written in Python and CUDA C/OpenCL for GPUs (CUDA, OpenCL) which can simulate complex flows, multicomponent flows and turbulence.
- STLBM [18] - a massively efficient framework for multi-threaded parallel simulations on many-core CPUs and GPUs. Developed by the Scientific and Parallel Computing group at University of Geneva.
- SunlightLB - a 3D numerical framework written in C, perl, and python which can simulate a variety of hydrodynamics problems, such as flow through pores, moving obstacles using a bounce-back method, passive scalar transport and a few more.
- Taxila LBM [19, 20] - a parallel numerical framework written in Fortran90 which can simulate flows in porous and geometrically complex media (including single and multiphase flows). Developed by the Los Alamos National laboratory.
- TCLB - a parallel numerical solver (MPI+CUDA or MPI+CPU) for simulating electrokinetic flows, thermal flows, multiphase flows, non-Newtonian flows and shallow water flows. Developed at the C-CFD group, Warsaw University of Technology.
- waLBerla [21] - a parallelized (both MPI and hybrid MPI/OpenMP are supported) numerical framework written in C++ supporting block-structured adaptive mesh refinement, fully resolved particulate flows and free surface flows to name a few. Developed by the Chair for System Simulation, Friedrich–Alexander–Universität Erlangen–Nürnberg.
- wlb [22] - a github repository hosting C++ codes to simulate 2D electrokinetic flows, by coupling Navier-Stokes, Nernst-Planck and Poisson’s equation of electrostatics.
- 2d-lbm-dem - a 2D coupled lattice Boltzmann and discrete element method written in C for simulating granular flows. Developed by the Computational Geomechanics group, a co-operation between two research groups at the University of Cambridge and University of California, Berkeley.
- EduLB - an educational C++ code to show the implementation of lattice Boltzmann method by simulating flow over an obstacle in a channel.
- LatBo.jl - an code developed in Julia programming language.
- Lattice-Boltzmann-fluid-flow-in-Tensorflow - a github repository hosting lattice Boltzmann simulation results written in Tensorflow.
- LatticeBoltzmannMethod - a github repository hosting some excellent codes (C++) showcasing multiphase flows, microflows and immersed boundary-lattice Boltzmann methods to name a few.
- LBMCode - a FORTRAN90 code solving the shallow water equations to simulate flows in a straight channel.
- LBM-1D - a github repository hosting some simple MATLAB codes to simulate 1D advection-diffusion and Navier-Stokes equations.
- lbmles - a github repository hosting a 2D lattice Boltzmann code to solve fluid flow in lid-driven cavity at very large Reynolds numbers. Both CPU and GPU (C++ and CUDA) versions are available.
- lbm_matlab - a github repository hosting some MATLAB codes showcasing grid refinement, viscosity counteraction approach (for achieving numerical stability), RANS Spalart-Allmaras turbulence model and a few more.
- lbm-principles-practice - a github repository hosting the codes (C++, MATLAB) used in the lattice Boltzmann book [23].
- 3D-LBM-AMR - a github repository hosting C++ codes showcasing adaptive mesh refinement in 3D problems.
-
Calzavarini, E., Eulerian–Lagrangian fluid dynamics platform: The ch4-project, Software Impacts, Vol. 1, 2019. Link
-
Mazzeo, M.D., Coveney, P.V., HemeLB: A high performance parallel lattice-Boltzmann code for large scale fluid flow in complex geometries, Computer Physics Communications, Vol. 178 (12), pp. 894-914, 2008. Link
-
Závodszky, G. et al., Cellular Level In-silico Modeling of Blood Rheology with An Improved Material Model for Red Blood Cells, Frontiers in Physiology, Vol. 8, pp. 563, 2017. Link
-
Ataei, M. et al., LBfoam: An open-source software package for the simulation of foaming using the Lattice Boltzmann Method, arXiv, 2020. Link
-
Seil, P. and Pirker, S., LBDEMcoupling: Open-Source Power for Fluid-Particle Systems, Proceedings of the 7th International Conference on Discrete Element Methods (DEM) 2016, Springer Proceedings in Physics, Vol. 188, 2017. Link
-
Bonaccorso, F. et al., LBsoft: a parallel open-source software for simulation of colloidal systems, arXiv, 2020. Link
-
Schmieschek, S. et al., LB3D: A parallel implementation of the Lattice-Boltzmann method for simulation of interacting amphiphilic fluids, Computer Physics Communications, Vol. 217, pp. 149-161, 2017. Link
-
Desplata, J.-C., Pagonabarraga, I. and Bladon, P., LUDWIG: A parallel Lattice-Boltzmann code for complex fluids, Computer Physics Communications, Vol. 134 (3), pp. 273-290, 2001. Link
-
Gray, A. and Stratford, K., Ludwig: multiple GPUs for a complex fluid lattice Boltzmann application, Designing Scientific Applications on GPUs, Chapman and Hall/CRC, 2013.
-
Harwood, A.R.G. et al., LUMA: A many-core, Fluid–Structure Interaction solver based on the Lattice-Boltzmann Method, SoftwareX, Vol. 7, pp. 88-94, 2018. Link
-
Tomczak, T., Szafran, R., A new GPU implementation for lattice-Boltzmann simulations on sparse geometries, Computer Physics Communications, Vol. 235, pp. 258-278, 2019. Link
-
Tomczak, T., Szafran, R., Sparse geometries handling in lattice Boltzmann method implementation for graphic processors, IEEE Transactions on Parallel and Distributed Systems, Vol. 29(8), pp. 1865 - 1878, 2018. Link
-
Hasert, M. et al., Complex fluid simulations with the parallel tree-based Lattice Boltzmann solver Musubi, Journal of Computational Science, Vol. 5(5), pp. 784-794, 2014. Link
-
Heuveline, V. and Latt, J., The OpenLB project: an open source and object oriented implementation of lattice boltzmann methods, International Journal of Modern Physics C, Vol. 18 (4), pp. 627-634,2007. Link
-
Heuveline, V. and Krause, M.J., OpenLB: Towards an Efficient Parallel Open Source Library for Lattice Boltzmann Fluid Flow Simulations, PARA'08 Workshop on State-of-the-Art in Scientific and Parallel Computing, May 13-16, 2008. Link
-
Latt, J. et al., Palabos: Parallel Lattice Boltzmann Solver, arXiv, 2019. Link
-
Januszewski, M. and Kostur, M., Sailfish: A flexible multi-GPU implementation of the lattice Boltzmann method, Computer Physics Communications, Vol. 185 (9), pp. 2350-2368, 2014. Link
-
Latt, J., Coreixas, C. and Beny, J., Cross-platform programming model for many-core lattice Boltzmann simulations, arXiv, 2020. Link
-
Coon, E.T., Porter, M.L. and Kang, Q, Taxila LBM: a parallel, modular lattice Boltzmann framework for simulating pore-scale flow in porous media. Computational Geosciences, Vol. 18, pp. 17–27, 2014. Link
-
Porter, M.L. et al., Multicomponent interparticle-potential lattice Boltzmann model for fluids with large viscosity ratios, Physical Review E, Vol. 86 (3), 036701, 2012. Link
-
Bauer, M. et al., waLBerla: A block-structured high-performance framework for multiphysics simulations, To appear in Computers & Mathematics with Applications, 2020. Link
-
Bülling, A., Modelling of electrokinetic flow using the lattice-Boltzmann method, Master thesis, Chalmers University of Science and Technology, 2012. Link
-
Krüger, T. et al., The Lattice Boltzmann Method: Principles and Practice, Springer International Publishing, ISBN 978-3-319-44647-9, 2017. Link