Skip to content

WIP Prototype of a modern CFD core

Notifications You must be signed in to change notification settings

gregorweiss/NeoFOAM

 
 

Repository files navigation

Requirements | Compilation | Integration | Documentation | Roadmap |

c++ standard Gitter

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 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

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 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 execute via ctest or

cmake --build . --target test

Integration with OpenFOAM

Currently, NeoFOAM is not a standalone CFD Framework. It is designed to be used within OpenFOAM. Examples how to integrate NeoFOAM into OpenFOAM and howto 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

About

WIP Prototype of a modern CFD core

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.0%
  • CMake 8.5%
  • Python 2.5%