Combining Machine Learning with Computational Fluid Dynamics using
  OpenFOAM and SmartSim
Tomislav Maric Mohammed Elwardi Fadeli Alessandro Rigazzi Andrew Shao Andre Weiner
Combining machine learning (ML) with computational fluid dynamics (CFD) opens
many possibilities for improving simulations of technical and natural systems.
However, CFD+ML algorithms require exchange of data, synchronization, and
calculation on heterogeneous hardware, making their implementation for
large-scale problems exceptionally challenging.
  We provide an effective and scalable solution to developing CFD+ML algorithms
using open source software OpenFOAM and SmartSim. SmartSim provides an
Orchestrator that significantly simplifies the programming of CFD+ML algorithms
and a Redis database that ensures highly scalable data exchange between ML and
CFD clients. We show how to leverage SmartSim to effectively couple different
segments of OpenFOAM with ML, including pre/post-processing applications,
solvers, function objects, and mesh motion solvers. We additionally provide an
OpenFOAM sub-module with examples that can be used as starting points for
real-world applications in CFD+ML.