Project : tropics
Section: Application Domains
Automatic Differentiation of programs gives sensitivities or gradients, that are useful for many types of applications:
optimum shape design under constraints, multidisciplinary optimization, and more generally any algorithm based on local linearization,
inverse problems, such as data assimilation or parameter estimation,
first-order linearization of complex systems, or higher-order simulations, yielding reduced models for simulation of complex systems around a given state,
mesh adaption and mesh optimization with gradients or adjoints,
equation solving with the Newton method,
sensitivity analysis, propagation of truncation errors.
We will detail some of them in the next sections. These applications require an AD tool that differentiates programs written in classical imperative languages, fortran77, fortran95, c, or c++. We also consider our AD tool tapenade as a platform to implement other program analyses and transformations. tapenade does the tedious job of building the internal representation of the program, and then provides an API to build new tools on top of this representation. One application of tapenade is therefore to build prototypes of new program analyses.