{'fraction_non_alphanumeric': 0.016619183285849954, 'fraction_numerical': 0.0, 'mean_word_length': 5.77491961414791, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Automatic evaluation of multidisciplinary derivatives using a graph-based problem formulation in OpeNMDAO

The optimization of multidisciplinary systems with respect to large numbers of design variables is best pursued using a gradient-based optimization together with a method that efficiently evaluates coupled derivatives, such as the coupled adjoint method. However, implementing such a method in a problem with more than a few disciplines is time consuming and error prone. To address this issue, we develop an automated procedure for assembling and solving the coupled derivative equations that takes into account the disciplinary couplings using the interdisciplinary dependency graph of the problem. The coupled derivatives can be computed completely analytically, if analytic derivatives are available for all disciplines; otherwise, the coupled derivatives are computed semi-analytically. The procedure determines the disciplinary analyses execution order, detects iterative cycles, and uses this information to converge the coupled analysis, and evaluate the coupled derivatives as efficiently as possible by exploiting sparsity. Sparsity can occur at two levels within a multidisciplinary problem: between disciplines, when certain analyses do not affect all outputs, and within a discipline when, the Jacobian of that discipline is sparse. The numerical procedures are implemented in NASA’s OpenMDAO framework, providing a flexible API for declaring discipline-level derivatives that can handle sparsity within a discipline. The tool is demonstrated in two MDO problems: the design of a small satellite and its operation with the objective of maximizing downloaded data to a ground station, and the design of a horizontal-axis wind turbine with the objective of minimizing the cost of energy. In both cases, the method demonstrated improved efficiency by taking advantage of analytic gradients considering sparsity. This new capability in OpenMDAO greatly facilitates the implementation of system-level direct and adjoint coupled derivative evaluations, and is applicable for general problems.