Reverse AD of pythonOCC for gradient-based shape optimization

Speaker: Mladen Banovic, DLR

Abstract

pythonOCC enables the use of the OpenCascade Technology (OCCT) geometry modelling kernel in Python-controlled frameworks for multidisciplinary design analysis and optimization (MDAO). It employs SWIG (Simplified Wrapper and Interface Generator) to provide Python bindings for C++ functionalities of OCCT. For gradient-based shape optimization, pythonOCC was previously differentiated in forward mode using the AD tool ADOL-C and coupled with the differentiated OCCT, thus allowing the propagation of derivatives from Python to C++ and vice- versa. Here, the reverse mode of AD is integrated into pythonOCC by employing a Python extension for the trace-based ADOL-C option, also generated using SWIG. Moreover, the correctness of computed geometric sensitivities is verified by considering a wing geometry of reduced complexity.