Mallard is a high-order unstructured finite volume solver for the compressible Navier-Stokes equations, written in C++.
NOTE: Mallard is a work in progress and many features are incomplete or not validated. Its performance has not been extensively characterized.
- Solves the fully compressible Navier-Stokes equations
- Supports unstructured meshes
- Performance portability and GPU support via Kokkos and MPI
- High-order TENO reconstruction
- Simple TOML-based input file format
Mallard depends on the Kokkos Ecosystem, specifically:
Both of these are included in this repository as submodules. You may choose to use these in-tree submodules, or use an existing Kokkos and/or KokkosKernels installation. All other prerequisites will be installed automatically.
Mallard uses CMake for building. Follow the steps below to install Mallard:
-
Clone the repository and set up its submodules:
git clone https://github.com/MatthewBonanni/Mallard.git cd Mallard git submodule init
-
Create a build directory and navigate to it:
mkdir build cd build
-
Configure, build, and install Mallard:
- If using in-tree Kokkos and KokkosKernels (be sure to enable the desired backends):
ccmake .. -DCMAKE_INSTALL_PREFIX=/path/to/Mallard/build -DUSE_SYSTEM_KOKKOS=OFF make -j install
- If using existing Kokkos and KokkosKernels installations:
ccmake .. -DCMAKE_INSTALL_PREFIX=/path/to/Mallard/build -DUSE_SYSTEM_KOKKOS=ON -DKokkos_DIR=/path/to/kokkos make -j install
- If using in-tree Kokkos and KokkosKernels (be sure to enable the desired backends):
Mallard uses the Google C++ Style Guide
Mallard is licensed under the AGPL v3.0 License. See the LICENSE file for more details.