Thermoacoustic oscillations are a persistent problem in rocket and aircraft engines. They can be eliminated with small design changes. The challenge is to find the design changes that will stabilize all thermoacoustic oscillation modes simultaneously. Adjoint methods are ideal for this because they show, in a single calculation for each mode, how to reduce the growth rate of each mode. The top frame shows a diagram of a thermoacoustic system: a flame (red line) in a tube with variable cross-section and open ends (green lines). The bottom frame shows the frequency (horizontal axis) and growth rate (vertical axis) of thermoacoustic modes (circles). At each iteration, the optimization algorithm works out the shape change that will make the modes more stable, and then changes the shape of the thermoacoustic system accordingly. This is repeated until all modes are stable.