Next Article in Journal
Liquid-Cooling System of an Aircraft Compression Ignition Engine: A CFD Analysis
Next Article in Special Issue
Jet Oscillation Frequency Characterization of a Sweeping Jet Actuator
Previous Article in Journal
Modeling Acoustic Cavitation Using a Pressure-Based Algorithm for Polytropic Fluids
Previous Article in Special Issue
Multiscale Filtering of Compressible Wave Propagation in Complex Geometry through a Wavelet-Based Approach in the Framework of Pressurized Water Reactors Depressurization Transient Analysis
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

On an Exact Step Length in Gradient-Based Aerodynamic Shape Optimization

Zienkiewicz Centre for Computational Engineering, College of Engineering, SwanseaUniversity, Bay Campus, Fabian Way, Crymlyn Burrows, Swansea SA1 8EN, UK
*
Author to whom correspondence should be addressed.
Fluids 2020, 5(2), 70; https://doi.org/10.3390/fluids5020070
Submission received: 31 March 2020 / Revised: 4 May 2020 / Accepted: 9 May 2020 / Published: 13 May 2020
(This article belongs to the Special Issue Recent Numerical Advances in Fluid Mechanics, Volume II)

Abstract

:
This study proposeda novel exact expression for step length (size) in gradient-based aerodynamic shape optimization for an airfoil in steady inviscid transonic flows. The airfoil surfaces were parameterized using Bezier curves. The Bezier curve control points were considered as design variables and the finite-difference method was used to compute the gradient of the objective function (drag-to-lift ratio) with respect to the design variables. An exact explicit expression was derived for the step length in gradient-based shape optimization problems. It was shown that the derived step length was independent of the method used for calculating the gradient (adjoint method, finite-difference method, etc.). The obtained results reveal the accuracy of the derived step length.

1. Introduction

The combination of computational fluid dynamics with numerical optimization algorithms has become a numerical tool used to predict the optimal shape for aerodynamic configurations, such as airfoils. During the last few decades, aerodynamic shape optimization has been an important area of research and great advances have been made due to the rapid progress in the development of high-performance computers and computational algorithms. The traditional “trial and error” approach used to design aerodynamic configurations is based on wind-tunnel testing. Nowadays, the high cost associated with wind-tunnel testing of real aerodynamic models is significantly reduced using numerical shape optimization. Instead of costly experiments of a whole range of aerodynamic configurations, only the optimal shape predicted bythe computational analysis is tested in the wind tunnel. When validated this way, the optimal design may be used in the development of the final aerodynamic configuration. To make this approach viable, shape optimization algorithms for aerodynamic configurations must be as efficient as possible.
Among the factors involved in aerodynamic shape optimization are the type of flow regime (subsonic, transonic, supersonic, hypersonic), the governing equations (Laplace, Euler, Navier–Stokes), the grid used to mesh the flow domain (structured, unstructured, if structured: O-type, C-type, H-type, or hybrid), the design variables and the angle of attack, the method of discretization of the governing equations (finite element method (FEM), finite difference method (FDM), finite volume method (FVM)), the optimization method (Newton and quasi-Newton methods, conjugate gradient, genetic algorithm, etc.), the shape sensitivity analysis (finite-difference method, adjoint method, automatic differentiation, etc.), the aerodynamic body to be optimized(airfoil, wing, fuselage, blades, etc.), the objective function definition, the body parameterization method, and the imposed constraints (geometrical, etc.).
In Hicks and coworkers [1,2], computational fluid dynamics was combined with numerical optimization to predict theoptimal shape design for airfoils and wings. In Hicks et al. [1], the drag on nonlifting symmetric transonic airfoils in an inviscid flow is minimized under geometric constraints. The numerical optimization method is based on feasible directions and the inviscid flow is governed by the transonic, small-disturbance equation. In Hicks et al. [2], the optimal shape design of a wing is studied. The problems of drag minimization and lift-to-drag ratio maximization are addressed bysolving the three-dimensional full potential equation coupled with the conjugate gradient method. The first use of adjoint equations for optimal design problems in fluid dynamics is presented inPironneau [3] and for aerodynamic shape optimization problems governed by the full potential and the Euler equations arepresented in Jameson and coworkers [4,5,6,7]. The application of the adjoint method to aerodynamic shape optimization has been the subject of intensive research during the past few decades [8,9,10,11,12]. The optimal shape design in fluid mechanics and aerodynamics using different methods is thoroughly studied inMohammadi and Pironneau [13] and an excellent study on the coupling of computational fluid dynamics and optimization methods is given inThevenin and Janiga [14]. A thorough examination of various aerodynamic optimization methods is given inSkinner and Zare-Behtash [15]. An extensive study on the mathematical aspects of the discrete adjoint method is presented in Giles and coworkers [16,17]. InElliott and Peraire [18], the discrete adjoint method is used to calculate the gradient of the objective function with respect to design variables in airfoil and wing inverse design problems governed by the Euler equations using unstructured meshes. It is shown that the computation of the gradient of the objective function using the adjoint method is independent of thenumber of design variables. In Nemec and Zingg [19], a Newton–Krylov algorithm is applied to the discrete adjoint and the discrete flow-sensitivity approaches to calculate the gradient of the objective function in some two-dimensional aerodynamic shape optimization problems governed by the Navier–Stokes equations. The design problems considered include an inverse design, maximization of the lift-to-drag ratio, lift-constrained drag minimization, and lift enhancement. In Anderson and Venkatakrishnan [20], the continuous adjoint method is formulated and applied for aerodynamic shape optimization problems governed by the Euler and Navier–Stokes equations using unstructured grids for different objective functions, such as drag minimization, lift maximization, and an inverse design (based on a pressure distribution).
By increasing the number of design variables in large-scale aerodynamic shape optimization problems, the most efficient method forcalculating the involved gradients is to combine gradient-based optimization methods, such as steepest-descent, conjugate-gradient, or quasi-Newton method, with the adjoint method. In the gradient-based optimization methods, the iterative process used to update the solution is based on the calculation of two variables: (1) the direction of descent and (2) the step length (a positive scalar). The former, which may be obtained from the calculation of the gradient of the underlying objective function, specifies the direction along which the value of the objective function is reduced, while the latter determines the distance that the updated solution should move in the direction of descent to substantially minimize the objective function. The success of a gradient-based optimization method depends on effective choices of both the direction of descent and the step length [21]. In aerodynamic shape optimization problems, the gradient of the objective function may be determined usingthe finite-difference method or the adjoint method. The step length is calculated usingline search or trust-region methods. If the objective function to be minimized can be expressed as a polynomial function, one can find an exact step length; otherwise, an inexact step length may be obtained usingthe line search or trust-region methods, and it is chosen in such a way that some conditions, such as the Wolfe conditions, are satisfied [21]. To the best of our knowledge, in aerodynamic shape optimization problems, there exists no exact expression for the step length. In this study, an exact step length is developed for the first time for unconstrained minimization problems in aerodynamic shape optimization, such as drag and drag-to-lift ratio minimization problems.

2. Governing Equations

The steady inviscid transonic flows considered here are governed by the Euler equations. In this study, these equations were solved using the ANSYS Fluent v19.2 software (ANSYS, Inc., Canonsburg, PA, USA) to obtain the airfoil surface pressure distribution needed to calculate the sensitivity coefficients using the finitedifference method.

Airfoil Parameterization

