Skip to content

Latest commit

 

History

1,307 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements | Compilation | Documentation |

NeoFOAM

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.

Key Features

  • 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

Requirements

NeoFOAM has the following requirements

  • cmake 3.22+
  • gcc >= 12 or clang >= 18+
  • OpenFOAM 2406+
  • NeoN (latest version)

Compilation

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

Structure

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

Agentic coding

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

About

Platform portable examples for OpenFOAM

Resources

Stars

43 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages