zhulianhua / LAMBReX

Lattice Boltzmann code built on AMReX

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LAMBReX 🐑👑

Lattice Boltzmann code built on AMReX

Build Instructions

LAMBReX

From the home directory create a build directory and cd to it -- for example mkdir build followed by cd build. Then simply run cmake ../ followed by make. liblambrex.a can be found in ${LAMBReX_HOME}/liblambrex, the binary for the example calculation can be found in ${LAMBREX_HOME}/bins.

Dependencies

AMReX

AMReX is a C++ adaptive mesh refinement library. The source can be downloaded from the AMReX GitHub.

Important: The library that AMReX builds with GNU Make is subtly different from the one that it builds with cmake. LAMBReX now supports only the cmake version. Additionally AMReX is updated regularly. LAMBReX is attempting to move with it, so minimum version 19.02 is REQUIRED.

To build the static AMReX library with cmake in way that is compatible with the current version of LAMBReX, please follow the commands given in (or run) amrex_cmake.sh.

Catch2

The C++ Automated Tests in a Header (Catch2) test framework is used for testing LAMBReX. It can be found at Catch2. For compatibility with LAMBReX, system-wide installation using cmake is recommended, as described here.

Examples

At present there is only one example code, a simple simulation of a "pulse" of enhanced density on a single plane, with fully periodic boundary conditions. This calculation was chosen for its simplicity, and the output was compared against the original code on which the Lattice Boltzmann calculation part of LAMBReX is based.

About

Lattice Boltzmann code built on AMReX


Languages

Language:C++ 90.0%Language:CMake 7.2%Language:Shell 2.5%Language:C 0.3%