Skip to content

Overview

The OpenLB project provides a C++ package for the implementation of lattice Boltzmann simulations that is general enough to address a vast range of problems in computational fluid dynamics. The package is mainly intended as a programming support for researchers and engineers who simulate fluid flows by means of a lattice Boltzmann method. The source code is publicly available and constructed in a well readable, modular way. This enables a fast implementation of both simple applications and advanced CFD problems. It is also easily extensible to include new physical content.

The architecture of the code has been designed in the hope that it can be adapted easily to different problems of computational fluid dynamics. If you have written some extensions and think that they are of general interest, you are encouraged to submit them for a future inclusion into the project. Such external contributions are stored in a separate experimental branch and included into the main branch after a validation process. For this to happen, they must meet several needs that are explicited in the documentation page for developers.

If you like to put up your contributions or join the OpenLB team, please contact us!

OpenLB is…

… a library for lattice Boltzmann simulations 

  • The code is in C++ and can be used to simulate physical phenomena, with emphasis on fluids.
  • The kernel is based on a variety of lattice Boltzmann models.
  • The source code is modular and can easily be extended by application programmers.

… a framework for high performance computing 

  • The library is optimized for shared and distributed memory platforms as well as hybrid platforms.
  • Efficient parallelization is achieved through the MPI and OpenMP extensions. Good scalability on thousands of cores, and code efficiency up to several billion site updates per second in 3D applications have been measured.
  • Memory optimizations are accessible in case of irregular domain boundaries.

…. a community code 

  • The source code is free and can be used under the terms of a Gnu General Public License V.2 (GPL2).
  • Developers from different countries are currently participating, and new contributions are welcome.

… and more 

  • NEW: Automated preprocessing with built-in voxelization from stl-files and setting of boundary conditions.
  • NEW: XML interface for input parameters.
  • Full serial and parallel checkpointing is supported for interrupted program executions.
  • Output of the data in VTK format allows visualization and data analysis with external tools like Paraview.
  • As the library is based on simple concepts, it is appropriate as a teaching support for courses on CFD and lattice Boltzmann.