
<aside> 🗞️ Highlights
At Vanellus, we are deploying cutting-edge machine learning research to build computational fluid dynamics (CFD) software that is dramatically more efficient than current solutions. To integrate machine learning into a CFD solver it needs to be fully differentiable, and currently no industrial-grade software supports this. Therefore, we are developing our own fluid solver from scratch, supporting differentiability and native deployment on GPUs and TPUs from day one.
In this blog, we share our recent progress in building our new solver by demonstrating its ability to accurately solve the industry-standard benchmarking problem of a lid-driven cavity.
Fluid simulations give engineers vital information on the performance of their designs prior to the expensive process of physical testing. It is therefore critical that simulations give results that are as accurate as possible given the computing resources available. Existing simulation tools such as Ansys Fluent and OpenFOAM have been used by engineers for decades and have been extensively validated. To gain the trust of engineers we aim to rigorously validate our solver as we continue to extend its functionality.
The ideal form of validation is to directly test simulation results against real-world data. For example in aerodynamics, experimental data can be collected from placing a car or a wing in a wind tunnel. Unfortunately, experimental data like this is often extremely costly and difficult to obtain, requiring techniques such as particle image velocimetry to capture data on the velocity of the air in a wind tunnel.

A model Cessna with helium-filled bubbles showing pathlines of the wingtip vortices in a wind tunnel.
As CFD has become ubiquitous over the last few decades, there exists a wealth of literature and software that has been benchmarked against both experimental and analytical results, proving their robustness. Therefore, to validate our software, we compare our results to those from well-trusted papers and industrial CFD software.
One of the most common benchmarking problems in CFD is known as the lid-driven cavity. The scenario models a two-dimensional “cavity” of fluid, which is essentially a square box with an open lid. Above the box, the fluid is flowing to the right with a constant velocity. Initially, the fluid inside the cavity is stationary and is subsequently pushed by the flow above the lid. The mathematical setup for this problem is depicted below, where “u” is the velocity of the fluid in the horizontal direction and “v” is the velocity in the vertical direction.

Setup of the lid-driven cavity problem.
The lid-driven cavity problem has been one of the most popular benchmarking problems over the last fifty years, and for good reasons. For one, it is very simple to define and set up. However, despite how simple the definition of the problem seems, the resulting flow can exhibit a wealth of complex behaviour present in real-world flows, such as eddies, turbulence and flow separation.
It is also possible to produce a real-world lid-driven cavity in a laboratory setting, as can be seen in the video from SUTD-MIT below.
https://www.youtube.com/watch?v=Ma3NoxRRM7w&ab_channel=SUTD-MITInternationalDesignCentre
The publications of Ghia et al. (1982) and Erturk et al. (2005) are considered the gold standard for benchmarking the lid-driven cavity problem. Both provide data for steady-state solutions to the lid-driven cavity problem at various Reynolds numbers (which measure the ratio between the inertial and viscous forces of the fluid). To compare our solver to this data, we ran our simulations for a long enough time to reach a steady state.
Below we show a comparison of our results to the literature data for two different Reynolds numbers. Simulating a square cavity of width 1, we compare slices of the horizontal and vertical velocities taken at the centre lines of the cavity (i.e. x = 0.5 on the left, and y = 0.5 on the right).
