Expression templates for primal value taping in the reverse mode of algorithmic differentiation

2018 ◽  
Vol 33 (4-6) ◽  
pp. 1207-1231 ◽  
Author(s):  
M. Sagebaum ◽  
T. Albring ◽  
N. R. Gauger
Author(s):  
Anna Engels-Putzka ◽  
Jan Backhaus ◽  
Christian Frey

This paper describes the development and initial application of an adjoint harmonic balance solver. The harmonic balance method is a numerical method formulated in the frequency domain which is particularly suitable for the simulation of periodic unsteady flow phenomena in turbomachinery. Successful applications of this method include unsteady aerodynamics as well as aeroacoustics and aeroelasticity. Here we focus on forced response due to the interaction of neighboring blade rows. In the CFD-based design and optimization of turbomachinery components it is often helpful to be able to compute not only the objective values — e.g. performance data of a component — themselves, but also their sensitivities with respect to variations of the geometry. An efficient way to compute such sensitivities for a large number of geometric changes is the application of the adjoint method. While this is frequently used in the context of steady CFD, it becomes prohibitively expensive for unsteady simulations in the time domain. For unsteady methods in the frequency domain, the use of adjoint solvers is feasible, but still challenging. The present approach employs the reverse mode of algorithmic differentiation (AD) to construct a discrete adjoint of an existing harmonic balance solver in the framework of an industrially applied CFD code. The paper discusses implemen-tational issues as well as the performance of the adjoint solver, in particular regarding memory requirements. The presented method is applied to compute the sensitivities of aeroelastic objectives with respect to geometric changes in a turbine stage.


2020 ◽  
Vol 77 (2) ◽  
pp. 597-616
Author(s):  
Siamak Akbarzadeh ◽  
Jan Hückelheim ◽  
Jens-Dominik Müller

Abstract Algorithmic differentiation (AD) is a widely-used approach to compute derivatives of numerical models. Many numerical models include an iterative process to solve non-linear systems of equations. To improve efficiency and numerical stability, AD is typically not applied to the linear solvers. Instead, the differentiated linear solver call is replaced with hand-produced derivative code that exploits the linearity of the original call. In practice, the iterative linear solvers are often stopped prematurely to recompute the linearisation of the non-linear outer loop. We show that in the reverse-mode of AD, the derivatives obtained with partial convergence become inconsistent with the original and the tangent-linear models, resulting in inaccurate adjoints. We present a correction term that restores consistency between adjoint and tangent-linear gradients if linear systems are only partially converged. We prove the consistency of this correction term and show in numerical experiments that the accuracy of adjoint gradients of an incompressible flow solver applied to an industrial test case is restored when the correction term is used.


Author(s):  
Jan Hückelheim ◽  
Paul Hovland ◽  
Michelle Mills Strout ◽  
Jens-Dominik Müller

Reverse-mode algorithmic differentiation (AD) is an established method for obtaining adjoint derivatives of computer simulation applications. In computational fluid dynamics (CFD), adjoint derivatives of a cost function output such as drag or lift with respect to design parameters such as surface coordinates or geometry control points are a key ingredient for shape optimization, uncertainty quantification and flow control. The computational cost of CFD applications and their derivatives makes it essential to use high-performance computing hardware efficiently, including multi- and many-core architectures. Nevertheless, OpenMP is not supported in most AD tools, and previously shown methods achieve poor scalability of the derivative code. We present the AD of an OpenMP-parallelized finite volume compressible flow solver for unstructured meshes. Our approach enables us to reuse the parallelization of the original code in the computation of adjoint derivatives. The method works by identifying code segments that can be differentiated in reverse-mode without changing their memory access pattern. The OpenMP parallelization is integrated into the derivative code during the build process in a way that is robust to modifications of the original code and independent of the OpenMP support of the differentiation tool. We show the scalability of our adjoint CFD solver on test cases ranging from thousands to millions of finite volume mesh cells on CPUs with up to 16 threads as well as on an Intel XeonPhi card with 236 threads. We demonstrate that our approach is more practical to implement for production-sized CFD codes and produces more efficient adjoint derivative code than previously shown AD methods.


Author(s):  
Ole Burghardt ◽  
Pedro Gomes ◽  
Tobias Kattmann ◽  
Thomas D. Economon ◽  
Nicolas R. Gauger ◽  
...  

AbstractThis article presents a methodology whereby adjoint solutions for partitioned multiphysics problems can be computed efficiently, in a way that is completely independent of the underlying physical sub-problems, the associated numerical solution methods, and the number and type of couplings between them. By applying the reverse mode of algorithmic differentiation to each discipline, and by using a specialized recording strategy, diagonal and cross terms can be evaluated individually, thereby allowing different solution methods for the generic coupled problem (for example block-Jacobi or block-Gauss-Seidel). Based on an implementation in the open-source multiphysics simulation and design software SU2, we demonstrate how the same algorithm can be applied for shape sensitivity analysis on a heat exchanger (conjugate heat transfer), a deforming wing (fluid–structure interaction), and a cooled turbine blade where both effects are simultaneously taken into account.


2019 ◽  
Vol 141 (3) ◽  
Author(s):  
Anna Engels-Putzka ◽  
Jan Backhaus ◽  
Christian Frey

This paper describes the development and initial application of an adjoint harmonic balance (HB) solver. The HB method is a numerical method formulated in the frequency domain which is particularly suitable for the simulation of periodic unsteady flow phenomena in turbomachinery. Successful applications of this method include unsteady aerodynamics as well as aeroacoustics and aeroelasticity. Here, we focus on forced response due to the interaction of neighboring blade rows. In the simulation-based design and optimization of turbomachinery components, it is often helpful to be able to compute not only the objective values—e.g., performance data of a component—themselves but also their sensitivities with respect to variations of the geometry. An efficient way to compute such sensitivities for a large number of geometric changes is the application of the adjoint method. While this is frequently used in the context of steady computational fluid dynamics (CFD), it becomes prohibitively expensive for unsteady simulations in the time domain. For unsteady methods in the frequency domain, the use of adjoint solvers is feasible but still challenging. The present approach employs the reverse mode of algorithmic differentiation (AD) to construct a discrete adjoint of an existing HB solver in the framework of an industrially applied CFD code. The paper discusses implementational issues as well as the performance of the adjoint solver, in particular regarding memory requirements. The presented method is applied to compute the sensitivities of aeroelastic objectives with respect to geometric changes in a turbine stage.


2016 ◽  
Vol 10 (4) ◽  
pp. 215 ◽  
Author(s):  
Ioannis Kassanos ◽  
Marios Chrysovergis ◽  
John Anagnostopoulos ◽  
George Charalampopoulos ◽  
Stamelos Rokas ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document