In this study, Bezier curves (BezierAirfoil: A MATLAB code for generating an airfoil shape using Bezier curve-V2. DOI: 10.13140/RG.2.2.30002.56000) were used to parameterize the airfoil surfaces.
Bezier curve: The mathematical definition of a Bezier curve is as follows:
P ( t ) = i = 0 n B i J n , i ( t )
where
J n , i ( t ) = n ! i ! ( n i ) ! t i ( 1 t ) n i
is the Bernstein basis polynomial of degree n , t [ 0 , 1 ] , and P ( t ) = ( x ( t ) , y ( t ) ) . x ( t ) and y ( t ) are the x - and y - coordinates of the predetermined data points on the airfoil surface. By convention: 0 0 1 and 0 ! 1 . The order of a Bezier curve is equal to n + 1 (the number of the control points).
The parametric Bezier curve of interest here was of order 11 (because it can successfully generate a large number of airfoil shapes with a high degree of accuracy) and is given as follows:
n = 10 number   of   control   points = 11 P ( t ) = i = 0 10 B i J 10 , i ( t ) = B 0 J 10 , 0 ( t ) + + B 10 J 10 , 10 ( t ) = B 0 10 ! 0 ! ( 10 0 ) ! t 0 ( 1 t ) 10 0 + + B 10 10 ! 10 ! ( 10 10 ) ! t 10 ( 1 t ) 10 10
In this study, the x -coordinates of airfoil nodes were considered constant during the optimization, P ( t ) = y ( t ) . Therefore, for the predetermined y -coordinate of the airfoil nodes, we could write:
y 1 , j ( t ) = B 0 ( 1 t y 1 , j ) 10 + B 1 10 t y 1 , j ( 1 t y 1 , j ) 9 + B 2 45 t y 1 , j 2 ( 1 t y 1 , j ) 8 + B 3 120 t y 1 , j 3 ( 1 t y 1 , j ) 7 B 4 210 t y 1 , j 4 ( 1 t y 1 , j ) 6 + B 5 252 t y 1 , j 5 ( 1 t y 1 , j ) 5 + B 6 210 t y 1 , j 6 ( 1 t y 1 , j ) 4 + B 7 120 t y 1 , j 7 ( 1 t y 1 , j ) 3 + B 8 45 t y 1 , j 8 ( 1 t y 1 , j ) 2 + B 9 10 t y 1 , j 9 ( 1 t y 1 , j ) 1 + B 10 t y 1 , j 10
Therefore, the Bezier control points B 0 , , B 10 could be obtained at the first iteration for the predetermined y -coordinate of the initial airfoil. Two Bezier curves were needed to construct an airfoil surface: one for the upper surface (11 Bezier control points) and one for the lower surface (11 Bezier control points). Hence, we needed 2 × 11 = 22 Bezier control points. y 1 , j are the y -coordinates of the airfoil nodes in which j = 1 , , N + 1 2 ( N is the number of nodes on the airfoil surface) for the upper surface, j = N + 1 2 , , N for the lower surface (Figure 1), and t y 1 , j is the value of t [ 0 , 1 ] associated with the y 1 , j (Figure 2). The airfoil chord was divided into N + 1 2 1 intervals of equal length l .

3. Aerodynamic Shape Optimization

3.1. Design Variables

Here, in the aerodynamic shape optimization, the design variables were the Bezier control points B D V i ( i = 1 , , 16 ), as shown in Figure 3. The first and last two Bezier control points on the upper and the lower surfaces of the airfoil (hollow circles in Figure 3) were fixed and not considered to bedesign variables.For the ease of coding, the design variables were numbered consistent with the node numbering on the airfoil surface (see Appendix C). In other words, the design variables were numbered from right to left on the upper surface and from left to right on the lower surface (see Figure 3). The reason for fixing two control points adjacent to the airfoil trailing edge ( B 9 U and B 9 L ) was that the values of these two control points were very small ( B 9 U = 1.35283 × 10 5 and B 9 L = 1.35283 × 10 5 for the NACA0012 airfoil, as shown in Figure 4), especially given that they should be multiplied by another small variable (finite-difference step-size: see Equation (17)), and even the double-precision calculations of the flow solver (here ANSYS Fluent) may not be able to detect the change of the pressure of the perturbed nodes. Thus, the computation of the sensitivity coefficients using the finitedifference method for these two control points would be problematic and would result in a zero sensitivity coefficient due to the subtraction of nearly equal terms. The complex-step derivative approximation is a remedy for this issue if one has access to the solver source code to substitute all real type variable declarations with complex declarations and define all functions and operators that are not defined for complex arguments [22]. However, in this study, the two control points mentioned above were fixed and are not considered as design variables.

3.2. Objective Function

The aerodynamic shape optimization problem of interest here consistedof the minimization of the drag ( D ) to lift ( L ) ratio, D L , at a fixedangle of attack α . This was an unconstrained optimization problem since no constraint was considered for it.
The objective function for this case is:
J = ( D L ) 2
where
D = A cos α + N sin α
L = A sin α + N cos α
and A and N are axial and normal forces, respectively (Figure 5) [23]. We can write the drag and lift forces as follows:
D = j = 1 N 1 ( p 1 , j ( y 1 , j y 1 , j + 1 ) cos α + p 1 , j ( x 1 , j + 1 x 1 , j ) sin α )
L = j = 1 N 1 ( p 1 , j ( y 1 , j y 1 , j + 1 ) sin α + p 1 , j ( x 1 , j + 1 x 1 , j ) cos α )
Therefore, the objective function becomes:
min   J = ( D L ) 2 = ( A cos α + N sin α A sin α + N cos α ) 2 = ( j = 1 N 1 ( p 1 , j ( y 1 , j y 1 , j + 1 ) cos α + p 1 , j ( x 1 , j + 1 x 1 , j ) sin α ) j = 1 N 1 ( p 1 , j ( y 1 , j y 1 , j + 1 ) sin α + p 1 , j ( x 1 , j + 1 x 1 , j ) cos α ) ) 2

3.3. Sensitivity Analysis

