We consider the usage of exact derivatives that can be obtained by AD for the computation of steady annual cycles of coupled 3-D marine ecosystem models. The standard way to solve this problem is to apply a pseudo-time-stepping or fixed-point solver that takes about 3,000 - 10,000 steps (= years model time) to converge. Each year itself requires 2880 time-steps with a non-autonomous differential operator. One way to reduce the huge effort is the use of an inexact Newton-GMRES 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 bio-models given in Fortran. As an exercise in objected-oriented 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.
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
Current AD tools that reuse there indices like Adept, Adol-C, 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.
Shape optimization of a three-dimensional CAD-based 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 open-source CAD kernel OpenCASCADE Technology (OCCT) applying the forward traceless mode of the AD software tool - ADOL-C (Automatic Differentiation by OverLoading in C++).
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.
Algorithmic differentiation through operator overloading semantically augments the code, leaving most of the code structure unchanged. To that end, the built-in floating-point type T is replaced by a user-defined AD type U. It provides all necessary overloads for arithmetic operations and mathematical functions. However, the introduction of a user-defined type can introduce compile time errors due to the way the C++ standard treats built-in and user-defined types. We have developed a static code analysis tool that finds these problematic code constructs. It prints Lint-like messages and applies source transformations to correct them.
Deformations occur in turbomachinery components under running conditions due to centrifugal and pressure loads. As a result, the manufactured, at-rest shape differs from the deformed, running shape. Rather than optimizing the shape under running conditions and computing the at-rest shape for manufacturing a posteriori, we aim to optimize the at-rest 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.
1900 Dinner at Restaurant Julien, Altenwoogstraße 3, 67655 Kaiserslautern
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 Navier-Stokes 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