← All projects

Surrogate-Based Aerodynamic Optimisation Pipeline

Python Automation Bayesian Optimisation Parametric CAD CFD HPC STAR-CCM+ SolidWorks

An automated pipeline that utilises parametric CAD and automated CFD execution for Bayesian optimisation. This project represents my 3rd year dissertation with a focus on exploring the aerodynamic design space around a solar racecar.

CAD render of the vehicle chassis inside the transparent aeroshell surface

Overview

The aim of this project was to develop an automated pipeline for HPC communication and job submission, enabling continuous, long-term optimisation campaigns using high-fidelity simulations.

This dissertation supported EKKO Solar Racing at the University of Southampton in developing their Challenger-class solar car for the Bridgestone World Solar Challenge. The project modelled mission energy over a full day of racing, accounting for solar input, aerodynamic drag, rolling resistance and auxiliary loads.

The remaining universal code can be found at https://github.com/spenCliff/DSO.

Methodology

The pipeline automated the full design loop including CAD regeneration, HPC communication, CFD execution, post-processing, and candidate selection without manual intervention. The key steps were:

Isometric CAD view.

Simulation Setup

The design features a parametric aerodynamic surface, which allows the geometry to be updated directly through the code.

The STAR-CCM+ RANS simulation was run at 23 m/s, and incorporated a moving ground, rotating wheels, and a near-wall resolution of y⁺ < 1.

Final computational mesh with prism-layer inflation and wake refinement

Blockage and mesh resolution effects were verified through mesh and domain sensitivity studies.

Wind tunnel data was used to benchmark turbulence models, with k–ω SST providing the best balance of accuracy and computational cost.

Automated orchestration loop linking optimisation, collection, and submission drivers to the HPC cluster

Pipeline Setup

The project utilises Meta's Ax platform to drive the Bayesian optimisation. The objective function targets daily mission energy by balancing solar area collection against aerodynamic and rolling resistance losses.

A custom Python orchestration system links the workflow to the Iridis 6 HPC cluster. This setup manages the job states autonomously so that simulations can seamlessly run, pause, and resume.

Automated orchestration loop linking optimisation, collection, and submission drivers to the HPC cluster

Pipeline Validation

A Pareto front study on a low-aspect wing was conducted to validate the framework robustness and optimisation implementation.

Results & Reflections

Best feasible mission-energy proxy versus completed trial number

The campaign reduced predicted daily energy losses by 37.6%.

Most of the improvement was achieved within the first 40-50 trials of the 250 trial budget, highlighting the potential to reduce future computational cost through tighter stopping criteria.

Total-pressure coefficient wake contours comparing baseline and optimised trial

Changes centred on improving pressure recovery and delaying separation in the tail region.

Rear-body streamline visualisation of the baseline design showing earlier flow separation Rear-body streamline visualisation of the optimised design showing delayed separation and a reduced wake

This can be seen to reduce wake size and significantly reduce energy dissipated through the vortex shed from the floor transition.

The final design remains a candidate rather than a race-ready geometry, but the resulting CAD-CFD-HPC optimisation pipeline provides EKKO with a reusable framework for future aerodynamic studies.

Code from this project has since been adapted into a generalised optimisation tool, which I now use for Formula Student aerodynamic surfaces.