Adaptive simulation, the adjoint state method, and optimization

Document Type

Book Chapter

Publication Date



Adaptive grids in inverse and control problems can lead to computed objective functions that are nonsmooth, even though the underlying problem is well-behaved. This leads to the question of how to compute the linearization of the scheme—how should a nonsmooth function be differentiated? The C++ class afdtd uses automatic differentiation techniques to implement an abstract marching scheme in an object-oriented fashion, making it possible to use the resulting simulator to solve inverse or control problems. The class takes a complete specification of a single step of the scheme, and assembles from it a complete simulator, along with the linearized and adjoint simulations. The result is a (nonlinear) operator in the sense of the Hilbert Class Library, a C++ package for optimization. Moreover, afdtd supports locally “frozen” grids, allowing the implementation of an operator that is piecewise smooth in spite of the use of adaptivity.

Publisher's Statement

© Springer-Verlag Berlin Heidelberg 2003. Publisher's version of record: https://doi.org/10.1007/978-3-642-55508-4_17

Publication Title

Large-Scale PDE-Constrained Optimization