Laminar Flow Past a Cylinder using OpenFOAM-v2012

Aim of this tutorial: learn how to import transient snapshots from OpenFOAM (version 2012 from com-version) using pyvista package, generate the POD modes from the snapshots for the Flow Over Cylinder problem using an accelerated version of the algorithm and create a reduced model using Gaussian Process Regression (GPR).

The Flow Over Cylinder problem is a well-known benchmark in fluid dynamics, where a cylinder is placed in a flow field, leading to the formation of vortices and complex flow patterns. The problem is solved using OpenFOAM, a popular open-source CFD software (pimpleFoam solver in this case). The governing equations are the Navier Stokes equations:

\[\begin{split}\left\{ \begin{array}{ll} \nabla\cdot \mathbf{u} = 0 & \mathbf{x}\in\Omega\\ \frac{\partial \mathbf{u}}{\partial t} + \left(\mathbf{u}\cdot \nabla\right)\mathbf{u} -\nu \Delta \mathbf{u} + \nabla p = 0 & \mathbf{x}\in\Omega\\ \mathbf{u}=\mathbf{u}_{in},\;\; \frac{\partial p}{\partial \mathbf{n}} = 0 & \mathbf{x}\in\Gamma_{in} \\ \mathbf{u}=\mathbf{0},\;\; \frac{\partial p}{\partial \mathbf{n}} = 0 & \mathbf{x}\in\Gamma_{w} \\ \frac{\partial \mathbf{u}}{\partial \mathbf{n}}=0,\;\; p = 0 & \mathbf{x}\in\Gamma_{out} \end{array} \right.\end{split}\]

given \(\Omega\) as the domain and \(\partial\Omega\) as its boundary, composed by \(\partial\Omega = \Gamma_{in}\cup\Gamma_{w}\cup\Gamma_{out}\) where \(\Gamma_{in}\) is the inlet boundary, \(\Gamma_{w}\) is the wall boundary and \(\Gamma_{out}\) is the outlet.