New paper on data-driven radial compressor design space mapping
My latest paper has just been published in the Journal of Turbomachinery, following my talk at ASME Turbo Expo 2024. The paper describes a side project that has been taking up an increasing slice of my time over the last year or so, the open-source turbomachinery design code turbigen
.
This post is a high-level description of the work, and contains some of my opinions on prospects for this area of research and future directions. You can refer to the links below for the full technical details:
- Paper preprint
- Interactive Whittle Laboratory Radial Compressor Designer
- Video talk
- turbigen documentation
What is data-driven design space mapping?
Engineers need estimates of turbomachinery performance from the earliest stages of a system-level design process — in contrast to traditional empirical approaches, my data-driven approach is to run first-principles computational fluid dynamics simulations over the entire range of feasible geometries and then interpolate efficiency trends within the design space.
Consider an electrically driven compressor for use in a manufacturing process, which must deliver a stream of gas at a specified pressure and mass flow rate. Compressor aerodynamic efficiency is a function of size and rotational speed; while the electrical efficiency of the motor takes a different function of these same two design variables. A successful design must balance aerodynamic and electrical losses to achieve high system performance, while taking into account secondary objectives like minimising cost and maximising reliability.
Even in such a simple case, an Engineer must make several multidisciplinary compromises that are specific to each application. This is why I favour design space mapping rather than optimising. If we explore the aerodynamic design space as widely as possible, then we leave flexibility for any subsequent trade-offs; a general approach is more useful than an optimisation that produces the best aerodynamic design with specific multidisciplinary constraints already baked in.
turbigen
A few years ago, I had cause to design some turbines, but none of the existing tools available to me quite did what I wanted. This was the start of the “turbine generator” project, since generalised to compressors and called turbigen
.
turbigen
enables rapid exploration of new design spaces by automating geometry creation and flow field simulation in a general way. The turbomachinery design process has the following steps, where any one can be swapped out or extended as needed:
- Specify an inlet state as a perfect or real gas. The rest of the code is structured to make no assumptions about the equation of state.
- Perform a mean-line design to set flow angles, radii and annulus areas along a nominal mid-span stream surface. This amounts to specifying aerodynamic non-dimensional groups such as flow coefficient or stage loading, and then solving conservation of mass and energy. Any type of turbomachinery can be designed here.
- Set blade shapes use camber and thickness distributions stacked over a number of sections.
- Discretise the fluid domain and perform a steady Reynolds-averaged Navier–Stokes simulation.
turbigen
is solver-agnostic and can be integrated with any other CFD code. - Compare the CFD solution to the nominal mean-line design, update guesses of loss, deviation, and incidence, and adjust the geometry as appropriate.
The philosophy of the design system is inspired by Denton’s MULTALL. He says
Given a flexible geometry manipulation program, and a fast 3D solver; it is not only simpler, but also faster, to go straight from the mean-line to coarse-grid 3D calculations. — Denton (2017)
The two key innovations with turbigen
are modularity and automatic iteration. A modular architecture maximises generality, allowing the user to write custom Python code to perform any of the design steps. Rather than using empirical correlations for loss and deviation of limited accuracy, turbigen
closes the loop and iteratively updates the geometry until it exactly matches the mean-line design intent.
Application to radial compressors
After discussing general tools for design space mapping, the paper describes their application to radial compressors.
I ran 3700 geometries across an eight-dimensional design space. A simple polynomial fit yields a prediction of efficiency with a root mean square error of 1.2℅, which compares favourably to empirical mean-line models.
Analysis of the predicted flow fields shows that competition between just two loss mechanisms sets the aerodynamic optimum mean-line design: surface dissipation in boundary layers, and mixing loss in casing separations.
I present the results in an interactive web page that allows the designer to explore trends in full eight-dimensional detail.
What’s next?
I had some useful feedback at the conference, but, inevitably, I received a few comments focusing on the numerical method: variants of ‘I don’t trust your CFD’ or the classic ‘why did you use the Spalart–Almaras turbulence closure? I would argue that although three-dimensional RANS for turbomachinery has well-known limitations, any empirical mean-line model has more restrictive assumptions, especially when exploring a new design space outside the calibration range. Also, if you don’t like my CFD code, turbigen
makes it straightforward to swap to your preferred solver. Finally, my academic interest was never in the absolute numbers for efficiency, only the relative trends and physical mechanisms involved. None of the qualitative conclusions of the paper would change if I used a different CFD code.
A future development of the interactive design tool could be to give the user a choice of parametrisation. I used aerodynamic design variables that made intuitive sense to me, but a strength of the data-driven approach is that we can slice up the design space with any choice of independent variables. For example, fixing dimensional angular velocity or power would ease design to a specific application, or a plot in terms of specific speed and diameter would link back to earlier work.
Adding a stator and volute would make the tool more useful. It seems a reasonable extension to add volute losses approximated by correlations, but the curse of dimensionality strikes if we add a stator. The design space is already 8D and we would need several more design variables to parameterise a stator — the computational cost is prohibitive for now.
Outlook
I’ve currently got several users around the Whittle Laboratory of turbigen
who have all been very helpful in finding bugs for me; and very patient waiting for me to fix them. It is encouraging to see there is a research need for rapid CFD-based design tools.
My goal is to make turbigen
the most capable turbomachinery design system freely available to the academic community. The current situation, with options limited to commercial offerings or in-house codes of large manufacturers, stifles innovation — it should be straightforward for a PhD student or even a fourth-year project student to get started designing turbomachinery and running CFD. We can learn more by comparing many geometries than a detailed analysis on a single geometry. I also think there is needless duplication of coding effort both within and across Labs that is avoidable using a sufficiently general piece of software.
The biggest barrier to widespread adoption of turbigen
is that the only flow solvers available are commercial Turbostream codes. I have gradually been hacking away at a built-in CFD solver that, when finished, would be an exciting milestone in that the entire stack would be open-source. The second, less exciting barrier is documentation! I have made a start but it will take a while for the functionality of turbigen
to mature and the documentation to catch up.