  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.
