Skip to content

Espresso and Walberla

RudolfWeeber edited this page May 25, 2021 · 1 revision

Current Status

Structure

  • The LB kernels are geenrated via LbmPy and PyStencils (https://i10git.cs.fau.de/pycodegen)
  • The definition and generation script is in maintainer/walberla_kernels/. See Readme.md in that folder
  • The .cpp/h files generated by the generation scripts are in src/walberla_bridge/generated_kernels. they are checked into git (i.e., not dynamically generated at build time)
  • The field data storage, lattice management, and time loop is handled by Walberla. Walberla also runs the LbmPy-generated kernels on the field data. Walberla is built as a sub-project during the Espresso build process in the _deps/ folder
  • Walberla_bridge is the component that sets up Walberla and provides the interface Espresso needs. It is located ad src/walberla_bridge. This component only depends on Walberla, not on Espresso
  • Espresso uses the Walberla_bridge as backend for its LB needs. Espresso's LB code, including particle coupling is at src/core/grid_based_algorithms

Building with Walberla

  • Download the current Walberla branch with something like:
git remote add RudolfWeeber https://github.com/RudolfWeeber/espresso
git fetch RudolfWeeber walberla:walberla
git checkout walberla
  • Add #define LB_WALBERLA to your myconfig.hpp
  • run Cmake with -DWITH_WALBERLA=on. Walberla will then be downloaded and installed during make