Skip to content
exasim-projectPublic

About

WIP Prototype of a modern CFD core

Topics

Resources

Code of conduct

Stars

98 stars

Watchers

6 watching

Forks

Latest commit

 

History

3,756 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quickstart | Integration | Documentation | Roadmap |

DOI c++ standard Gitter doxygen

image

NeoN is an open-source, high-performance C++ CFD library for modern heterogeneous computing systems. It currently provides data structures, parallel algorithms, and numerical infrastructure for the finite volume method.

By combining finite-volume abstractions with modern C++ and performance-portable backends, NeoN enables developers to build maintainable, scalable, and high-performance fluid-flow solvers without writing architecture-specific code for each hardware platform.

Its modular architecture enables performance-portable execution and solver backends, currently using Kokkos and Ginkgo while remaining flexible to adopt alternative technologies as the framework evolves.

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. All participants are expected to follow our Code of Conduct.

Key Features

  • Execution on
    • serial CPU
    • multithreaded CPU
    • MPI-based distributed systems
    • GPUs from NVIDIA, AMD, and Intel
  • Portability across Linux, macOS, and Windows
  • Performance-portable parallel and memory abstractions
  • Unified GPU execution model for NVIDIA, AMD, and Intel GPUs

Quickstart

To build the C++ library from source you need CMake ≥ 3.22, a C++20 compiler (gcc >= 13 or clang >= 19), Ninja (only when using the CMake presets) and, optionally, MPI (disable with -DNeoN_WITH_MPI=OFF). Kokkos, Ginkgo and other C++ dependencies are managed through CPM <https://github.com/cpm-cmake/CPM.cmake> and fetched automatically when suitable system installations are unavailable.

git clone https://github.com/exasim-project/NeoN.git && cd NeoN
cmake --preset production -DNeoN_WITH_MPI=OFF
cmake --build --preset production

Alternatively, try NeoN from Python via the prebuilt CPU package from PyPI (Python 3.9–3.13):

pip install neon_pde
import neon
neon.initialize()
executor = neon.CPUExecutor()
v = neon.ScalarVector(executor, 10, 1.0)
print(neon.__version__, v.size())
del v, executor
neon.finalize()

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

Further installation options (GPU builds, conda/pixi packages, CUDA wheels, Spack), the full list of requirements and how to run the tests are described in the installation guide and the Python bindings guide.

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 CFD frameworks and how to write applications is demonstrated in the NeoFOAM repository.

Documentation

The online documentation can be found here. Since NeoN is evolving quickly, the documentation might not always reflect the latest state.

Contributing and Getting Help

About

WIP Prototype of a modern CFD core

Topics

Resources

Code of conduct

Stars

98 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages