Skip to content

exasim-project/NeoN

Repository files navigation

Requirements | Compilation | Integration | Documentation | Roadmap |

DOI c++ standard Gitter doxygen

image

NeoN

Important

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

Requirements

NeoN has the following requirements

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

For NVIDIA GPU support

  • cuda 12+

For development it is required to use pre-commit.

C++ dependencies

C++ dependencies like Kokkos are handled via CPM and are cloned at the configuration step. However, 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.

Compilation

workflows/Build on linux workflows/Build on OSX workflows/Build on windows

NeoN 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 NeoN in combination with Kokkos.

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

Executing Tests

We provide a set of unit tests which can be executed via ctest or

cmake --build . --target test

Integration with other CFD Frameworks

Currently, NeoN is not a standalone CFD Framework. It is designed to be used with other CFD Frameworks. Examples how to integrate NeoN into Frmeworks and how to write applications is demonstrated in the FoamAdapter repository.

Documentation

An online documentation can be found here, be cautious since this repository is currently evolving the documentation might not always reflect the latest stage. For building the documentation further dependencies like doxygen and sphinx are requirement. The list of requirements can be found here