- OpenFOAM Tooling
- OpenFOAM Enhancements
- Presentations & courses
- Experiments
Unit-tested OpenFOAM code
A fork-agnostic unit/integration testing framework to help test-proof new OpenFOAM code. It will always work with the latest versions of the main three OpenFOAM forks: ESI OpenCFD’s, Foundation version and Foam-Extend.
No-dependencies Fail-tolerant parser for OpenFOAM file format
A generic fail-tolerant parser for OpenFOAM case dictionaries that does not require an OpenFOAM installation. The goal is to reach a state that is “good enough” for syntax highlighting and feasible symbols extraction.
Editors to understand OpenFOAM dictionaries
An implementation of the Language Server Protocol (LSP) for OpenFOAM dictionaries. With symbol extraction features.
Apptainer packaging for HPC environments
Hustle-free packaging for your software projects into Apptainer containers that are HPC-ready.
Load-balanced adaptive mesh refinement
Load-balanced adaptive mesh refinement on polyhedral meshes on ESI OpenFOAM. Ported from blastFOAM.
Bayesian optimization on OpenFOAM cases
Relying on ax-platform to experiment around 0-code parameter variation and multi-objective optimization of OpenFOAM cases through Bayesian processes.
ML/AI control and integration into OpenFOAM cases
Embedding SmartSim/SmartRedis into OpenFOAM cases both for running ML/AI algorithms on cases (e.g. parameter variation, optimization) and run ML algorithms inside a case (through function object or solver integrations).
OpenFoam course on Parallel Programming
Hands-on activities and mini projects to learn (MPI) parallel programming using OpenFOAM’s API.
Bayesian optimization on OpenFOAM cases
Slides for the “Optimization of combustion processes with Bayesian algorithms” talk at the NHR4CES Machine learning for combustion workshop (November 2023).
OpenFOAM reflections
Provide an automated mechanism to build dictionary schemas and all kinds of UIs for OpenFOAM classes, while integrating well with the Runtime Selection Table mechanism. Special care has been taken to record developer-set default values at compile-time, just because it pains me to try to remember if a keyword is in effect or not after meddling with my libraries!!
Efficiency improvement with Views and template expressions
Investigating the viability of switching to lazy evaluation in OpenFOAM code instead of default eager evaluation.
(GPU) acceleration of OpenFOAM with OpenMP
Investigating the viability of implementing OpenMP acceleration, either with multi-threading on the CPU, or with GPU offloading support in OpenMP 4.