Adjoint sensitivity
Adjoint sensitivity in OpenFOAM: how every surface point affects the objective
Compute how an objective — drag, pressure loss, uniformity — would change if any point on the surface moved, from one extra solve rather than one run per variable.
What it is
The adjoint solves a second problem whose answer is the sensitivity of the objective to every design variable at once. Its cost barely depends on how many variables there are, which is the entire point: a shape has hundreds, and a finite-difference sweep would need a run for each one.
What the application sets up
- A differentiable objective, chosen before the run rather than after
- The primal flow solution the adjoint is taken about
- Adjoint boundary conditions matching that primal case
- Surface sensitivity written as a field on the geometry
- A viewer that shows sensitivity on the surface, since that is the deliverable
Typical uses
- Duct and manifold shapes for minimum pressure loss
- Drag reduction under packaging constraints
- Flow uniformity into a downstream component
- Deciding which surfaces are worth changing at all
Industries
Sectors where this analysis is routinely asked for.
- Automotive & motorsport
- Turbomachinery
- HVAC & ducting
- Aerospace
What comes out
- Surface sensitivity maps
- Objective gradients per design variable
- Where effort pays, ranked
- Direction for the next design step
OpenFOAM solvers
adjointOptimisationFoam
Selected and configured for you from the analysis type. You can still see every dictionary the application writes.
In every tier
This analysis type is in the free build. The free tier limits mesh size to 250,000 cells and solving to one core — not which physics you may use.
On accuracy, plainly.