waLBerla - widely applicable lattice Boltzmann from Erlangen

Welcome to the waLBerla Framework, a widely applicable lattice Boltzmann simulation code from Erlangen. The following tutorials show you how to get and build waLBerla and describe all the basic data strcutures and concepts of the framework.

- Get and Build waLBerla

This page describes how to obtain a copy of waLBerla and how to setup your environment for development. - Tutorial - Basics 1: waLBerla Data Structures: Blocks and Fields

The first tutorial explains the basic data structures of waLBerla and how to setup a simple domain. - Tutorial - Basics 2: Algorithms on Blocks: Sweeps

The second tutorial shows how to write algorithms that operate on block data. - Tutorial - Basics 3: Writing a Simple Cellular Automaton in waLBerla

The third tutorial deals with communication, iterating field/grid/lattice data, and geometry setup.

- Tutorial - PDE 1: Solving PDEs with the Jacobi Method

Implementation of an iterative solver for the solution of a partial differential equation. - Tutorial - PDE 2: Solving the Heat Equation

Extending the previous tutorial to be able to solve the heat equation.

- Tutorial - LBM 1: Basic LBM Simulation

A full LBM simulation is built. - Tutorial - LBM 4: Complex Geometry

A LBM simulation with complex geometries is built. - Tutorial - LBM 5: Backward-facing step

A LBM simulation with a backward-facing step is set up. - Tutorial - LBM 6: Boundary Conditions

This tutorial deals with the usage of different LBM boundary conditions.

- Tutorial - GPU 1: Game of Life on GPU

A simple tutorial for Game of Life on GPU

- Tutorial - Code Generation 1: Explicit Solver for the Heat Equation

This tutorial shows how to use pystencils to generate waLBerla sweeps from symbolic descriptions. - Tutorial - Code Generation 2: Lattice Model Generation with lbmpy

This tutorial demonstrates how to use lbmpy to generate an efficient lattice model for a waLBerla sweep. - Tutorial - Code Generation 3: Advanced LBM Code Generation

This tutorial describes how to use lbmpy to generate a full LBM sweep for waLBerla.

Not all features of the framework are covered in the tutorials. To get further information have a look at the modules pages.

Also, the test cases provided in the tests directory are a good starting point for your own developments. Additionally, there is a folder for full-fledged application codes to be found under `apps/benchmarks`

where also codes of walBerla publications are found.

If you use waLBerla in the preparation of a publication, please cite [14] and [5]. There are separate publications for some modules, which you should cite in addition if you use them.

- Grid refinement: [30]
- PE coupling: [25]
- Python interface: [3]
- pystencils code generation: [4]
- lbmpy LB model generation: [6]