Installation¶
You can build NeoFOAM by following these steps:
Clone the NeoFOAM repository:
git clone https://github.com/exasim-project/NeoFOAM.git
Navigate to the NeoFOAM directory:
cd NeoFOAM
NeoFOAM 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 .
The following can be chained with -D<DesiredBuildFlags>=<Value> to the CMake command most and most relevant build flags are:
Flag |
Description |
Default |
---|---|---|
CMAKE_BUILD_TYPE |
Build in debug or release mode |
Debug |
NEOFOAM_BUILD_DOC |
Build NeoFOAM with documentation |
ON |
NEOFOAM_BUILD_TESTS |
Build NeoFOAM with tests |
OFF |
To browse the full list of build options it is recommended to use a build tool like ccmake
.
By opening the the project with cmake-gui you can easily set these flags and configure the build.
NeoFOAM specific build flags are prefixed by NEOFOAM_
.
Note
NeoFOAM will automatically enable Kokkos_ENABLE_CUDA
or Kokkos_ENABLE_HIP
if either of this is available on
the system. This can be prevented by setting both options explicitly.
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 NeoFOAM 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
Workflow with vscode¶
install the following extensions:
ms-vscode.cpptools
ms-vscode.cmake-tools
After installation, you can open the NeoFOAM directory with vscode and configure the build with cmake presets with the cmake extension as shown below:

After configuring the build, you can build the project with the build button or test in “testing” tab (flask icon).
To create the documentation, you can use the ‘Build Sphinx Documentation’ task in the vscode task menu. Type Ctrl+P and type task and press space and the build documentation and press enter. The documentation will be created in the docs_build directory.