OpenFOAM-Related Projects

  • Home /
  • OpenFOAM-related Projects
  • 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.