Getting started

You can build FoamAdapter by following these steps:

Clone the FoamAdapter repository including FoamAdapter integrated as a submodule:

git clone --recurse-submodules https://github.com/exasim-project/FoamAdapter.git

Navigate to the FoamAdapter directory:

cd FoamAdapter

FoamAdapter uses CMake to build, thus the standard CMake procedure should work, however, we recommend using one of the provided CMake presets detailed below below. From a build directory, you can execute:

mkdir build
cd build
cmake <DesiredBuildFlags> ..
cmake --build .
cmake --install .

Building with CMake Presets

Additionally, we provide several CMake presets to set commonly required flags if you compile NeoFoam in combination with Kokkos.

cmake --list-presets # To list existing presets

To build FoamAdapter for production use, you can use the following commands:

cmake --preset production # To configure with ninja and common kokkos flags
cmake --build --preset production # To compile with ninja and common kokkos flags

It should be noted that the build directory changes depending on the chosen preset. This way you can have different build directories for different presets and easily switch between them.

Prerequisites

The following tools are used in the development of this project:

required tools for documentation:

sudo apt install doxygen
pip install pre-commit sphinx furo breathe sphinx-sitemap

required tools for compilation (ubuntu latest 24.04):

sudo apt update
sudo apt install \
ninja-build \
clang-16 \
gcc-10 \
libomp-16-dev \
python3 \
python3-dev \
build-essential

Run test case

Run