The computational efficiency of the continuous adjoint method is typically higher than the discrete adjoint however, it faces some difficulties. However, in the discrete adjoint method, the governing equations are first discretized and then differentiated. In the continuous adjoint method, the partial differential equations are differentiated first and then discretized to be solved numerically. 2007) methods have been used to develop CFD codes for aerodynamic shape optimization. 2015 Baysal and Ghayour 2001 Brezillon and Gauger 2004) and discrete adjoint (Mader et al. However, a sensitivity analysis is required for using gradient-based algorithms.Īdjoint methods for sensitivity analysis have been widely used in recent years for aerodynamic shape optimization (Kenway et al. Although applications of heuristic optimization algorithms for aerodynamic shape optimization can be found in literature (Antunes and Azevedo 2014 Elham and van Tooren 2014), gradient-based algorithms are still the most efficient methods for shape optimizations based on high fidelity CFD analysis including a large number of design variables. Such an optimization may include hundreds of design variables. A very popular example of such a design approach is found in aerodynamic shape optimization.Īerodynamic shape optimization is performed by the combined use of computational fluid dynamics (CFD) and numerical optimization techniques. In the modern design approach, such iteration is done using numerical optimization methods. Then repeatedly change the design (by changing the values of the parameters of its parametrized description), re-analyze the design, and change the direction of the design based on some criterion that includes the change in analysis results with respect to the previous analysis step. These iterative steps try to drive an initial design to the best design by analyzing the initial behavior of the design.
The code includes a build-in gradient-based optimization algorithm and is released as open-source to be available freely for educational purposes.ĭesign is an iterative trial and error method, which includes synthesis, analysis, and decision-making steps.
Besides, the symbolic analysis allows us to compute the exact Jacobian of the governing equations in a computationally efficient way, which is used for Newton iteration. The symbolic analysis is also used to compute the exact derivatives of the residuals with respect to both design variables (e.g., the airfoil geometry) and the state variables (e.g., the flow velocity). The symbolic analysis method is used for exact integration to generate the element stiffness and force matrices. The least-squares finite element method is used to solve the compressible Euler equations around airfoils in the transonic regime. To achieve this goal, we used symbolic analysis to develop a discrete adjoint CFD code. An adjoint CFD code is developed to support students for learning adjoint aerodynamic shape optimization as well as developing differentiated CFD codes. Although there are a few open-source adjoint CFD codes available, due to the complexity of the code, they might not be very suitable to be used for educational purposes. However, differentiating CFD codes is a time consuming and sometimes a challenging task. The combination of gradient-based optimization with the adjoint method for sensitivity analysis is a very powerful and popular approach for aerodynamic shape optimization.