exasim-project / NeoFOAM

WIP Prototype of a modern CFD core

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Requirements | Compilation | Documentation |

NeoFOAM

Important

The NeoFOAM project needs you! If you're interested in contributing to NeoFOAM please open a PR! If you have any questions on where to start please contact us here or on gitter.

Requirements

NeoFOAM has the following requirements

  • cmake > 3.22
  • gcc >= 10 or clang >= 16
  • Kokkos 4.3.0

For NVIDIA GPU support

  • cuda

For development it is required to use pre-commit.

C++ dependencies

The cmake build process will prefer system wide installed C++ dependencies like Kokkos, cxxopts, etc. If you prefer to clone, configure and build dependencies your self consider setting -DCPM_USE_LOCAL_PACKAGES = OFF, see CPM for more details.

Documentation build

For building the documentation further dependencies like doxygen and sphinx are requirement. The list of requirements can be found here

Compilation procedure

Build NeoFOAM Gitter

NeoFOAM uses cmake to build, thus the standard cmake procedure should work. From a build directory you can execute

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

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

cmake --list-presets # To list existing presets
cmake --preset production # To compile for production use

Executing Benchmarks

NeoFOAM provides a set of benchmarks which can be executed and plotted by the following commands

cmake --build . --target execute_benchmarks # runs the benchmark suite
cmake --build . --target execute_plot_benchmark # plots the benchmark results

Executing Tests

cmake --build . --target test

About

WIP Prototype of a modern CFD core


Languages

Language:C++ 84.4%Language:CMake 11.6%Language:Python 4.0%