The NeoFOAM team is proud to announce the first release of NeoFOAM, a next generation implementation of a CFD core. NeoFOAM leverages the features of modern C++ to implement core routines to efficiently solve PDEs required by CFD frameworks like OpenFOAM, thus NeoFOAM helps to catch up with the rapidly evolving HPC ecosystem.
Our design goals are:
- Platform portable for all CPU and GPU hardware vendors
- Modular design leveraging the existing simulation software ecosystem like Kokkos, sundials, PETSc, or Ginkgo
- Implement an updated domain specific language for DSL that allows to encode complex partial differential equations in a concise yet powerful form
- Simple adoption within OpenFOAM
- Target multiphysics simulations and enable simple integration of coupling software like preCICE
This v.0.1 release is all about building a foundation for the future developments of NeoFOAM. It focuses on building the foundational library structure, a first draft of the DSL API including basic kernels, and a solid CI/CD infrastructure from the start. It features unit and integration testing on Linux, macOS, and Windows as well as sanitizer and static analyzer workflows.
Integration into OpenFOAM applications are demonstrated in our FoamAdapter repository. A full list of changes can be found in the CHANGELOG.md. An exciting year is ahead of us, visit our Roadmap to find out which features are next. Thank you to everyone who contributed to NeoFOAM.