OpenLB

 
OpenLB is an object-oriented implementation of the lattice Boltzmann methods (LBM). It is the first implementation of a generic platform for LBM programming, which is shared with the open source community (GPLv2).
The code is written in C++ and is used by application programmers as well as developers, with the ability to implement custom models
OpenLB supports complex data structures that allow simulations in complex geometries and parallel execution using MPI and OpenMP on high-performance computers.
The source code uses the concepts of interfaces and templates, so that efficient, direct and intuitive implementations of the LBM become possible.
The efficiency and scalability has been checked and proved by code reviews.
A user manual and a source code documentation by DoxyGen are available on the project page.
Functions.
"OpenLB" is being constantly developed. By now the following features are implemented:
Automated grid generation.
Automated grid generation is one of the great advantages of "OpenLB" over other CFD software packages. The main advantages are listed below:
The automatic grid generation can assume both an STL file as well as primitive geometries. For the geometry, a uniform and rectangular grid is created which encloses the entire space of the geometry. The superfluous grid cells are then removed and the remaining cuboids are shrunk to fit the given geometry. Finally, the grid is distributed to different threads or processors for the parallel execution of the simulation. The boundary conditions and start values can be set using material numbers.