Requirements | Compilation | Documentation |
NeoFOAM is an open-source performance-portable finite-volume CFD framework built on top of NeoN and primarily implemented in modern C++. It is designed for modern heterogeneous computing systems, enabling the same CFD solver implementation to run efficiently on both CPUs and GPUs while remaining portable across Linux, macOS, and Windows.
NeoFOAM includes fluid-flow solvers that correspond to established OpenFOAM solvers.
For example, neoIcoFoam is the NeoFOAM equivalent of OpenFOAM icoFoam for transient
incompressible laminar flow simulations of Newtonian fluids.
- Execution on
- serial CPU
- multithreaded CPU
- MPI-based distributed systems
- GPUs from NVIDIA, AMD, and Intel
- Portability across Linux, macOS, and Windows
- OpenFOAM-compatible mesh and field conversion utilities
- OpenFOAM-equivalent solver implementations (e.g.,
neoIcoFoam) - Validation against OpenFOAM or literature results for numerical reproducibility
NeoFOAM has the following requirements
- cmake 3.22+
- gcc >= 12 or clang >= 18+
- OpenFOAM 2406+
- NeoN (latest version)
We provide several Cmake presets to set commmonly required flags for building NeoFOAM
cmake --list-presets # List existing presets
cmake --preset production # Configure for production
cmake --build --preset production # Build for production
Check the documentation for details
The repository is structured in the following way:
- src and include implement common functionality to copy data between OpenFOAM and NeoN
- tests demonstrating that NeoFOAM and OpenFOAM deliver identical results are provided by this repository in the test folder.
- examples provides examples of how NeoFOAM can be used for writing applications
- tutorials provides tutorial cases which can be run like typical OpenFOAM cases
We provide an AGENTS.md file to support LLM-based coding workflows.
Please instruct AI coding tools to reference this file, for example by prompting: “See AGENTS.md for shared project instructions.”