
Programme of the 19th Euro AD Workshop
Thursday, April 7, 2016
 9^{00}  9^{30} Welcome
 9^{30}  12^{00} Session 1
 Thomas Slawig (Universität Kiel)
Benefit from exact derivatives in climate simulations with homemade AD
We consider the usage of exact derivatives that can be obtained by AD for the computation of steady annual cycles of coupled 3D marine ecosystem models. The standard way to solve this problem is to apply a pseudotimestepping or fixedpoint solver that takes about 3,000  10,000 steps (= years model time) to converge. Each year itself requires 2880 timesteps with a nonautonomous differential operator. One way to reduce the huge effort is the use of an inexact NewtonGMRES method, which needs only one sixth of the model evaluations. Due to the structure of the problem, the directional derivatives needed in the inner iterations are computed by a FD approximation, since this avoids a double evaluation of the function value. On the other hand, it is interesting to evaluate if the Newton method will benefit from exact AD derivatives. The simulation code is a combination of a linear part realized in PETSc and nonlinear biomodels given in Fortran. As an exercise in objectedoriented programming in Fortran, we have built our own small AD class or library to realize the AD derivative for the bio part. We will compare computational effort and difference in the Newton iteration of FD and AD derivatives.
 Arindam Sen (RWTH Aachen)
Effective sensitivity computation for aerodynamic optimization using discrete adjoint OpenFoam
Discrete adjoint OpenFoam has the unique advantage of flexibility and robustness for computing sensitivities, i.e. derivatives of objective function such as power loss, drag, lift etc. with respect to desired design variables. The framework is applied to problems of industrial relevance and the results are presented. The advantage of using Reverse Accumulation for steady state problems is especially notable while using specific linear solvers. Also, in some problems, it is required to 'tune' the primal in order to achieve correct adjoint sensitivities.
 Andrea Walther (Universität Paderborn)
Checkpointing extended for recilience issues
 Max Sagebaum (TU Kaiserslautern)
Assign Optimization for IndexReuse Tapes
Current AD tools that reuse there indices like Adept, AdolC, CoDiPack::RealReverseIndex etc. need to write a statement for every assign operator, because each index has to be unique. An AD tool that does not reuse indices like dco/c++, CoDiPack::RealReverse, etc. does not need to do this because indices do not need to be unique. We propose a solution by extending the index manager in CoDiPack that will lift the restriction on the uniqueness of indices and present results on the run time and memory changes this modification will introduce.
 12^{00}  13^{00} Lunch
 13^{00}  15^{00} Session 2
 Mladen Banovic (Universität Paderborn)
Towards the Automatic Differentiation of a CAD System
Shape optimization of a threedimensional CADbased model using the adjoint method requires the calculation of the geometrical sensitivities with respect to the design parameters of the model. These sensitivities are usually not provided within a CAD system. This talk explains the automatic differentiation of the opensource CAD kernel OpenCASCADE Technology (OCCT) applying the forward traceless mode of the AD software tool  ADOLC (Automatic Differentiation by OverLoading in C++).
 Jan Backhaus (DLR Köln)
Application of AD in aerodynamic turbomachinery optimizations
Turbomachinery design is increasingly driven by high fidelity simulations and optimization techniques. Gradients of the objective functions could dramatically improve the computational efficiency of these optimizations, provided that these are calculated in an efficient manner. Since many CFD solvers were developed long before the adjoint method became popular, one faces the challenge to differentiate and adjoin a long existing CFD solver. Lately, reverse mode AD has been successfully applied to the steady RANS module of the TRACE solver. However the industrial application of this adjoint solver leads to additional demands in efficiency, consistency and to the development process itself.
 Alexander Hück (TU Darmstadt)
OOLint: Preparing C++ Codes for Operator Overloading
Algorithmic differentiation through operator overloading semantically augments the code, leaving most of the code structure unchanged. To that end, the builtin floatingpoint type T is replaced by a userdefined AD type U. It provides all necessary overloads for arithmetic operations and mathematical functions. However, the introduction of a userdefined type can introduce compile time errors due to the way the C++ standard treats builtin and userdefined types. We have developed a static code analysis tool that finds these problematic code constructs. It prints Lintlike messages and applies source transformations to correct them.
 Martin Bücker (FSU Jena)
Starting to Learn Automatic Differentiation: A Case Study
We describe what happened to a novice AD user when differentiating a sine function.
 15^{00}  15^{30} Coffee Break
 15^{30}  17^{00} Session 3
 Jens Deussen (RWTH Aachen)
IntervalAdjoint Significance Analysis
 Beckett Zhou (TU Kaiserslautern)
AdjointBased Trailing Edge Noise Minimization via Porous Material
 Marc Schwalbach (VKI Brussels)
Differentiating a Structural Solver for Turbomachinery Design
Deformations occur in turbomachinery components under running conditions due to centrifugal and pressure loads. As a result, the manufactured, atrest shape differs from the deformed, running shape. Rather than optimizing the shape under running conditions and computing the atrest shape for manufacturing a posteriori, we aim to optimize the atrest shape directly by considering structural deformations within the optimization. This talk will introduce this concept and the ongoing progress of differentiating a structural solver with adjoint algorithmic differentiation within this context.
 19^{00} Dinner at Restaurant Julien, Altenwoogstraße 3, 67655 Kaiserslautern

Friday, April 8, 2016
 9^{00}  9^{30} Coffee
 9^{30}  12^{00} Session 4
 Azar Dastouri (RWTH Aachen)
Combining source transformation and operator overloading approaches for adjoint CFD solvers
There are two basic approaches for applying Algorithmic
Differentiation to a CFD solver, namely, Operator Overloading and Source
Transformation. Unfortunately, in both cases, it is still necessary to invest a
significant amount of manual coding in order to get to an application that
performs acceptably in terms of memory consumption and runtime. The AD
tools we apply are dco/fortran 1 and TAPENADE 2 for adjoint computation of an
incompressible NavierStokes solver. We explore the feasibility of combining
both AD tools to show where and how the advantages of each method can be
exploited in order to reach a suitable compromise between performance,
simplicity and efficiency. Additionally, we propose a methodology to automate
the implementation of an adjoint software in order to optimize work which the
developer must carry out to produce the desired derivative. We investigate the
effectiveness of this approach for relevant flow test case.
 Emre Özkaya (TU Kaiserslautern)
Development of an Adjoint CAA Solver for Design Optimization of Acoustic Liners
 Sebastian Arlund Norgaard (Technical University of Denmark)
Automatic differentiation for evaluating design sensitivities in fluid topology optimization
 12^{00}  13^{00} Lunch
 14^{00} End of the Workshop

