In computational engineering, accompanying derivatives help to assess and further process primal simulation results, for example for sensitivity analysis, design optimization, or uncertainty quantification. Discrete adjoint approaches, specifically, compute derivatives that are consistent with the solution procedure of discretized problems, and automatic differentiation (AD) may serve as a key ingredient for their implementation. Discrete adjoints in the open-source multiphysics simulation suite SU2 are based on the operator overloading AD tool CoDiPack, coupled with the MeDiPack add-on for the differentiation of MPI parallelism. With a view on scalability, an additional layer of OpenMP parallelism has recently been added to SU2's primal solvers. To extend this to discrete adjoint solvers, we couple SU2 together with the already applied AD tools with the OpDiLib add-on that introduces operator overloading AD support for OpenMP parallelism. We discuss the impact on SU2's AD workflow, identify differences to pure MPI in terms of AD, and study and improve the parallel discrete adjoint performance on test cases from external aerodynamics.
Blühdorn et al. (Thu,) studied this question.