waLBerla (widely applicable Lattice Boltzmann from Erlangen) is a massively parallel framework for multiphysics simulation applications. Beyond computational fluid dynamics with the lattice Boltzmann method, the framework now features multiphase and free-surface flows, rigid body and particle dynamics as well as fluid-structure coupling with moving geometries.

Features

🚀 Scalable Parallelism from Laptops to Supercomputers

WaLBerla is designed for performance across scales. Written in modern C++20 and utilizing vectorization, OpenMP, CUDA and HIP, the framework makes the most of modern parallel processors of all sizes. Its block-structured computational grids allow for efficient distributed parallelization, effective meshing and grid refinement, as well as dynamic load balancing. Near-perfect scaling behavior has been demonstrated on state-of-the-art supercomputers, such as SuperMUC-NG, JUWELS Booster and LUMI-G.

🌊 Lattice Boltzmann Method (LBM)

Powered by the lattice Boltzmann method, waLBerla offers a platform for computational fluid dynamics across a wide range of applications. Using the lbmpy library, applications can choose from a variety of collision models, from the foundational BGK to the highly accurate K17 cumulant method. Complement these with link-wise boundary conditions, use memory-efficient in-place streaming, or include mass-conserving volumetric mesh refinement to construct a flow solver taylored to your needs.

⚙️ Performance Portability through Automatic Code Generation

With its versatile Python-based metaprogramming ecosystem, waLBerla tackles the difficulties of modern-day hardware diversity through code generation. Describe numerical methods using a mathematical toolbox and let the code generator take care of the implementation details. Automated generation of hardware-specific parallel kernels makes it easy to target and switch between different platforms without sacrificing performance.

🪨 Discrete Element Method (DEM) with mesa-pd

Simulate realistic particle interactions with mesa-pd, waLBerla’s high-performance DEM module. Fully customizable through code generation, mesa-pd supports simulations of rigid body dynamics, contact forces, and complex material models — all with full parallel scalability.

⏳ Sustainable Software Development

The waLBerla project aims for sustainable software development using latest best practices. A modular code base, clean interfaces, and adherence to modern coding standards are the basis for extensibility and long-term software stability. Continuous integration and testing ensure reproducible builds and code robustness. Being fully open-source, waLBerla welcomes community contributions through its GitLab development platform. The framework is published as free software under the GNU GPLv3.

🔗 Coupled Multiphysics Simulations

Tackle complex, real-world problems by coupling LBM, DEM, and other solvers in waLBerla. Construct multiphase and temperature-dependent problems without ever leaving the LBM framework; simulate particulate flows with fully resolved particles; or include complex and moving geometries using the partially saturated cells method.

Get the waLBerla C++ source code

waLBerla is an open source framework and released under the GPLv3 license!

You have different options to download the source code for free.

Get the latest version via Git (recommended).

waLBerla is available through a Git repository hosted on our GitLab server. Use this option if you want to keep track of new features easily. In case you want to contribute contact us to get an account for GitLab.

Get waLBerla from GitLab
Download the latest release version.

Instead of using Git, you can also directly download the source code as an archive of your choice. They contain the most recent release version of waLBerla.


Showcases

Turbulent flow around a Counter Rotating Open Rotor
Aircraft Landing Gear
Antidunes

waLBerla has been funded by