Title: Automatic Differentiation at RollsRoyce
1Automatic Differentiationat Rolls-Royce
- Leigh Lapworth,
- Rolls-Royce PLC, Derby.
2The HYDRA CFD Solver
- Background
- First version developed by Giles and co-workers
at OUCL with funding and technical assistance
from RR - Developed from outset to be a suite of
non-linear, linear and adjoint CFD solvers - Linearised unsteady and adjoint versions were
hand coded - Since 2000, has been developed collaboratively by
RR and a number of university collaborators
including OUCL. - Central code in Rolls-Royce corporate CFD
strategy - Current Status
- HYDRA used on a wide range of gas turbine
projects in both the aerospace and non-aerospace
sectors. - HYDRA is the basis of a large number of
industry-university collaborations involving RR. - The HYDRA collaborative network is one of the
codes major strengths and the network is
continuing to grow.
3HYDRA Framework
Common i/o, parallel, multigrid, visualisation
libraries
Non-Linear Solver
Linearised Unsteady Solver
Steady Adjoint Solver
Steady CFD Unsteady CFD
Steady design sensitivites Loss, Flow rate
etc.
Fixed frequency unsteadiness Flutter, Forced
Response, Tone Noise.
Harmonic Adjoint Solver
Unsteady design sensitivites Work sum, Acoustic
energy, etc.
4The Role of Automatic Differentiation
- Code maintenance
- Features are added to the non-linear code more
rapidly than the linear and adjoint versions. - Inconsistencies between versions affect stability
and accuracy of the linear and adjoint
sensitivities. - Expertise needed to maintain hand-coded versions.
- Automatic Differentiation
- Allows consistent non-linear, linear and adjoint
versions of the code to be maintained with
minimal effort. - More quality assured because scope for
hand-coding bugs in linear and adjoint versions
is removed. - Less validation of new versions needed.
- Generation of linear and adjoint code becomes a
transient operation controlled by the Makefile - Only the non-linear code and executables need to
be retained, - Less reliance on specialist hand-coding
expertise.
5The Influence of Coding Inconsistencies
Inconsistency in flux evaluations leads to larger
errors in adjoint sensitivities
Inconsistency in periodic boundary condition
leads to divergence
6Makefile Implementation
- AD (Tapenade) automatically run by Makefile when
linear or adjoint object file needed to build an
executable. - Intermediate (AD generated) files are transient
- Sample Makefile
flux.o routines.F CPP -E -C -P routines.F gt
routines.f TPN -forward \ -head
flux \ -output flux \ -vars
q res \ -outvars q res \ routines.f
FC FFLAGS -c flux_d.f /bin/rm -f routines.f
flux_d.f .msg
Giles et. al, Post SAROD Workshop 2005
7Rolls-Royce Experience with AD
- Acknowledgement
- RR experience has been gathered through research
programmes with Oxford (Giles et al.), Cambridge
(Radford) and Cranfield (Forth) - RR perspective
- Reference hand-coded versions essential to
demonstrations - Provided validation and performance database,
- Provided infrastructure so that AD can be applied
at a subroutine level. - Application of AD via Makefile essential to
deployment - RR doesnt want to maintain an expertise in AD,
just as it doesnt have experts in compiler
technology. - Outlook
- AD is essential to maintaining a large industrial
code, HYDRA. - RR will use Tapenade for AD.
- RR will continue to look to collaborators for
recommendations.
8Adjoint Design - Bypass OGV design
2D OGV design to reduce static pressure variation
9Summary
- Automatic Differentiation
- Crucial to long term maintenance of HYDRA,
- AD treated as just another compiler
- Adjoint CFD
- Design
- Several application areas where design variables
are much greater than objectives and
constraints. - Sensitivity analysis
- Often need to ask how close is a design to a
stability boundary (e.g. stall) or, how
sensitive is it to small changes (e.g. robust
design). - Error analysis
- Either to drive solution adaptation or provide
confidence levels in solutions.