Espresso and Walberla - espressomd/espresso GitHub Wiki
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