The sensitivity analysis in gradient-based optimization is concerned with the computation of the derivative of the objective function with respect to the unknown variables. Suppose we wish to calculate the sensitivity of the objective function J defined by Equation (10) to the Bezier control points B D V i ( i = 1 , , 16 ). This can be mathematically expressed as:
J B D V i = 2 ( D L ) B D V i ( D L ) = 2 ( D L ) D B D V i L L B D V i D L 2 = 2 ( D L 3 ) ( D B D V i L L B D V i D )
The derivatives on the right-hand side of Equation (11) can be evaluated by taking the derivative of drag D , Equation (8), and lift L , Equation (9) with respect to the design variables B D V i , as follows:
D B D V i = j = 1 N 1 [ ( p 1 , j B D V i ( y 1 , j y 1 , j + 1 ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i ) cos α + ( p 1 , j B D V i ( x 1 , j + 1 x 1 , j ) + p 1 , j ( x 1 , j + 1 x 1 , j ) B D V i = 0 ) sin α ]
Factoring p 1 , j B D V i , we obtain:
D B D V i = j = 1 N 1 [ ( p 1 , j B D V i ( ( y 1 , j y 1 , j + 1 ) cos α + ( x 1 , j + 1 x 1 , j ) sin α ) ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i cos α ]
In a similar fashion, we obtain:
L B D V i = j = 1 N 1 [ ( p 1 , j B D V i ( y 1 , j y 1 , j + 1 ) p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i ) sin α + ( p 1 , j B D V i ( x 1 , j + 1 x 1 , j ) + p 1 , j ( x 1 , j + 1 x 1 , j ) B D V i = 0 ) cos α ]
Factoring p 1 , j B D V i , we obtain:
L B D V i = j = 1 N 1 [ ( p 1 , j B D V i ( ( y 1 , j y 1 , j + 1 ) sin α + ( x 1 , j + 1 x 1 , j ) cos α ) ) p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i sin α ]
Thus, the derivative of the objective function, Equation (10) becomes:
J B D V i = 2 ( D L 3 ) ( D B D V i L L B D V i D ) = 2 ( D L 3 ) [ j = 1 N 1 [ ( p 1 , j B D V i ( ( y 1 , j y 1 , j + 1 ) cos α + ( x 1 , j + 1 x 1 , j ) sin α ) ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i cos α ] L j = 1 N 1 [ ( p 1 , j B D V i ( ( y 1 , j y 1 , j + 1 ) sin α + ( x 1 , j + 1 x 1 , j ) cos α ) ) p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i sin α ] D ] = 2 ( D L 3 ) j = 1 N 1 [ p 1 , j B D V i ( y 1 , j y 1 , j + 1 ) ( L cos α + D sin α ) + p 1 , j B D V i ( x 1 , j + 1 x 1 , j ) ( L sin α D cos α ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i ( L cos α + D sin α ) ]
The sensitivity coefficients p 1 , j B D V i may be computed using the finitedifference method, which is chosen for the simplicity of implementation. Suppose we wish to calculate the sensitivity of the pressure of nodes on the airfoil surface, p 1 , j ( j = 1 , , N 1 ) , to the y -coordinate of the 16 Bezier control points ( B D V i ( i = 1 , , 16 ), 8 for each of the upper and lower surfaces)in this study. The sensitivity analysis can be performed by introducing a small perturbation to the y -coordinate of each of the Bezier control points. The grid generation (using perturbed values for the Bezier control points) and flow problem may be solved to obtain the new values for the pressure p 1 , j . Using these values for the pressure, the dependency of the pressure p 1 , j on the perturbation of the y -position of Bezier control points can be evaluated. The central finitedifference method is used to compute these sensitivities as follows:
p 1 , j B D V i = p 1 , j ( B D V i + ε B D V i ) p 1 , j ( B D V i ε B D V i ) 2 ε B D V i
In this study, the finitedifference step-size was ε = 0.005 . The term ε B D V i is the perturbation in the y -position of the Bezier control point B D V i . Since the sensitivity of each pressure p 1 , j ( j = 1 , , N 1 ) to each y -position of the Bezier control point B D V i ( i = 1 , , 16 ) is required, the computation of the sensitivity coefficients using this method requires 2 × (total number of control points − total number of fixed control points) = 2 × [2(11) − 2(3)] = 32 additional solutions of the flow problem at each iteration.
Moreover, the terms ( y 1 , j y 1 , j + 1 ) B D V i = y 1 , j B D V i y 1 , j + 1 B D V i can be calculated using Equation (4). By having the value of the pressure at each node from the solution of flow equations (here, the Euler equations are used), the drag D and the lift L can be calculated using Equations (8) and (9), respectively. The angle of attack α is given a priori and is constant. The airfoil surface coordinates, x 1 , j and y 1 , j , are also known from the Bezier curve equation (here, the x 1 , j are constant and do not change in the optimization process).

4. Optimization Method

In this study, the unconstrained nonlinear minimization problem was solved using Broyden-Fletcher-Goldfarb-Shanno (BFGS) method (a quasi-Newton method). The quasi-Newton method is a gradient-based optimization method thatuses an approximation of the Hessian matrix or the inverse of a Hessian matrix [24]. In the BFGS method, an approximate inverse of the Hessian matrix, B ( k ) , is updated iteratively until an optimal solution is found. The steps of the aerodynamic shape optimization using the BFGS method as implemented in this study are as follows.
(1)
Specify the physical domain; the boundary conditions; the problem conditions, such as the free stream Mach number; and the angle of attack.
(2)
Generate structured or unstructured grids over the domain. The airfoil surface is generated using aBezier curve of degree n .
(3)
Solve the flow problem regarding finding the pressure values at thegrid points of the physical domain and hence the airfoil surface.
(4)
Using Equations (8) and (9), compute the objective function J ( k ) Equation (10).
(5)
Compute the sensitivity coefficients using Equation (17).
(6)
Compute the gradient direction J ( k ) using Equation (16).
(7)
The initial approximate inverse of Hessian matrix, B ( 1 ) , is taken as the identity matrix, namely B ( 1 ) = I .
(8)
Compute the direction of descent S ( k ) using the following equation:
S ( k ) = B ( k ) J ( k )
(9)
Compute the search step length β ( k ) . An explicit expression for computing the search step length will be presented later.
(10)
Evaluate the new values of the design variables (Bezier curve control points) using the following equation:
B D V ( k + 1 ) = B D V ( k ) + β ( k ) S ( k ) = B D V ( k ) β ( k ) B ( k ) J ( k )
(11)
Set the next iteration ( k = k + 1 ) and return to step 2. Update the approximate inverse of the Hessian matrix as [24]:
B ( k + 1 ) = B ( k ) + ( 1 + ( g ( k ) ) T B ( k ) g ( k ) ( d ( k ) ) T g ( k ) ) d ( k ) ( d ( k ) ) T ( d ( k ) ) T g ( k ) d ( k ) ( g ( k ) ) T B ( k ) ( d ( k ) ) T g ( k ) B ( k ) g ( k ) ( d ( k ) ) T ( d ( k ) ) T g ( k )
where:
d ( k ) = B D V ( k + 1 ) B D V ( k ) = β ( k ) S ( k )
g ( k ) = J ( k + 1 ) J ( k )
There exists no exact search step length for highly nonlinear aerodynamic shape optimization problems. Therefore, an inexact step length using line search methods, such as backtracking, is determined and it is chosen in such a way that some conditions, such as Wolfe conditions, are satisfied [13,21,25]. Here, we present a novel method to obtain an exact step length in aerodynamic shape optimization problems involving the unconstrained minimization of common objective function definitions, such as drag and the drag-to lift-ratio. The formulation given here is concerned with the Bezier curve only but it can be extended to other airfoil parameterization methods.

Exact Step Length

The exact step length can be obtained as:
β exact ( k ) = arg min β 0 J ( B D V ( k + 1 ) ) = arg min β 0 J ( B D V ( k ) β ( k ) B ( k ) J ( B D V ( k ) ) )
For simplicity, let B D V i ( k ) = a i ( k ) and B ( k ) J ( k ) = b i ( k ) ( i = 1 , , 2 n 2 ), and suppose, for generality, that the Bezier control points associated with the trailing and leading edges are considered fixed (they are not considered as design variables). Thus, we can write:
B D V i ( k + 1 ) = a i ( k ) β ( k ) b i ( k )
where a i ( k ) is divided into a i U ( k ) ( i = 1 , , n 1 ) for the upper surface and a i L ( k ) ( i = n , , 2 n 2 ) for the lower surface. To obtain the exact step length β exact ( k ) , we minimize J ( B D V i ( k + 1 ) ) = ( D ( B D V i ( k + 1 ) ) L ( B D V i ( k + 1 ) ) ) 2 with respect to β ( k ) as follows:
J β = 2 D L β ( D L ) = 0 D = 0
D = j = 1 N 1 ( y 1 , j ( p 1 , j p 1 , j 1 ) cos α + N sin α ) = ( j = 2 N + 1 2 1 y 1 , j ( p 1 , j p 1 , j 1 ) + j = N + 1 2 + 1 N 1 y 1 , j ( p 1 , j p 1 , j 1 ) ) cos α + N sin α = 0
Since y 1 , 1 = y 1 , N = y 1 , N + 1 2 = 0 , the indices in Equation (26) do not include j = 1 , N + 1 2 , N . Equation (26) is the same as Equation (8) with the rearrangement of terms being with respect to y 1 , j rather than p 1 , j . From the definition of the Bezier curve, Equations (1) and (2)), we can write the drag, Equation (26) as:
D = { j = 2 N + 1 2 1 ( i = 1 n 1 B D V i U ( k + 1 ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) + j = N + 1 2 + 1 N 1 ( i = 1 n 1 B D V i L ( k + 1 ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) } cos α + N sin α = 0
Using B D V i ( k + 1 ) = a i ( k ) β ( k ) b i ( k ) (Equation (24)), we can write:
D = { j = 2 N + 1 2 1 ( i = 1 n 1 ( a i U ( k ) β ( k ) b i U ( k ) ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) + j = N + 1 2 + 1 N 1 ( i = 1 n 1 ( a i L ( k ) β ( k ) b i L ( k ) ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) } cos α + N sin α = 0
Afterexpanding, we obtain:
D = { j = 2 N + 1 2 1 ( i = 1 n 1 a i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i β ( k ) i = 1 n 1 b i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) + j = N + 1 2 + 1 N 1 ( i = 1 n 1 a i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i β ( k ) i = 1 n 1 b i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) } cos α + N sin α = 0
Using the identity i = k 0 k 1 j = l 0 l 1 a i j = j = l 0 l 1 i = k 0 k 1 a i j , we can write the above expression as:
D = { i = 1 n 1 ( j = 2 N + 1 2 1 a i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i β ( k ) j = 2 N + 1 2 1 b i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) + i = 1 n 1 ( j = N + 1 2 + 1 N 1 a i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i β ( k ) j = N + 1 2 + 1 N 1 b i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ) ( p 1 , j p 1 , j 1 ) } cos α + N sin α = 0
Therefore, we obtain
β exact ( k ) = [ i = 1 n 1 j = 2 N + 1 2 1 a i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) + i = 1 n 1 j = N + 1 2 + 1 N 1 a i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) ] cos α + N sin α [ i = 1 n 1 j = 2 N + 1 2 1 b i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) + i = 1 n 1 j = N + 1 2 + 1 N 1 b i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) ] cos α
which is the exact step length. As can be seen from Equation (31), the value of the exact step length depends on the gradient of the objective function and it is independent of the method used for calculating the gradient. In other words, one can calculate the gradient with any available method, such as the adjoint method, the finitedifference method, etc., and then use Equation (31) to calculate the exact step length. It can be concluded that an inaccuracy in computing the gradient of the objective function or the approximate inverse of Hessian matrix B ( k ) can give rise to an inaccuracy in calculating the exact step length.
For the sake of simplicity, the derivation of the above general step length expression is presented for the Bezier curve of degree 10 and is given in Appendix A and a Fortran code to calculate it is given in Appendix D. The derivation of the exact step length for other forms of the objective function, such as drag minimization and lift-constrained drag minimization, is given in Appendix B.

5. Results

As mentioned previously, the objective of the aerodynamic shape optimization problem considered in this study was to minimize the drag-to-lift ratio (which is equivalent to the maximization of the lift-to-drag ratio) for an airfoil moving in a steady inviscid transonic flow through the implementation of the exact step length in a gradient-based optimization algorithm. The following test case is presented to investigate the accuracy and performance of the derived step length.
Test Case: A NACA 0012 airfoil operating at a fixed angle of attack of 2 and a free-stream Mach number of 0.75 was considered for this test case as theinitial shape and flow conditions. The free stream pressure was p = 101,325.0   Pa . There was a strong shock at half of the airfoil chord length on the upper surface. Since there was shock-induced pressure drag on the airfoil inthese operating conditions, we aimedto optimize the airfoil to eliminate or weaken the shock as much as possible. The initial drag and lift forces were D = 515.760   N and L = 17,090.0   N , respectively (this means that for the initial airfoil, NACA 0012, inthese flow conditions, L D = 17,090.0   N 515.760   N = 33.1 ). The initial drag and lift coefficients were c d = 1.294 × 10 2 and c l = 0.42867 , respectively, which are in excellent agreement with c d = 1.25 × 10 2 and c l = 0.4225 in Carpentieri et al. [26]. As shown in Table 1, the drag and lift forces of the optimal shape were D = 36.142   N and L = 15,086.0   N , respectively (this means that for the optimal airfoil, L D = 15,086.0   N 36.142   N = 417.4 , which was an approximately 11.6 times increase in the value of ( L D ). A substantial decrease in the drag (from 515.760   N to 36.142   N ) using only 16 design variables was achieved. Moreover, the drag and lift coefficients of the optimal shape were c d = 9.065 × 10 4 and c l = 0.37839 , respectively. A structured O-grid (see Figure 6) with N = 601 nodes on the airfoil surface and 109 nodes in the normal direction to the airfoil surface was generated. The inviscid transonic flow equations (Euler equations) were solved using the ANSYS Fluent software to compute the pressure at each node on the airfoil surface (for unperturbed and 2 × 16 = 32 perturbed shapes foreach iteration). The computed pressures were then substituted into Equation (17) to calculate the sensitivity coefficients needed to compute the gradient of the objective function. A comparison of the initial shape (NACA 0012 airfoil) and the optimal one, as well as the corresponding surface pressure coefficients, is shown in Figure 7a,b, respectively. As can be seen, the shock on the initial shape was eliminated in the optimal shape. The static pressure distributions of the initial and optimal shapes are depicted in Figure 8a,b, respectively. A comparison of the initial and updated shape at each iteration is shown in Figure 9. As can be seen in Figure 9, the shock waseliminated or significantly weakened at each iteration (it is apparent from the value of the drag force given in Table 1, as well as from the thinner leading edge in the updated airfoils). The optimal shape is also in good agreement with the optimal shape in References [26,27]. A comparison of the initial shape (NACA 0012) and the optimal shapes obtained in Chen et al. [27] and from our study is shown in Figure 10. As can be seen, the upper surface shapes in both optimal shapes wereshock-free, which resulted in the minimum drag in both shapes (as can be seen in Table 1, the majority of the reduction in the objective function ( D L ) 2 in the test case was due to the decrease in the drag value). The history of the objective function is shown in Figure 11. The value of the objective function was substantially reduced by 99.4% and most of the reduction was obtained in the first iteration. The optimization process was continued for 15 iterations. The value of the exact step length used in the BFGS optimization method (using Equation (31) or Equation (A5)) is plotted in Figure 12. At iteration 6, the negative value for the step length was obtained ( β ( 6 ) = 1.2468 ). The minimum value for the objective function was obtained at iteration 6; however, as this value was obtained by a negative step length, the optimization process was continued further. The sensitivity coefficients at some arbitrary nodal points (node numbers 20, 170, and 270 on the upper surface and node numbers 350, 500, and 580 on the lower surface; there are N + 1 2 = 601 + 1 2 = 301 nodes on each surface of the airfoil) on the airfoil surface using three different finite-difference step-sizes ε = 10 2 , ε = 10 3 , and ε = 5 × 10 3 are depicted in Figure 13. As shown, the sensitivity coefficients at each node using the three step-sizes were in good agreement. However, in this study, the finite-difference step-size ε = 5 × 10 3 was used to calculate the sensitivity coefficients using Equation (17). The gradients of the objective function J = ( D L ) 2 with respect to the design variables B D V i ( i = 1 , , 16 ) for the first and last iterations(iterations 1 and 15) are shown in Figure 14a,b, respectively, representing a significant decrease in the norm of the gradient (from 0.0697 to 4.151 × 10 4 ; a 99.4 % reduction) to infer the optimal shape.
It should be emphasized that the gradient of the objective function with respect to the design variables was computed using the finitedifference method. More accurate results are expected if the gradient computation is accomplished with more accurate methods, such as the adjoint method or the complex-step method.

6. Conclusions

This study aimed to develop a novel and exact step length for gradient-based aerodynamic shape optimization problems. The steady inviscid transonic flow governed by the Euler equations was considered and the Euler equations were solved usingthe finite element solver ANSYS Fluent. Minimization of the drag-to-lift ratio (which is equivalent to the maximization of the lift-to-drag ratio) was performed. The quasi-Newton (BFGS) method was employed to minimize the defined objective function. The airfoil (NACA 0012) surface was parameterized usinga Bezier curve and an explicit exact step length was derived for the unconstrained minimization problem. We showed that the value of the exact step length dependedon both the values of the gradient of the objective function and the Bezier control points. A test case was presented to investigate the effect of the exact step length on the shape optimization process. Using the exact step length, the optimal shape was obtained within a few iterations with a substantial reduction in the objective function value.

Author Contributions

Conceptualization, F.M. and B.E.; Data curation, F.M.; Formal analysis, F.M.; Funding acquisition, F.M. and B.E.; Investigation, F.M.; Methodology, F.M. and B.E.; Resources, F.M. Software, F.M.; Supervision, B.E.; Validation, F.M.; Visualization, F.M.; Writing—original draft, F.M.; Writing—review & editing, F.M. and B.E. All authors have read and agreed to the published version of the manuscript.

Funding

This research was supported by funding from the European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement no. 663830.

Conflicts of Interest

The authors declare no conflict of interest.

Nomenclature

B Bezier curve control point
S ( k ) direction of descent at iteration k
J objective function
J Bernstein basis polynomial
n degree of the Bernstein basis polynomial in Bezier curve
p pressure
P x and/or y in the Bezier curve expression
t parameter used in the Bezier curve, t [ 0 , 1 ]
x , y Cartesian coordinates in the physical domain
β ( k ) search step length at iteration k
D V design variable
k iteration number

Appendix A

D ( B D V i ( k + 1 ) ) = ( [ y 1 , 1 0 ] ( p 1 , 1 p 1 , N 1 ) cos α + [ 0 B 0 U + B D V 9 ( k + 1 ) 10 t 1 , 2 ( 1 t 1 , 2 ) 9 + B D V 8 ( k + 1 ) 45 t 1 , 2 2 ( 1 t 1 , 2 ) 8 + + B D V 1 ( k + 1 ) 10 t 1 , 2 9 ( 1 t 1 , 2 ) + 0 B 10 U y 1 , 2 ] ( p 1 , 2 p 1 , 1 ) cos α + [ 0 B 0 U + B D V 9 ( k + 1 ) 10 t 1 , 3 ( 1 t 1 , 3 ) 9 + B D V 8 ( k + 1 ) 45 t 1 , 3 2 ( 1 t 1 , 3 ) 8 + + B D V 1 ( k + 1 ) 10 t 1 , 3 9 ( 1 t 1 , 3 ) + 0 B 10 U y 1 , 3 ] ( p 1 , 3 p 1 , 2 ) cos α + + [ 0 B 0 U + B D V 9 ( k + 1 ) 10 t 1 , N + 1 2 1 ( 1 t 1 , N + 1 2 1 ) 9 + B D V 8 ( k + 1 ) 45 t 1 , N + 1 2 1 2 ( 1 t 1 , N + 1 2 1 ) 8 + + B D V 1 ( k + 1 ) 10 t 1 , N + 1 2 1 9 ( 1 t 1 , N + 1 2 1 ) + 0 B 10 U y 1 , N + 1 2 1 ] ( p 1 , N + 1 2 1 p 1 , N + 1 2 2 ) cos α + [ y 1 , N + 1 2 0 ] ( p 1 , N + 1 2 p 1 , N + 1 2 1 ) cos α + [ 0 B 0 L + B D V 10 ( k + 1 ) 10 t 1 , N + 1 2 + 1 ( 1 t 1 , N + 1 2 + 1 ) 9 + B D V 11 ( k + 1 ) 45 t 1 , N + 1 2 + 1 2 ( 1 t 1 , N + 1 2 + 1 ) 8 + + B D V 18 ( k + 1 ) 10 t 1 , N + 1 2 + 1 9 ( 1 t 1 , N + 1 2 + 1 ) + 0 B 10 U y 1 , N + 1 2 + 1 ] ( p 1 , N + 1 2 + 1 p 1 , N + 1 2 ) cos α + [ 0 B 0 L + B D V 10 ( k + 1 ) 10 t 1 , N + 1 2 + 2 ( 1 t 1 , N + 1 2 + 2 ) 9 + B D V 11 ( k + 1 ) 45 t 1 , N + 1 2 + 2 2 ( 1 t 1 , N + 1 2 + 2 ) 8 + + B D V 18 ( k + 1 ) 10 t 1 , N + 1 2 + 2 9 ( 1 t 1 , N + 1 2 + 2 ) + 0 B 10 U y 1 , N + 1 2 + 2 ] ( p 1 , N + 1 2 + 2 p 1 , N + 1 2 + 1 ) cos α + + [ 0 B 0 L + B D V 10 ( k + 1 ) 10 t 1 , N 1 ( 1 t 1 , N 1 ) 9 + B D V 11 ( k + 1 ) 45 t 1 , N 1 2 ( 1 t 1 , N 1 ) 8 + + B D V 18 ( k + 1 ) 10 t 1 , N 1 9 ( 1 t 1 , N 1 ) + 0 B 10 U y 1 , N 1 ] ( p 1 , N 1 p 1 , N 2 ) cos α + N sin α ) = 0
Using B D V i ( k + 1 ) = a i ( k ) β ( k ) b i ( k ) , we can write Equation (A1) as:
D ( B D V i ( k + 1 ) ) = ( [ ( a 9 ( k ) β ( k ) b 9 ( k ) ) 10 t 1 , 2 ( 1 t 1 , 2 ) 9 + ( a 8 ( k ) β ( k ) b 8 ( k ) ) 45 t 1 , 2 2 ( 1 t 1 , 2 ) 8 + + ( a 1 ( k ) β ( k ) b 1 ( k ) ) 10 t 1 , 2 9 ( 1 t 1 , 2 ) y 1 , 2 ] ( p 1 , 2 p 1 , 1 ) cos α + [ ( a 9 ( k ) β ( k ) b 9 ( k ) ) 10 t 1 , 3 ( 1 t 1 , 3 ) 9 + ( a 8 ( k ) β ( k ) b 8 ( k ) ) 45 t 1 , 3 2 ( 1 t 1 , 3 ) 8 + + ( a 1 ( k ) β ( k ) b 1 ( k ) ) 10 t 1 , 3 9 ( 1 t 1 , 3 ) y 1 , 3 ] ( p 1 , 3 p 1 , 2 ) cos α + + [ ( a 9 ( k ) β ( k ) b 9 ( k ) ) 10 t 1 , N + 1 2 1 ( 1 t 1 , N + 1 2 1 ) 9 + ( a 8 ( k ) β ( k ) b 8 ( k ) ) 45 t 1 , N + 1 2 1 2 ( 1 t 1 , N + 1 2 1 ) 8 + + ( a 1 ( k ) β ( k ) b 1 ( k ) ) 10 t 1 , N + 1 2 1 9 ( 1 t 1 , N + 1 2 1 ) y 1 , N + 1 2 1 ] ( p 1 , N + 1 2 1 p 1 , N + 1 2 2 ) cos α + [ ( a 10 ( k ) β ( k ) b 10 ( k ) ) 10 t 1 , N + 1 2 + 1 ( 1 t 1 , N + 1 2 + 1 ) 9 + ( a 11 ( k ) β ( k ) b 11 ( k ) ) 45 t 1 , N + 1 2 + 1 2 ( 1 t 1 , N + 1 2 + 1 ) 8 + + ( a 18 ( k ) β ( k ) b 18 ( k ) ) 10 t 1 , N + 1 2 + 1 9 ( 1 t 1 , N + 1 2 + 1 ) y 1 , N + 1 2 + 1 ] ( p 1 , N + 1 2 + 1 p 1 , N + 1 2 ) cos α + [ ( a 10 ( k ) β ( k ) b 10 ( k ) ) 10 t 1 , N + 1 2 + 2 ( 1 t 1 , N + 1 2 + 2 ) 9 + ( a 11 ( k ) β ( k ) b 11 ( k ) ) 45 t 1 , N + 1 2 + 2 2 ( 1 t 1 , N + 1 2 + 2 ) 8 + + ( a 18 ( k ) β ( k ) b 18 ( k ) ) 10 t 1 , N + 1 2 + 2 9 ( 1 t 1 , N + 1 2 + 2 ) y 1 , N + 1 2 + 2 ] ( p 1 , N + 1 2 + 2 p 1 , N + 1 2 + 1 ) cos α + + [ ( a 10 ( k ) β ( k ) b 10 ( k ) ) 10 t 1 , N 1 ( 1 t 1 , N 1 ) 9 + ( a 11 ( k ) β ( k ) b 11 ( k ) ) 45 t 1 , N 1 2 ( 1 t 1 , N 1 ) 8 + + ( a 18 ( k ) β ( k ) b 18 ( k ) ) 10 t 1 , N 1 9 ( 1 t 1 , N 1 ) y 1 , N 1 ] ( p 1 , N 1 p 1 , N 2 ) cos α + N sin α ) = 0
After factoring, we obtain:
D ( B D V i ( k + 1 ) ) = ( ( a 9 ( k ) β ( k ) b 9 ( k ) ) [ { 10 t 1 , 2 ( 1 t 1 , 2 ) 9 ( p 1 , 2 p 1 , 1 ) + 10 t 1 , 3 ( 1 t 1 , 3 ) 9 ( p 1 , 3 p 1 , 2 ) + + 10 t 1 , N + 1 2 1 ( 1 t 1 , N + 1 2 1 ) 9 ( p 1 , N + 1 2 1 p 1 , N + 1 2 2 ) A 9 } cos α ] + ( a 8 ( k ) β ( k ) b 8 ( k ) ) [ { 45 t 1 , 2 2 ( 1 t 1 , 2 ) 8 ( p 1 , 2 p 1 , 1 ) + 45 t 1 , 3 2 ( 1 t 1 , 3 ) 8 ( p 1 , 3 p 1 , 2 ) + + 45 t 1 , N + 1 2 1 2 ( 1 t 1 , N + 1 2 1 ) 8 ( p 1 , N + 1 2 1 p 1 , N + 1 2 2 ) A 8 } cos α ] + + ( a 1 ( k ) β ( k ) b 1 ( k ) ) [ { 10 t 1 , 2 9 ( 1 t 1 , 2 ) ( p 1 , 2 p 1 , 1 ) + 10 t 1 , 3 9 ( 1 t 1 , 3 ) ( p 1 , 3 p 1 , 2 ) + + 10 t 1 , N + 1 2 1 9 ( 1 t 1 , N + 1 2 1 ) ( p 1 , N + 1 2 1 p 1 , N + 1 2 2 ) A 1 } cos α ] + ( a 10 ( k ) β ( k ) b 10 ( k ) ) [ { 10 t 1 , N + 1 2 + 1 ( 1 t 1 , N + 1 2 + 1 ) 9 ( p 1 , N + 1 2 + 1 p 1 , N + 1 2 ) + + 10 t 1 , N 1 ( 1 t 1 , N 1 ) 9 ( p 1 , N 1 p 1 , N 2 ) A 10 } cos α ] + ( a 11 ( k ) β ( k ) b 11 ( k ) ) [ { 45 t 1 , N + 1 2 + 1 2 ( 1 t 1 , N + 1 2 + 1 ) 8 ( p 1 , N + 1 2 + 1 p 1 , N + 1 2 ) + + 45 t 1 , N 1 2 ( 1 t 1 , N 1 ) 8 ( p 1 , N 1 p 1 , N 2 ) A 11 } cos α ] + + ( a 18 ( k ) β ( k ) b 18 ( k ) ) [ { 10 t 1 , N + 1 2 + 1 9 ( 1 t 1 , N + 1 2 + 1 ) ( p 1 , N + 1 2 + 1 p 1 , N + 1 2 ) + + 10 t 1 , N 1 9 ( 1 t 1 , N 1 ) ( p 1 , N 1 p 1 , N 2 ) A 18 } cos α ] + N sin α ) = 0
which will be:
D ( B D V i ( k + 1 ) ) = [ ( a 9 ( k ) β ( k ) b 9 ( k ) ) A 9 + ( a 8 ( k ) β ( k ) b 8 ( k ) ) A 8 + + ( a 1 ( k ) β ( k ) b 1 ( k ) ) A 1 Upper   surface + ( a 10 ( k ) β ( k ) b 10 ( k ) ) A 10 + ( a 11 ( k ) β ( k ) b 11 ( k ) ) A 11 + + ( a 18 ( k ) β ( k ) b 18 ( k ) ) A 18 Lower   surface ] cos α + N sin α = 0
Thus, the exact step length is obtained as being:
β ( k ) = [ a 9 ( k ) A 9 + a 8 ( k ) A 8 + + a 1 ( k ) A 1 + a 10 ( k ) A 10 + a 11 ( k ) A 11 + + a 18 ( k ) A 18 ] cos α + N sin α [ b 9 ( k ) A 9 + b 8 ( k ) A 8 + + b 1 ( k ) A 1 + b 10 ( k ) A 10 + b 11 ( k ) A 11 + + b 18 ( k ) A 18 ] cos α
The Fortran 77 code used for calculation of the exact step length given by Equation (A5) is presented in Appendix D.

Appendix B

Appendix B.1. Other Forms of the Objective Function

Appendix B.1.1. Drag Minimization

It is worth mentioning at this stage that the above expression for the step length is equally valid for drag minimization problems as well. In such a case, we can express the objective function as:
J = D 2
Thus, we can write
J B D V i = 2 D D B D V i
where the term D B D V i can be computed usingEquation (13). In a similar fashion to Equation (25), to derive an exact expression for the step length, we can write:
J β = 2 D D β = 0 D = 0
which results in the same expression for the step length given in Equation (31) (or Equation (A5)).

Appendix B.1.2. Lift-Constrained Drag Minimization

In such a case, we can express the objective function as:
J = D 2
subject   to   L = constant = C
The equality constraint, L = constant = C , can be explicitly incorporated into the objective function, J = D 2 , toconvert the constrained optimization problem to an equivalent unconstrained one. If
L = C
Then, from Equation (7), we have:
L = A sin α + N cos α = C
Therefore, we can write:
N = C + A sin α cos α
By substituting N into the drag force expression (Equation (6)), we have:
D = A cos α + N sin α = A cos α + C + A sin α cos α sin α = A cos 2 α + C sin α + A sin 2 α cos α
Using cos 2 α + sin 2 α = 1 , the drag force expression simplifies to:
D = A + C sin α cos α
or
D = j = 1 N 1 p 1 , j ( y 1 , j y 1 , j + 1 ) + C sin α cos α
Now the objective function expression to be minimized is:
J = D 2 = ( j = 1 N 1 p 1 , j ( y 1 , j y 1 , j + 1 ) + C sin α cos α ) 2
The gradient expression is:
J B D V i = 2 D D B D V i J B D V i = 2 ( j = 1 N 1 p 1 , j ( y 1 , j y 1 , j + 1 ) + C sin α cos α ) ( j = 1 N 1 [ p 1 , j B D V i ( y 1 , j y 1 , j + 1 ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i ] ) cos α
After simplifying (because the lift force is constant, L = C , we have C B i = 0 ), we obtain:
J B D V i = 2 cos 2 α ( j = 1 N 1 p 1 , j ( y 1 , j y 1 , j + 1 ) + C sin α ) ( j = 1 N 1 [ p 1 , j B D V i ( y 1 , j y 1 , j + 1 ) + p 1 , j ( y 1 , j y 1 , j + 1 ) B D V i ] )
Equation (A17) is the gradient expression for the equivalent unconstrained optimization form of the lift-constrained drag minimization problem.
To obtain an exact step length for this case, it is necessary to have D = 0 . From Equation (A16), after a rearrangement of terms with respect to y 1 , j rather than p 1 , j , we can write:
D = j = 1 N 1 p 1 , j ( y 1 , j y 1 , j + 1 ) + C sin α = j = 1 N 1 y 1 , j ( p 1 , j p 1 , j 1 ) + C sin α = 0
In a similar procedure to the previous cases, we can obtain the exact step length as being:
β exact ( k ) = [ i = 1 n 1 j = 2 N + 1 2 1 a i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) + i = 1 n 1 j = N + 1 2 + 1 N 1 a i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) ] + C sin α [ i = 1 n 1 j = 2 N + 1 2 1 b i U ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) + i = 1 n 1 j = N + 1 2 + 1 N 1 b i L ( k ) n ! i ! ( n i ) ! t y 1 , j i ( 1 t y 1 , j ) n i ( p 1 , j p 1 , j 1 ) ]
or for the Bezier curve of degree 10 used in this study as being:
β ( k ) = [ a 9 ( k ) A 9 + a 8 ( k ) A 8 + + a 1 ( k ) A 1 + a 10 ( k ) A 10 + a 11 ( k ) A 11 + + a 18 ( k ) A 18 ] + C sin α [ b 9 ( k ) A 9 + b 8 ( k ) A 8 + + b 1 ( k ) A 1 + b 10 ( k ) A 10 + b 11 ( k ) A 11 + + b 18 ( k ) A 18 ]
Note that in this equation, there is no cos α . C term as the initial lift force, which should be constant during the optimization process.

Appendix C

The Fortran code for converting the Bezier control points to the design variables is as follows:
  • C n is the degree of Bezier curve
  • C CPN is the Control Points Number (which is n+1=10+1=11 here)
  • C B_Y_T and B_Y_B is Bezier control points associated with the top and
  • C bottom surfaces, respectively
  • C B_Y is the Bezier design variable (see Figure 3: Two Bezier control
  • C points adjacent to trailing edge are not considered as design C
  • C variables in this code;therefore, there are eight design variables on top and
  • C surface and eight design variables on the bottom surface)
    • n=10
    • CPN=n+1
    • DO I=1,CPN-3
    • B_Y(I,1)=B_Y_T(CPN-I-1,1)
    • ENDDO
    • DO I=CPN-3+1,2*CPN-6
    • B_Y(I,1)=B_Y_B(I-CPN+3+1,1)
    • ENDDO

Appendix D

  • C STS stands for step-size (length) calculation
  • C t_STS is associated with each node on the airfoil surface,
  • C as defined in Figure 1
  • C t_T is t for the top surface; t_B is t for the bottom surface
  • C N is the number of nodes on airfoil surface
    • DELTA1_TT=(1.0−0.0)/((N+1)/2−1)
    • DELTA1_TB=(1.0−0.0)/((N+1)/2−1)
    • t_T(1,1)=0.0
    • t_T((N+1)/2,1)=1.0
    • t_B(1,1)=0.0
    • t_B((N+1)/2,1)=1.0
    • DO I=2,(N+1)/2−1
    •  t_T(I,1)=t_T(I-1,1)+DELTA1_TT
    • ENDDO
    • DO I=2,(N+1)/2−1
    •  t_B(I,1)=t_B(I−1,1)+DELTA1_TB
    • ENDDO
    • t_STS(1,1)=1.0
    • t_STS(1,(N+1)/2)=0.0
    • t_STS(1,N)=1.0
    • DO J=2,(N+1)/2−1
    • t_STS(1,J)=t_T((N+1)/2+1−J,1)
    • ENDDO
    • DO J=(N+1)/2+1,N−1
    • t_STS(1,J)=t_B(J−(N+1)/2+1,1)
    • ENDDO
  • C for the upper surface
    • A(1)=0.0
    • DO J=2,(N+1)/2−1
    • A(1)=A(1)+10.0*(t_STS(1,J)**9)*((1.0−t_STS(1,J))**1)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(2)=0.0
    • DO J=2,(N+1)/2−1
    • A(2)=A(2)+45.0*(t_STS(1,J)**8)*((1.0-t_STS(1,J))**2)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(3)=0.0
    • DO J=2,(N+1)/2−1
    • A(3)=A(3)+120.0*(t_STS(1,J)**7)*((1.0−t_STS(1,J))**3)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(4)=0.0
    • DO J=2,(N+1)/2−1
    • A(4)=A(4)+210.0*(t_STS(1,J)**6)*((1.0−t_STS(1,J))**4)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(5)=0.0
    • DO J=2,(N+1)/2−1
    • A(5)=A(5)+252.0*(t_STS(1,J)**5)*((1.0−t_STS(1,J))**5)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(6)=0.0
    • DO J=2,(N+1)/2−1
    • A(6)=A(6)+210.0*(t_STS(1,J)**4)*((1.0−t_STS(1,J))**6)*
    • +(PRESSURE(1,J)−PRESSURE(1,J-1))
    • ENDDO
    • A(7)=0.0
    • DO J=2,(N+1)/2−1
    • A(7)=A(7)+120.0*(t_STS(1,J)**3)*((1.0−t_STS(1,J))**7)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(8)=0.0
    • DO J=2,(N+1)/2−1
    • A(8)=A(8)+45.0*(t_STS(1,J)**2)*((1.0−t_STS(1,J))**8)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(9)=0.0
    • DO J=2,(N+1)/2−1
    • A(9)=A(9)+10.0*(t_STS(1,J)**1)*((1.0−t_STS(1,J))**9)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
  • C for the lower surface
    • A(10)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(10)=A(10)+10.0*(t_STS(1,J)**1)*((1.0−t_STS(1,J))**9)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(11)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(11)=A(11)+45.0*(t_STS(1,J)**2)*((1.0−t_STS(1,J))**8)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(12)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(12)=A(12)+120.0*(t_STS(1,J)**3)*((1.0−t_STS(1,J))**7)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(13)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(13)=A(13)+210.0*(t_STS(1,J)**4)*((1.0−t_STS(1,J))**6)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(14)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(14)=A(14)+252.0*(t_STS(1,J)**5)*((1.0−t_STS(1,J))**5)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(15)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(15)=A(15)+210.0*(t_STS(1,J)**6)*((1.0−t_STS(1,J))**4)*
    • +(PRESSURE(1,J)−PRESSURE(1,J-1))
    • ENDDO
    • A(16)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(16)=A(16)+120.0*(t_STS(1,J)**7)*((1.0−t_STS(1,J))**3)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(17)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(17)=A(17)+45.0*(t_STS(1,J)**8)*((1.0−t_STS(1,J))**2)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
    • A(18)=0.0
    • DO J=(N+1)/2+1,N−1
    • A(18)=A(18)+10.0*(t_STS(1,J)**9)*((1.0−t_STS(1,J))**1)*
    • +(PRESSURE(1,J)−PRESSURE(1,J−1))
    • ENDDO
  • C terms in Equation (24):
    • DO I=1,2*CPN−4
    •  b_STS(I,1)=0.0
    •  DO L=1,2*CPN−4
    •   b_STS(I,1)=b_STS(I,1)+BY_BFGS(I,L)*DELTA_SY(L,1)
    •  ENDDO
    • ENDDO
    • DO I=1,2*CPN−4
    •  a_STS(I,1)=B_Y(I,1)
    • ENDDO
  • C calculation of beta (exact step-size):
  • C terms in numerator of Equation (A5)
    • BETA1_KY=0.0
    • DO I=1,2*CPN−4
    • BETA1_KY=BETA1_KY+a_STS(I,1)*A(I)
    • ENDDO
  • C terms in the denominator of Equation (A5)
    • BETA2_KY=0.0
    • DO I=1,2*CPN−4
    • BETA2_KY=BETA2_KY+b_STS(I,1)*A(I)
    • ENDDO
  • C Equation (A5):
    • BETA_KY=(COS(PI*AOA/180.0)*BETA1_KY+NORMAL_FORCE*
    • +SIN(PI*AOA/180.0))/(COS(PI*AOA/180.0)*BETA2_KY)

References

  1. Hicks, R.M.; Murman, E.M.; Vanderplaats, G.N. An Assessment of Airfoil Design by Numerical Optimization; National Technical Information Service: Springfield, VA, USA, 1974. [Google Scholar]
  2. Hicks, R.M.; Henne, P.A. Wing design by numerical optimization. J. Aircr. 1978, 15, 407–412. [Google Scholar] [CrossRef]
  3. Pironneau, O. On optimum design in fluid mechanics. J. Fluid Mech. 1974, 64, 97–110. [Google Scholar] [CrossRef]
  4. Jameson, A. Aerodynamic design via control theory. J. Sci. Comput. 1988, 3, 233–260. [Google Scholar] [CrossRef] [Green Version]
  5. Jameson, A. Optimum aerodynamic design using CFD and control theory. In Proceedings of the 12th Computational Fluid Dynamics Conference, San Diego, CA, USA, 19–22 June 1995; p. 1729. [Google Scholar]
  6. Jameson, A. Automatic design of transonic airfoils to reduce the shock induced pressure drag. In Proceedings of the 31st Israel Annual Conference on Aviation and Aeronautics, Tel Aviv, Israel, 21–22 February 1990; pp. 5–17. [Google Scholar]
  7. Jameson, A.; Reuther, J. Control theory based airfoil design using the Euler equations. In Proceedings of the 5th Symposium on Multidisciplinary Analysis and Optimization, Panama City Beach, FL, USA, 7–9 September 1994; p. 4272. [Google Scholar]
  8. Lyu, Z.; Kenway, G.K.; Martins, J.R. Aerodynamic shape optimization investigations of the common research model wing benchmark. AIAA J. 2014, 53, 968–985. [Google Scholar] [CrossRef] [Green Version]
  9. Papadimitriou, D.I.; Papadimitriou, C. Aerodynamic shape optimization for minimum robust drag and lift reliability constraint. Aerosp. Sci. Technol. 2016, 55, 24–33. [Google Scholar] [CrossRef]
  10. Srinath, D.N.; Mittal, S. An adjoint method for shape optimization in unsteady viscous flows. J. Comput. Phys. 2010, 229, 1994–2008. [Google Scholar] [CrossRef]
  11. Economon, T.D.; Palacios, F.; Copeland, S.R.; Lukaczyk, T.W.; Alonso, J.J. SU2: An open-source suite for multiphysics simulation and design. AIAA J. 2015, 54, 828–846. [Google Scholar] [CrossRef]
  12. He, X.; Li, J.; Mader, C.A.; Yildirim, A.; Martins, J.R. Robust aerodynamic shape optimization—From a circle to an airfoil. Aerosp. Sci. Technol. 2019, 87, 48–61. [Google Scholar] [CrossRef]
  13. Mohammadi, B.; Pironneau, O. Applied Shape Optimization for Fluids; Oxford University Press: Oxford, UK, 2009. [Google Scholar]
  14. Thevenin, D.; Janiga, G. Optimization and Computational Fluid Dynamics; Springer Science & Business Media: Berlin, Germany, 2008. [Google Scholar]
  15. Skinner, S.N.; Zare-Behtash, H. State-of-the-art in aerodynamic shape optimisation methods. Appl. Soft Comput. 2018, 62, 933–962. [Google Scholar] [CrossRef]
  16. Giles, M.B.; Pierce, N.A. An introduction to the adjoint approach to design. Flow Turbul. Combust. 2000, 65, 393–415. [Google Scholar] [CrossRef]
  17. Giles, M.B.; Duta, M.C.; M-uacute, J.D.; Pierce, N.A. Algorithm developments for discrete adjoint methods. AIAA J. 2003, 41, 198–205. [Google Scholar] [CrossRef] [Green Version]
  18. Elliott, J.; Peraire, J. Aerodynamic design using unstructured meshes. In Proceedings of the Fluid Dynamics Conference, New Orleans, LA, USA, 17–20 June 1996; p. 1941. [Google Scholar]
  19. Nemec, M.; Zingg, D.W. Newton-Krylov algorithm for aerodynamic design using the Navier-Stokes equations. AIAA J. 2002, 40, 1146–1154. [Google Scholar] [CrossRef] [Green Version]
  20. Anderson, W.K.; Venkatakrishnan, V. Aerodynamic design optimization on unstructured grids with a continuous adjoint formulation. Comput. Fluids 1999, 28, 443–480. [Google Scholar] [CrossRef] [Green Version]
  21. Nocedal, J.; Wright, S. Numerical Optimization; Springer: New York, NY, USA, 2006. [Google Scholar]
  22. Martins, J.R.; Sturdza, P.; Alonso, J.J. The complex-step derivative approximation. ACM Trans. Math. Softw. 2003, 29, 245–262. [Google Scholar] [CrossRef] [Green Version]
  23. Anderson, J.D. Fundamentals of Aerodynamics; McGraw-Hill Education: New York, NY, USA, 2016. [Google Scholar]
  24. Rao, S.S. Engineering Optimization: Theory and Practice; Wiley: Hoboken, NJ, USA, 2009. [Google Scholar]
  25. Butenko, S.; Pardalos, P.M. Numerical Methods and Optimization: An Introduction; Taylor & Francis: Abingdon-on-Thames, UK, 2014. [Google Scholar]
  26. Carpentieri, G.; Koren, B.; van Tooren, M.J.L. Adjoint-based aerodynamic shape optimization on unstructured meshes. J. Comput. Phys. 2007, 224, 267–287. [Google Scholar] [CrossRef] [Green Version]
  27. Chen, W.; Zhang, W.; Liu, Y.; Kou, J. Accelerating the convergence of steady adjoint equations by dynamic mode decomposition. Struct. Multidiscip. Optim. 2020. [Google Scholar] [CrossRef]
Figure 1. The node definition on the airfoil surface.
Figure 1. The node definition on the airfoil surface.
Fluids 05 00070 g001
Figure 2. Definition of the parameter t used in the Bezier curve.
Figure 2. Definition of the parameter t used in the Bezier curve.
Fluids 05 00070 g002
Figure 3. Definition of the design variables used for aerodynamic shape optimization. Here, the coordinates of the Bezier control points were not real and were plotted this way for the sake of simplicity in the definition.
Figure 3. Definition of the design variables used for aerodynamic shape optimization. Here, the coordinates of the Bezier control points were not real and were plotted this way for the sake of simplicity in the definition.
Fluids 05 00070 g003
Figure 4. The values of the Bezier control points for the upper and lower surfaces of a NACA 0012 airfoil.
Figure 4. The values of the Bezier control points for the upper and lower surfaces of a NACA 0012 airfoil.
Fluids 05 00070 g004
Figure 5. Resultant aerodynamic force R and the components into which it splits [23].
Figure 5. Resultant aerodynamic force R and the components into which it splits [23].
Fluids 05 00070 g005
Figure 6. Structured mesh (hyperbolic O-grid) used for solving the transonic flow equations. The size of the mesh was 109 × 601 .
Figure 6. Structured mesh (hyperbolic O-grid) used for solving the transonic flow equations. The size of the mesh was 109 × 601 .
Fluids 05 00070 g006
Figure 7. Comparison of initial and optimal airfoils used in the transonic flow shape optimization (a) and the corresponding airfoil surface pressure coefficients (b).
Figure 7. Comparison of initial and optimal airfoils used in the transonic flow shape optimization (a) and the corresponding airfoil surface pressure coefficients (b).
Fluids 05 00070 g007
Figure 8. Static pressure distribution for the initial shape (NACA 0012) (a) and the optimal shape (at iteration 15) (b).
Figure 8. Static pressure distribution for the initial shape (NACA 0012) (a) and the optimal shape (at iteration 15) (b).
Fluids 05 00070 g008
Figure 9. Comparison of the initial shape (NACA 0012) and the updated shape at (an) iteration 1 to iteration 14.
Figure 9. Comparison of the initial shape (NACA 0012) and the updated shape at (an) iteration 1 to iteration 14.
Fluids 05 00070 g009aFluids 05 00070 g009b
Figure 10. Comparison of the initial shape (NACA 0012), the optimal shape from our study, and the optimal shape from Chen et al. [27]; it shows a good agreement between the optimal shapes and an excellent agreement between the optimal upper surfaces where the shock was eliminated.
Figure 10. Comparison of the initial shape (NACA 0012), the optimal shape from our study, and the optimal shape from Chen et al. [27]; it shows a good agreement between the optimal shapes and an excellent agreement between the optimal upper surfaces where the shock was eliminated.
Fluids 05 00070 g010
Figure 11. History of the objective function, J = ( D L ) 2 , during the shape optimization process.
Figure 11. History of the objective function, J = ( D L ) 2 , during the shape optimization process.
Fluids 05 00070 g011
Figure 12. Exact step length value during the shape optimization process.
Figure 12. Exact step length value during the shape optimization process.
Fluids 05 00070 g012
Figure 13. Sensitivity coefficients at some arbitrary nodes using three different finite-difference stepsizes.
Figure 13. Sensitivity coefficients at some arbitrary nodes using three different finite-difference stepsizes.
Fluids 05 00070 g013
Figure 14. The gradient of the objective function with respect to the design variables at iteration 1 (a) and iteration 15 (b).
Figure 14. The gradient of the objective function with respect to the design variables at iteration 1 (a) and iteration 15 (b).
Fluids 05 00070 g014
Table 1. Results for the test case.
Table 1. Results for the test case.
Iteration   Number   ( k ) J = ( D L ) 2 Step   Length   β ( m 2 ) D ( N ) L ( N ) c d c l
0 (initial shape)9.10775 × 10−4-515.76017,090.0001.294 × 10−20.42867
11.97841 × 10−50.553434.0327651.2008.536 × 10−40.19191
21.34569 × 10−51.687235.6449716.6008.940 × 10−40.24372
31.06817 × 10−51.151038.23911,700.0009.591 × 10−40.29348
49.92128 × 10−62.477940.66412,910.0001.020 × 10−30.32381
58.40409 × 10−60.018840.98014,136.0001.028 × 10−30.35456
64.89131 × 10−6−1.246835.52116,061.0008.910 × 10−40.40284
71.50193 × 10−547.614472.88618,807.0001.828 × 10−30.47174
82.14748 × 10−52.847849.21410,620.0001.234 × 10−30.26638
91.66016 × 10−50.345048.40111,879.0001.214 × 10−30.29795
101.24568 × 10−50.216045.65312,935.0001.145 × 10−30.32445
117.33858 × 10−60.259938.30514,140.0009.608 × 10−40.35466
126.68139 × 10−60.000940.20215,553.0001.008 × 10−30.39011
138.65189 × 10−611.850840.16213,654.0001.007 × 10−30.34247
141.26244 × 10−51.864259.41116,721.0001.490 × 10−30.41941
155.73953 × 10−60.997736.14215,086.0009.065 × 10−40.37839
-99.4% reduction-93.0% reduction11.7% reduction--

Share and Cite

MDPI and ACS Style

Mohebbi, F.; Evans, B. On an Exact Step Length in Gradient-Based Aerodynamic Shape Optimization. Fluids 2020, 5, 70. https://doi.org/10.3390/fluids5020070

AMA Style

Mohebbi F, Evans B. On an Exact Step Length in Gradient-Based Aerodynamic Shape Optimization. Fluids. 2020; 5(2):70. https://doi.org/10.3390/fluids5020070

Chicago/Turabian Style

Mohebbi, Farzad, and Ben Evans. 2020. "On an Exact Step Length in Gradient-Based Aerodynamic Shape Optimization" Fluids 5, no. 2: 70. https://doi.org/10.3390/fluids5020070

Article Metrics

Back to TopTop