Stanford University Unstructured (SU) : An Open-Source Integrated Computational Environment For Multi-Physics Simulation and Design
Stanford University Unstructured (SU) : An Open-Source Integrated Computational Environment For Multi-Physics Simulation and Design
Stanford University Unstructured (SU) : An Open-Source Integrated Computational Environment For Multi-Physics Simulation and Design
Francisco Palacios , Michael R. Colonno , Aniket C. Aranake, Alejandro Campos, Sean R. Copeland, Thomas D. Economon , Amrita K. Lonkar, Trent W. Lukaczyk, Thomas W. R. Taylor, and Juan J. Alonso
Stanford University, Stanford, CA 94305, U.S.A.
This paper describes the history, objectives, structure, and current capabilities of the Stanford University Unstructured (SU2 ) tool suite. This computational analysis and design software collection is being developed to solve complex multi-physics analysis and optimization tasks using arbitrary unstructured meshes, and it has been designed so that it is easily extensible for the solution of PDE-based problems not directly envisioned by the authors. At its core, SU2 is an open-source collection of C++ software tools to discretize and solve problems described by Partial Dierential Equation (PDE) and is able to solve PDE-constrained optimization problems, including optimal shape design. Although the toolset has been designed with Computational Fluid Dynamics (CFD) and aerodynamic shape optimization in mind, it has also been extended to treat other sets of governing equations including potential ow, electrodynamics, chemically reacting ows, and several others. In our experience, capabilities for computational analysis and optimization have improved considerably over the past two decades. However, the ability to integrate the resulting software packages into coupled multi-physics analysis and design optimization solvers has remained a challenge: the variety of approaches chosen for the independent components of the overall problem (ow solvers, adjoint solvers, optimizers, shape parameterization, shape deformation, mesh adaption, mesh deformation, etc) make it dicult to (a) expand the range of applicability to situations not originally envisioned, and (b) to reduce the overall burden of creating integrated applications. By leveraging well-established object-oriented software architectures (using C++) and by enabling a common interface for all the necessary components, SU2 is able to remove these barriers for both the beginner and the seasoned analyst. In this paper we attempt to describe our eorts to develop SU2 as an integrated platform. In some senses, the paper can also be used as a software reference manual for those who might be interested in modifying it to suit their own needs. We carefully describe the C++ framework and object hierarchy, the sets of equations that can be currently modeled by SU2 , the available choices for numerical discretization, and conclude with a set of relevant validation and verication test cases that are included with the SU2 distribution. We intend for SU2 to remain open source and to serve as a starting point for new capabilities not included in SU2 today, that will hopefully be contributed by users in both academic and industrial environments.
Engineering Ph.D.
Research Associate, Department of Aeronautics & Astronautics, AIAA Member. Candidates (authors in alphabetical order), Department of Aeronautics & Astronautics, AIAA Student Members. Associate Professor, Department of Aeronautics & Astronautics, AIAA Associate Fellow.
I.
Introduction
The solution of challenging multi-disciplinary problems involves the interaction between separate modules that represent dierent physical models and procedures, and that for eciency and integration issues, must share a common set of numerical solution algorithms and code architecture. For example, the unsteady aeroacoustic design of plasma actuators for wind turbines requires the solution of the plasma equations around the actuator, the Reynolds-averaged Navier-Stokes (RANS) equations in the neighborhood of the turbine, the Ffowcs Williams and Hawkings model for far-eld noise propagation, and the entire system might need to be coupled with a Finite Element Method (FEM) model of structure of the blades. Additionally, adjoint equations might need to be solved for each system, and the entire problem may require an infrastructure for shape design (shape parameterization, grid deformation, and optimization algorithms) to be available. In many other situations of aerospace interest (supersonic low-boom design, helicopter rotor optimization, uncertainty quantication in re-entry vehicles, hypersonic propulsion systems, advanced environmentallyfriendly aircraft, modern engine designs, etc) the situation is similar: the ability to integrate multiple physics, parameterize the resulting system, and provide the ability to design/optimize the outcome is of utmost importance and must be accomplished with minimum eort. Although it is possible to identify the key characteristics of computational analysis and design / optimization suites that lead to capabilities and eciencies mentioned above, one rarely has the opportunity and the resources to create such environments from the ground up. As a consequence, the architecture of the resulting eorts lacks the necessary exibility and sophistication to overcome all the challenges. Fortunately, SU2 was developed from scratch to overcome some of these limitations. In addition, modern high-level programming languages (C++ in our case) leveraged in SU2 have long provided the capabilities to ensure portability, code reuse, and the exibility required to re-purpose existing software for new and dierent uses. In order to overcome challenges and develop a lasting infrastructure for future eorts, the basic philosophy in the development of the SU2 framework has been to ensure: An open-source model: while the Aerospace Design Laboratory (ADL) at Stanford University has provided the basic formulation with a reasonable set of initial capabilities, we would like to see contributions from the community to further enhance the capabilities of the suite, and we will ensure that all of these developments are available to all users in the future. Portability: SU2 has been developed using ANSI C++ and only relies on widely-available, wellsupported, open-source software including OpenMPI, Metis, and Python. As such, SU2 is able to run on any computing platform for which a C++ compiler is available. Reusability and encapsulation: SU2 is built so that the main concepts (geometry, grids, solution algorithms, numerical implementations, etc) are abstracted to a very high-level. This abstraction promotes reusability of the code and enables modications without incorrectly aecting other portions of the modules in the suite. Performance: we have attempted to develop numerical solution algorithms that result in high-performance convergence of the solver in SU2 . Although some level of performance is traded for reusability and encapsulation, the loss in performance is minor. Gradient availability: for many applications (optimization, response surface formulations, uncertainty quantication, among others) it is important to obtain gradients of the responses computed by SU2 to variations of, potentially, very large numbers of design parameters. For this reason, SU2 relies on adjoint solver implementations that can be used to compute the necessary gradients. In addition, these adjoint solutions can be used to compute functional-driven mesh adaptation techniques. Using this philosophy we are able, within SU2 , to develop both Finite Volume Method (FVM) or FEM solvers, their corresponding adjoint systems, and, if needed, multi-physics solvers that can combine both approaches. The use of a clearly-structured set of classes allows for the easy identication of the main pieces of the code that will need to be re-implemented or enhanced for new models without interfering with the main code. A library of numerical schemes and linear solvers reduces the development time required for a new implementation (e.g., agglomeration multigrid, line-implicit relaxation, and goal-oriented grid adaptation are generic capabilities provided by SU2 that can be reused in many numerical simulations.) Additionally, the solver structure and parallelization methodology are shared by all the members of the suite. It is important
2 of 59 American Institute of Aeronautics and Astronautics
to highlight that the ability to easily integrate these solvers ensures that new features or updated models can be included without aecting the main infrastructure and with a reasonably low degree of diculty. At the time of this writing, the SU2 software suite specializes in high-delity PDE analysis and in the design of PDE-constrained systems on unstructured meshes. The suite itself is composed of several C++ analysis modules that handle specic jobs, including: SU 2 CF D: The main PDE solution module that started mainly as an Euler and RANS CFD solver, but that has been modied to treat many other governing equations, including the adjoint equations for many of the governing equation systems supported. SU 2 DDC : The Domain Decomposition Code, used to prepare SU2 for computations involving multiple processors. SU 2 M AC : The Mesh Adaptation Code that can be used to rene the unstructured computational meshes to improve the accuracy of the predictions. SU 2 GP C : The Gradient Projection Code that allows for the calculation of sensitivities for use in optimization and uncertainty quantication. SU 2 M DC : The Mesh Deformation Code that can be used to perturb an existing unstructured volume mesh to conform to new surface geometries dictated by either shape optimization processes or aerostructural simulations. SU 2 P BC : The Periodic Boundary Code, a pre-processor to allow for the solution of PDEs on periodic domains. SU 2 SM C : The Sliding Mesh Code, a pre-processor that enables the solution of PDEs on meshes that slide (translational or rotational capabilities included) past each other. Additional modules may be added as further capabilities are needed and included in the software. This structure makes SU2 an ideal vehicle for performing multi-physics simulations, including multi-species thermochemical non-equilibrium ow analysis, combustion modeling, two-phase ow simulations, magnetohydrodynamics simulations, etc. SU2 is under active development in the Aerospace Design Lab (ADL) of the Department of Aeronautics and Astronautics at Stanford University. It has also been released under an open-source license and it is freely available to the community, so that developers around the world can contribute to and improve the suite. Prior to release, signicant eorts were directed at the development of sucient documentation so that prospective users could get up to speed without interaction with the development team. For this reason a set of tutorials that cover all the basic capabilities of SU2 was created and is distributed with SU2 . Since the initial release of SU2 in January of 2012, there have been over 20, 000 visits to the SU2 web page, more than 2, 600 downloads of the software, many requests for participation in periodic SU2 workshops, and signicant participation in Facebook and Twitter. The organization of this paper is as follows. Section II describes the object-oriented class structure of SU2 and the exibility of the implementation. Details on the numerical modeling is provided in sections III and IV. Finally, section V provides examples of the current functionality and performance of SU2 using representative simulations and design problems. It is our intent for this paper to be the main reference for work that uses or enhances the capabilities of SU2 , and for it to serve as a sort of reference manual for researchers and engineers that would like to learn more about the details of the software suite. The current implementation of SU2 is already very capable, but many additional capabilities are being requested from our development group. We intend to tackle some of them in the near future, but we also look forward to contributions by the entire community in order to make SU2 s future a sustainable one.
II.
Code framework
The SU2 software suite was conceived as a common infrastructure for solving Partial Dierential Equation (PDE) problems using the Finite Volume Method (FVM) or Finite Element Method (FEM). The code structure and the high-level time and spatial integration structure is shared by all of the applications, and only specic numerical methods for the convective, viscous and source terms are reimplemented for dierent models where necessary. There is no fundamental limitation on the number of state variables or the number of governing equation systems that can be solved simultaneously in a coupled or segregated way (other than the physical memory available on a given computer architecture), and the more complicated algorithms and numerical methods (including parallelization, multigrid and linear solvers) have been implemented in such a way that they can be applied without special consideration during the implementation of a new physical model. The suite is composed of seven C++ software modules that perform a wide range of tasks related to PDE analysis (grid adaptation, grid deformation, surface denition, optimization, etc.). An basic description of each of module is included in Sec. 1 to give a overall perspective of the suites capabilities. Some modules can be executed individually to perform high delity analysis, most notably SU2 CFD, but the real power of the suite lies in the coupling of the modules for performing complex activities including design optimization and adaptive grid renement. To that end, coupling of the SU2 software modules can be accomplished using supplied Python scripts that will be also described in Sec. 2. Note also that all of the modules share the same C++ class structure, and thus, for example, all of the grid deformation capabilities can be integrated directly into the CFD solver or used separately as an independent code. Another key feature of the C++ modules is that each has been designed to separate functionality as much as possible while leveraging the advantages of the class-inheritance structure of the programming language. This makes SU2 an ideal platform for prototyping new numerical methods, discretization schemes, governing equation sets, mesh perturbation algorithms, adaptive mesh renement schemes, parallelization schemes, etc. Ultimately, this philosophy enables the extension of the suite to a wide variety of PDE analysis and design problems. A. Software architecture
SU2 is built to enable vertical integration with optimizers and to reduce the amount of user overhead required for setup. There are ve levels of components in the optimization control architecture, and most rely on Python scripts to modify the conguration input, execute lower-level components and post-process any resulting data. To simplify and shorten overhead time during problem setup, all levels start from a common conguration le, which is modied as needed when passed to lower levels. Listed in order from lowest to highest, these levels are: Core tools - These contain all of the SU2 binary executables, which are the core tools of the suite. As input, they take a custom format ASCII conguration le. For output, they write data such as integrated forces, moments and other objectives to an iteration history le, eld data to les for plotting, or deformed, adapted, or decomposed meshes in the native format, for instance. Solution decomposition/recomposition - Many of the core solvers (i.e., SU2 CFD, SU2 MDC, SU2 GPC) can operate in parallel on a partitioned mesh. The management of pre-process mesh decomposition and post-process plot le merging for this data is handled by the parallel computation.py and parallel deformation.py Python scripts. Sensitivity analysis - This level manages the pre- and post-processing needed for calculating performance sensitivities with respect to user-specied design variables. Both continuous adjoint and nite dierencing approaches have been implemented, and the discrete and hybrid adjoint approaches are under development. For the adjoint approach, both a direct and adjoint solution are computed, and the resulting adjoint surface sensitivities must be projected into the design space during a post-processing step. In the case of nite dierencing, multiple, but independent, evaluations of the direct problem are required before the performance sensitivities can be calculated. Design evaluation - For easier integration with optimization packages, SU2 has a design management class that wraps a black box around the previous components and only takes design vectors for input.
This interprets special conguration le options for design variables which allow it to set up mesh deformation. When it receives a design vector from the optimizer, it then executes mesh deformation, direct solution, and sensitivity analyses as needed, and then nally returns performance data. As it operates, it archives restart and plot data in an organized folder structure, which may be useful for secondary analyses or debugging. Evaluations of multiple design requests can be submitted in parallel if the resources are available, for example on a high-performance computing cluster. Design optimization - Single-objective design optimization is the highest level of architecture that we have developed at the moment. Two optimization strategies have been adopted for use with SU2 . The rst is gradient-based optimization using SciPys SLSQP optimizer, which adds complexity by requiring separate function handles for the objective function, constraints and their sensitivities. The second is surrogate based optimization, where an in-house gradient-enhanced Gaussian Process Regression based optimizer is used. 1. C++ software modules
The core tools of the SU2 suite are the C++ modules, a brief description of each binary is presented below: SU2 CFD (Computational Fluid Dynamics Code) - Solves direct, adjoint (steady or unsteady) problems for the Euler, Navier-Stokes and Reynolds-Averaged Navier-Stokes (RANS), plasma, free-surface, electrostatic, etc., equation sets. SU2 CFD can be run serially or in parallel using MPI. It uses either FVM or FEM and an edge-based structure. Explicit and implicit time integration methods are available with centered or upwinding spatial integration schemes. The software also has several advanced features to improve robustness and convergence, including residual smoothing, agglomeration multigrid, linelet and low speed preconditioning, and Krylov space methods for solving linear systems. The capabilities of this tool are the subject of much of this article. SU2 GPC (Gradient Projection Code) - Computes the partial derivative of a functional with respect to variations in the aerodynamic surface. SU2 GPC uses the surface sensitivities computed using SU2 CFD, the ow solution and the denition of the geometrical design variables to evaluate the derivative of a particular functional (e.g. drag, lift, etc.). SU2 MDC (Mesh Deformation Code) - Computes the geometrical deformation of surfaces within the computational mesh and the surrounding volumetric grid. Once the type of deformation is dened, SU2 MDC performs the grid deformation using dierent strategies. Three-dimensional deformations use a method called Free Form Deformation (FFD), while two-dimensional problems typically use bump functions, such as Hicks-Henne. SU2 MAC (Mesh Adaptation Code) - Performs grid adaptation using various techniques (including goal-oriented) based on the analysis of a converged ow, adjoint or linearized solution to strategically rene the mesh about key ow features. SU2 DDC (Domain Decomposition Code) - Partitions the specied volumetric grid for use with several of the other core tools when performing simulation or design in parallel. SU2 DDC is built around the METIS47 software that will identify and assign nodes to each processor for achieving load balancing with minimal communication (edge cuts). Once that information is received, SU2 DDC prepares the communication between nodes on dierent partitions and generates the appropriate computational grid partitions required by the other core tools for executing in parallel. SU2 PBC (Periodic Boundary Code) - Creates ghost cells in the computational domain for performing simulations with periodic boundary conditions and outputs a new mesh containing the proper communication structure between periodic faces. This module must be run prior to SU2 CFD for any simulation the uses such boundary conditions. SU2 SMC (Sliding Mesh Code) - Creates ghost cells in the computational domain for performing simulations with sliding surfaces and outputs a new multi-zone mesh containing the proper communication structure between sliding interfaces. As in the case of SU2 PBC, this module must be run prior to SU2 CFD. The C++ modules share a common class structure to increase the exibility of the overall SU2 suite. A description of the main classes of the code is presented in Sec. B.
5 of 59 American Institute of Aeronautics and Astronautics
2.
Python wrapping
The various software modules of SU2 can be coupled together to perform complex analysis and design tasks using supplied Python scripts. A brief description of the most used scripts is provided below: High delity analysis scripts. These scripts have been designed to enhance the exibility of the SU2 framework. More specically, they simplify the execution of parallel tasks, grid adaptation, or the interface with other software. parallel computation.py - Handles the setup and execution of parallel CFD jobs on multi-core or cluster computing architectures. The script calls SU2 DDC to partition the grid for the specied number of processors then executes SU2 CFD in parallel. parallel deformation.py - Handles the setup and execution of parallel mesh deformation jobs on multi-core or cluster computing architectures. The script calls SU2 DDC to partition the grid for the specied number of processors then executes SU2 MDC in parallel. grid adaptation.py - Automates the grid adaptation procedure. The script links SU2 CFD and SU2 MAC, rening the input grid based on parameters specied in the conguration le. libSU2.py - Contains denitions for commonly used conguration and data le i/o. libSU2 mesh.py - Contains denitions for accessing SU2 native mesh le data. general tasks.py - Contains a class structure for abstracting the execution of major SU2 tasks. evaluate design.py - Contains project and job class denitions for the non-sequential execution of SU2 tasks. run project.py - Performs top-level execution of SU2 projects which can be wrapped by various optimizers. patient designspace.py - For use on a computing cluster, it submits and collects data from multiple SU2 jobs. Optimal shape design scripts. These scripts have been designed to automate the optimal shape design process which includes functional and gradient computation, mesh deformation, and an optimization algorithm. continuous adjoint.py - Automatically computes the sensitivities of a specied functional with respect to design parameter perturbations (specied in the SU2 CFD conguration le) using the adjoint method. The SU2 CFD and SU2 GPC modules are called to perform the analysis. nite dierences.py - Automatically computes the sensitivities of a specied functional with respect to design parameter perturbations using a nite dierence method. As with the continuous adjoint.py script, design variable information is read from the conguration le and SU2 CFD is called repeatedly to calculate the appropriate gradient elements. shape optimization.py - Orchestrates all SU2 modules to perform shape optimization. The choice of objective function, design variables and additional module settings specifying the optimization problem are controlled through options in the conguration le. Automatic dierentiation scripts. A combination of python scripts and the automatic dierentiation tool Tapenade25 can be used by developers to create dierentiated versions of code sections in SU2 . convert routines cpp2c.py - Uses custom comment lines in the SU2 C++ source code to create a C version of desired routines, replacing the class structure by simply passing required variables to the new routine. dierentiate routines.py - Calls Tapenade to dierentiate a C routine. convert routines c2cpp.py - Converts a dierentiated C routine back to C++ code, restoring the class structure that existed before in the SU2 source code. insert routines.py and insert math.py - Inserts the dierentiated C++ code into source les between custom comment lines. General utility scripts.
6 of 59 American Institute of Aeronautics and Astronautics
autotest.py - This script performs automated regression tests of the SU2 suite after every commit to the central software repository (continuous integration). Established test cases are executed, and the output is compared against known results. Any discrepancies are immediately reported to the developers. These regression tests help ease the integration of new capabilities while preserving previous functionality in the software. cong gui.py - This graphical interface is provided to ease the creation and modication of SU2 conguration les. The script reads the permitted options directly from the source code, groups them based on functionality, and provides a drop-down menu for enumerated types. B. C++ class structure
The objective of this section is to introduce the C++ class structure of SU2 . The class descriptions below focus on the structure within SU2 CFD (the main component of SU2 ), but most of the classes are also used in the other modules. Maximizing the exibility of the code was a fundamental driver for the design of the class architecture, and an overview of it is shown in Fig. 1.
As a starting point, the module SU2 CFD instantiates three basic classes, namely: CCong - Reads the problem description including all options and settings from the input le (extension .cfg). COutput - Writes the output of the simulation in a user-specied format (Paraview, Tecplot, or commaseparated values). CIntegration - Solves the particular governing equations by calling the child class CMultiGridIntegration. This is used for both multigrid and single-grid calculations and connects the subclasses CGeometry, CSolution and CNumerics for performing integration in time and space. The core capabilities of the computational tool are embedded within the CGeometry, CSolution and CNumerics classes that manage the geometry, the main solver functionality, and the numerical methods, respectively. In the next subsection, these three classes will be discused in detail.
7 of 59 American Institute of Aeronautics and Astronautics
1.
CGeometry class
This class reads and processes the input mesh le (extension .su2), and it includes several child classes, such as: CPhysicalGeometry - Constructs the dual mesh structure from the primal mesh. Note that the FVM formulation in SU2 is based on this dual mesh. CMultiGridGeometry - Creates consecutively coarser meshes from the original input mesh for multigrid calculations. CPrimalGrid and CDualGrid - Two classes (see Fig. 2) used for dening all the geometrical characteristics of the primal and dual grids.
2.
CSolution class
In this class, the solution procedure is dened. Each child class of CSolution represents a solver for a particular set of governing equations. One or more of these child classes will be instantiated depending on the desired physics, and several examples are: CEulerSolution - For the Euler equations. CTurbSolution - For a turbulence model. CPlasmaSolution- For the reacting ow equations. CAdjEulerSolution - For the adjoint equations of the Euler equations. These subclasses call several classes in CNumerics to discretize the governing equations and potentially the CSparseMatrix class to solve the linear system of equations, if necessary. A detailed list of all child classes found within CSolution is given in Fig: 3, but in general, these subclasses instantiate copies of two other classes: CVariable - Used to store variables at every point in the grid, such as the conservative variables. Depending on the system of equations being solved, CVariable instantiates a certain child class and stores a set of variables particular to that problem at each grid node. For example, the CNSVariable child class stores the variables for the Navier-Stokes equations which will include viscosity, while the CEulerVariable child class does not need to store viscosity. A detailed list of all these child classes is given in Fig. 3. CSparseMatrix - Stores values for the Jacobians of uxes and source terms in a sparse matrix structure for implicit calculations. It includes various methods for solving a linear system such as LU-SGS, BiCGSTAB, GMRES, among others, in addition to several preconditioning techniques such as Linelet or Jacobi preconditioning.
Figure 3. List of child classes for the CSolution and the CVariable classes. A few of the child classes have their own children, such as CEulerSolution, which has the class called CNSSolution that inherits all the characteristics of CEulerSolution in addition to those that are specic to it (viscous methods). The CTemplate child class is a template for adding future capabilities.
Figure 4. List of child class capabilities found under the CNumerics parent class. The CTemplate child class is a template for adding future capabilities.
3.
CNumerics class
This class discretizes each system of governing equations using the numerical schemes specied in the input le. There are several child classes which provide a wide range of discretization techniques for convective uxes, viscous uxes and any source terms present. For example, if one is interested in solving for a plasma ow, CNumerics would call one child class corresponding to the convective scheme, one corresponding to the viscous terms and a third for the discretization of the chemical source terms. For instance, in an implicit calculation, methods in these classes calculate the residuals and Jacobians at each node (using the variables stored in the CVariable class) and feed the results back to CSolution which then calls routines within CSparseMatrix to solve the resulting linear system of equations. Fig. 4 shows a list of the various capabilities in the CNumerics class.
As an example of the complete class architecture instantiated for a specic set of governing equations, Fig. 5 shows the structure for a simulation of the RANS equations with explicit time integration. It is important to highlight that these equations are solved as a multiphysics problem (i.e., the mean ow and turbulence model equations are solved separately and coupled). Therefore, two child classes are instantiated from CSolution (CNSSolution and CTurbSolution) as well as from CVariable (CNSVariable and CTurbVariable). C. 1. File input/output Conguration le
The conguration le is a simple text le (extension .cfg) that sets the options for the SU2 suite. The conguration le consists of three possible elements: Options - An option in the le has the following syntax: option name = value, where option name is the name of the option and value is the desired option value. The value element may be a scalar data type, a list of multiple data types, or a more complicated structure. The = sign must immediately follow the option name element and is not optional, though spaces and tabs between the various value elements are not signicant. Lower, upper, or mixed-case strings are allowed.
Comments - On a single line, any text appearing after a % is considered a comment and is ignored by SU2 . Additional % signs after the rst appearance on any line are not signicant. White space - Empty lines are ignored. On text lines that dene options, white space (tabs, spaces) can be used to format the appearance of the le. 2. Mesh le native format (.su2)
In keeping with the open source nature of the project, SU2 relies mostly on its own native mesh format, which is meant to be simple and readable. SU2 meshes carry an extension of .su2, and the les are in ASCII format. As an unstructured code, the suite requires information about both the node locations as well as their connectivity, which provides information about the types of elements (triangle, rectangle, tetrahedron, hexahedron, etc.) that make up the volumes in the mesh and also which nodes make up each of those elements. Lastly, the boundaries of the mesh, or markers, are given names, or tags, and their element connectivity is specied in a similar manner as that of the interior elements. The rst line of the .su2 mesh declares the dimensionality of the problem. SU2 can handle two- or three-dimensional geometries, but note that for two-dimensional simulations, it is recommended that a truly two-dimensional mesh is used (no z-coordinates) rather than a quasi-two-dimensional mesh (one or more cells deep in the third dimension with symmetry boundary conditions). The next part of the le describes the interior element connectivity. SU2 is based on unstructured mesh technology and thus supports several element types for both two-dimensional and three-dimensional elements. Unlike for structured meshes where a logical, ordered indexing can be assumed for neighboring nodes and their corresponding cells (rectangles in two-dimensions and hexahedral elements in three-dimensions), for an unstructured mesh, a list of nodes that make up each element must be provided. On each line in the connectivity section of the mesh le, following an identier of the element type is a list of the node indices that make up the element. Each triangular element will have three nodes specied, a rectangular element will have four nodes specied, a tetrahedral element will have four nodes specied and so on. The nal value is the element index given to each interior element in the mesh. After the connectivity information for all interior elements, the coordinates for each of the nodes are given. Immediately after the node number specication comes the list of node coordinates in cartesian (x,y,z) space. Each line gives the coordinates for a single node followed by its unique index number. The node index numbers are the indices used for specifying the connectivity information for elements. For a two-dimensional mesh, the x and y coordinates are given followed by the index, but a three-dimensional mesh would give x, y, and z, followed by the index. The nal section of the mesh le is a description of all boundaries (which we call markers), including a name (called a tag). For each boundary, the connectivity information is given based on the index given to each node. For a two-dimensional mesh, only line elements are possible along the boundaries, but for a three-dimensional mesh, there are two possible options for boundary elements: triangular and rectangular. First, the number of boundaries, or markers, is specied. Then for each marker, a name, or tag, is specied. This tag can be any string name, and the tag name is used in the conguration le for the solver when specifying boundary conditions. The number of elements on each marker must then be specied before listing the connectivity information as was done for the interior mesh elements at the start of the le. Again, the unique VTK29 identier is given at the start of each line followed by the node list for that element. 3.
2
SU is currently capable of outputting solution les that can be visualized with either ParaView (.vtk) or Tecplot (.plt). At the end of each simulation, the software creates several les that contain all of the necessary information for both visualization and restart, and the default names of these les can be changed in the conguration le. For unsteady ows, activating the unsteady writing option in the conguration le will automatically increment the le names with the corresponding time step number and prepare the le for animation within visualization software. For a direct ow solution, these les are: ow.plt or ow.vtk - Full volume ow solution. surface ow.plt or surface ow.vtk - Flow solution on specied surfaces.
11 of 59 American Institute of Aeronautics and Astronautics
surface ow.csv - Comma separated values (.csv) le containing values on specied surfaces. restart ow.dat - Restart le in a native format for restarting simulations in SU2 . history.plt or history.csv - File containing the convergence history information. For adjoint solutions, the default le names are slightly dierent: adjoint.plt or adjoint.vtk - Full volume adjoint solution. surface adjoint.plt or surface adjoint.vtk - Adjoint solution on specied surfaces. surface adjoint.csv - Comma separated values (.csv) le containing values on specied surfaces. restart adj cd.dat - Restart le in a native format for restarting simulations in SU2 . Note that the name of the objective function appears in the le name. history.plt or history.csv - File containing the convergence history information. It is important to highlight that SU2 also uses a simple and readable format for the restart les. The SU solution le carries the extension .dat, and the les are in ASCII format. The solution is provided at each node in the numerical grid, and no information about the connectivity or coordinates is included in the le. For the sake of clarity, the node index is provided at the beginning of each line, though this index value is not used by the code and the ordering of the points is (and must be kept) the same as in the mesh le. The restart les are used not only to restart the code from a previous solution but also to run adjoint simulations, which require a converged ow solution.
2
III.
Modeling
The exible class structure of SU2 has been designed to solve problems dened on a domain R3 , delimited by disconnected boundaries. In particular, the PDE system resulting from physical modeling of the problem should have the following structure: t U + F c F v = Q in , (1)
with appropriate boundary and temporal conditions that will be problem-dependent. In this general framework, U represents the vector of state variables, F c (U ) are the convective uxes, F v (U ) are the viscous uxes and Q(U ) is a generic source term. In this section, some of the most important physical system already implemented in SU2 will be described using the Eq. 1 as baseline PDE. A. Reynolds-averaged Navier-Stokes (RANS) equations
Several forms of the RANS equations have been implemented in SU2 , and a brief description of the physics involved and the corresponding governing equations is given below for each. Naturally, both the laminar Navier-Stokes and Euler equations are also available in the code as subsets of the RANS equations by disabling turbulence modeling and by completely removing viscosity, respectively. 1. Compressible formulation
Classic aeronautical applications assume that the air is governed by the compressible Navier-Stokes equations49 which describe the conservation of mass, momentum, and energy in a viscous uid. In the SU2 framework, the vector of conservative variables is U = (, v1 , v2 , v3 , E )T , where is the density, E is the total energy per unit mass, and vi = (v1 , v2 , v3 ) R3 is the ow velocity in a Cartesian coordinate system. In this particular model, convective and viscous uxes are then given by Fic = vi vi v1 + P i1 vi v2 + P i2 vi v3 + P i3 vi H , Fiv = i1 i2 i3 vj ij + tot Cp i T , i = 1, . . . , 3 (2)
where P is the static pressure, H is the uid enthalpy, ij is the Kronecker delta function, and the viscous 2 ij v . Recall that latin indices i, j denote 3-D stresses may be written as ij = tot j vi + i vj 3 Cartesian coordinates with repeated indices implying summation. In these formulas, Cp is the specic heat at constant pressure, T = P/(R) is the temperature and R is the gas constant, such that for an ideal gas, Cp = R/( 1), with being a constant. In order to close the system of equations, the dynamic viscosity, dyn , is assumed to satisfy Sutherlands law,96 the turbulent viscosity tur is computed via a turbulence model, and tot = dyn + tur , tot = tur dyn + , P rd P rt (3)
where P rd and P rt are the dynamic and turbulent Prandtl numbers, respectively. The compressible RANS solver in SU2 currently supports the following boundary condition types: Euler (ow tangency) and symmetry wall, no-slip wall (adiabatic and isothermal), far-eld and near-eld boundaries, characteristic-based inlet boundaries (stagnation, mass ow, or supersonic conditions prescribed), characteristic-based outlet boundaries (back pressure prescribed), periodic boundaries, nacelle inow boundaries (fan face Mach number prescribed), and nacelle exhaust boundaries (total nozzle temp and total nozzle pressure prescribed). An important consideration when solving the Navier-Stokes equations is the non-dimensionalization. The particular scheme chosen for SU2 can be found in Tables 1, 2 and 3, and is based on the internal document Non-dimensionalization of the Navier-Stokes Equations written by Prof. Feng Liu.
Variables Length Pressure Density Temperature Velocity Time Dynamic viscosity Rotor speed External body force
SU2 value lref (input) pref (input) ref (input) Tref (input) uref = pref /ref tref = lref /uref ref = ref uref lref ref = uref /lref bref = u2 ref /lref
Table 1. Basic independent variables for which the reference values can be arbitrarily chosen.
Variables Kinematic viscosity Strain rate Stress Specic energy Specic enthalpy Specic entropy Heat ux Gas constant heat capacity Heat capacity Heat conductivity Turbulent kinetic energy Turbulent specic dissipation
SU2 value ref = ref /ref Sref = uref /lref ref = pref eref = u2 ref href = eref sref = eref /Tref qref = ref eref uref Rref = eref /Tref cp ref = Rref cv ref = Rref kref = cp ref ref kref = u2 ref ref = uref /lref
SI m2 /s 1/s N/m2 J/kg J/kg J/(kg.K) J/(m2 .s) J/(kg.K) J/(kg.K) J/(kg.K) W/(K.m) J/kg 1/s
Table 2. Derived variables whose reference values are determined from the choice of the basic independent variables in Table 1.
2.
Incompressible formulation
The incompressible solver in SU2 is based on the articial compressibility formulation developed by Chorin12 (valid for steady-state only), and it uses the following set of state variables U = (P, v1 , v2 , v3 )T , where P is the pressure and vi = (v1 , v2 , v3 ) R3 is the ow velocity in a Cartesian coordinate system. The convective and viscous uxes are then given by 2 vi vi v1 + P i1 i v1 Fic = (4) , Fiv = tot , Q = , i = 1, . . . , 3 vi v2 + P i2 i v2 F vi v3 + P i3 i v3 r2 where the articial compressibility parameter is denoted by 2 , F r is the Froude number, and the total viscosity is computed as tot = dyn + tur . The density and viscosity are inside the dierential operators because their value change across a free-surface interface (already implemented in SU2 ). The incompressible solver in SU2 currently supports the following boundary condition types: Euler (ow tangency) wall, no-slip wall (adiabatic), far-eld and symmetry boundaries, inlet boundaries (total conditions or mass ow prescribed), and outlet boundaries (back pressure prescribed).
Variables Ratio of specic heats Dimensionless gas constant Molecular Prandtl number Turbulent Prandtl number Strouhal number Euler number Reynolds number Rossby number Froude number
SU2 value = Cp /Cv (input) R = R /Rref (input R ) P rl = Cp /k (input) P rt = Cp t /kt (input) (St)ref = lref /(uref tref ) = 1 (Eu)ref = pref /(ref u2 ref ) = 1 (Re)ref = ref uref lref /ref = 1 (Ro)ref = uref /(ref lref ) = 1 (F r)ref = uref / bref lref = 1
3.
Turbulence modeling
In accord with the standard approach to turbulence modeling based upon the Boussinesq hypothesis,97 which states that the eect of turbulence can be represented as an increased viscosity, the total viscosity is divided into a laminar, dyn , and a turbulent, tur , component. The laminar, or dynamic, viscosity is usually taken to be a function of temperature only, dyn = dyn (T ), whereas tur is obtained from a suitable turbulence model involving the ow state, U , and a set of new variables. The turbulence model and mean ow equations are coupled by replacing the dynamic viscosity in the Navier-Stokes momentum and energy equations with dyn tur tot = dyn + tur , + , (5) tot = P rd P rt where P rd and P rt are the dynamic and turbulent Prandtl numbers, respectively. Spalart-Allmaras (S-A) Model: In the case of the one-equation Spalart-Allmaras83 turbulence model, the turbulent viscosity is computed as tur = fv1 , fv1 = 3 dyn 3 , = , = . + c3 v1 (6)
The new variable is obtained by solving a transport equation where the convective, viscous, and source terms are given as follows: F c = v , Fv = + , Q = cb1 S cw1 fw
fv 2 2 d2 S
dS
cb2 | |2 ,
(7)
is dened as S = | | + where the production term S distance to the nearest wall, and fv2 = 1 where g = r + cw2 (r r) and r =
6 2 d2 . S S 1+fv1 .
Finally, the set of closure constants for the model is given by cb1 1 + cb2 + , cw2 = 0.3, cw3 = 2, cv1 = 7.1. 2 (8)
The physical meaning of the far-eld boundary condition for the turbulent viscosity is the imposition of some fraction of the laminar viscosity at the far-eld. Therefore, is typically a constant ranging between 3 and 5. On viscous walls, is set to zero, corresponding to the absence of turbulent eddies very near to the wall. Menter Shear Stress Transport (SST) Model: The Menter SST turbulence model61 is a two equation model for the turbulent kinetic energy k and specic dissipation that consists of the blending of the traditional k and k models. The denition of the eddy viscosity, which includes the shear stress limiter, is shown below. a1 k tur = . (9) max(a1 , SF2 )
15 of 59 American Institute of Aeronautics and Astronautics
where S = 2Sij Sij and F2 is the second blending function. The convective, viscous and source terms for the turbulent kinetic energy follow, F c = kv, F v = ( + k t )k, Q = P k, (10)
where P is the production of turbulent kinetic energy. The convective, viscous and source terms for the specic dissipation follow, F c = v, F v = ( + t ), Q= 2 P 2 + 2 (1 F1 ) k , t (11)
where F1 is the rst blending function. The values for the constants and the forms for the blending functions and auxiliary relations are detailed in Rumsey.75 The Menter SST and the S-A turbulence models are the two most common and widely used RANS models for the analysis and design of engineering applications aected by turbulent ows. 4. Transition model
The Ret SA transition model60 is an adaptation of the model of Langtry and Menter.50 It is a correlation-based model that augments the Spalart-Allmaras turbulence model with two equations. The rst is for intermittency, , a quantity that varies from 0 in laminar regions to 1 in fully turbulent regions of the ow. The convective, viscous, and source terms for the transport of are F c = v, F v = ( + t ), f Q = P D , (12)
where the source terms P and D are obtained from correlations. The second equation is for local onset momentum thickness Reynolds number, Ret . Its convective, viscous, and source terms are F c = Ret v, F v = t ( + t )Ret , Q = Pt , (13)
where once again the production term Pt is obtained from correlation. The source terms for the Spalart-Allmaras equation are modied to depend on intermittency as follows Q = ef f cb1 S max(min(, ), 1.0) cw1 fw dS
2
cb2 | |2 .
(14)
For details, including correlations and closure constants, the reader is referred to Medida et al. and Langtry et al.. 5. Rotating frame and arbitrary Lagrangian-Eulerian (ALE) formulations
When simulating uid ow about certain aerodynamic bodies that operate under an imposed steady rotation, including many turbomachinery, propeller, and rotor applications, it can be advantageous to transform the system of ow equations into a reference frame that rotates with the body of interest.28, 19, 18 With this transformation, a ow eld that is unsteady when viewed from the inertial frame can be solved for in a steady manner, and thus more eciently, without the need for grid motion. After performing the appropriate transformation into a reference frame that rotates with a steady angular velocity, = (1 , 2 , 3 ) R3 , and a specied rotation center, ro = (xo , yo , zo ) R3 , the convective uxes of the compressible equations are modied and a new source terms appears as (v ur ) 0 F c = v (v ur ) + IP , Q = ( v ) , H (v ur ) + P ur 0 where is the uid density, v = (v1 , v2 , v3 ) R3 is the absolute ow velocity, H is the total enthalpy per unit mass, P is the static pressure, and ur is the velocity due to rotation (ur = r). Here, r is the position vector pointing from the rotation center to a point (x, y, z ) in the ow domain, or r = ((x xo ), (y yo ), (z zo )). The velocity due to rotation is also sometimes called the whirl velocity. The viscous terms remain the same
16 of 59 American Institute of Aeronautics and Astronautics
as in the inertial frame. The modied ow tangency wall boundary condition is (v ur ) nS = 0 for inviscid ows, and the no-slip wall boundary condition is v = ur . It is important to note that not all simulations of rotating bodies can benet from this solution approach. The ow eld must be steady in the rotating frame, and some conditions or geometric features, such as relative surface motion, can cause unsteadiness for rotating bodies. Furthermore, many unsteady ows of interest, such as pitching, plunging, or rotating surfaces, require solutions on arbitrarily moving grids. For that reason, an Arbitrary Lagrangian-Eulerian (ALE) formulation30, 20 has also been implemented in SU2 . In this formulation, the convective uxes are adjusted to take into account the grid motion: (v ub ) (15) F c = v (v ub ) + IP , E (v ub ) + P v where ub is the boundary velocity for a control volume in motion. The viscous terms again remain the same as in the xed domain, but unlike the rotating frame formulation, there is no additional source term. The modied ow tangency wall boundary condition is (v ub ) nS = 0 for inviscid ows, and the no-slip wall boundary condition is v = ub . B. Free-surface solver
The free-surface solver in SU2 is based on the incompressible solver while allowing the density and the viscosity to change depending on the position of the free-surface. To identify the free-surface, a level set80 function, , is used to track the interface between the gas and the liquid.84, 67 In particular, the interface will be the zero level set of , and the level set function will be positive in the gas and negative in the liquid. The level set variable, , should satisfy the following transport equation (written in terms of our baseline model): F c (v, ) = v, Q = ( 0 ) , (16) where 0 = 0 (x) is the initial distance from the free-surface to the boundaries and is a damping factor only activated near the inlet and outlet. The level set equation simply states that the interface moves with the uid. The values of the density and laminar viscosity are dened using an approximation of the Heaviside function H = H (, ): if < , 1 H () = 1
1 2
1+
sin(/ )
if || , if > ,
(17)
where
is a measure of the interface thickness. Finally, density and viscosity are computed as: () = H () + g l (1 H ()), () = H () + g l (1 H ()), (18)
where the subscripts g and l denote gas and liquid, respectively. C. 1. Wave equation Ffowcs Williams-Hawkings (FW-H) equation
For aeroacoustic problems, perturbations in density, where (x, t) = (x, t) , form the longitudinal waves that are perceived as sound. Consider an aerodynamic body immersed in an unbounded volume of uid, . A ctitious, near-eld control surface, nf , is placed near the body, and the uid domain is therefore divided into two regions, labeled 1 and 2 . As a mathematical convenience, we dene the shape of nf by a function, f = 0, such that f < 0 inside the body and f > 0 outside the body. We also assume that (f ) is in the direction of the outward normal, such that (f ) = nnf |(f )|. Furthermore, nf can be in motion with arbitrary boundary velocity, ub .
Following the derivation by Ffowcs Williams and Hawkings,22 the permeable surface version of the FW-H equation can be formulated as 2 c2 2 t2 = {[(v ub ) + ub ] (f ) (f )} t (f ) (f ) + 2 T in , t > 0, v (v ub ) + Ip
(19)
where, in this case, (f ) is the Dirac delta function involving the near-eld surface and not the variation of f . (2) The nomenclature [ ](1) represents the jump between regions 2 and 1 . The terms appearing on the right hand sides can be thought of as sources concentrated at the surface, nf , which are required to maintain 2 conservation for the unbounded uid. The speed of sound is taken as a constant, c, and T = v v + P Ia is the Lighthill stress tensor that represents the dierence between the stress state in the real uid and that in the acoustic medium. Here we see that the propagation of sound generated by aerodynamic surfaces in arbitrary motion is governed by the wave equation, and the sound generation processes are composed of three types of sources on the right hand side: a mass displacement eect by the surface with monopole character (thickness noise, rst term), a surface distribution of dipoles (loading noise, second term), and a distribution of quadrupole noise sources throughout the volume exterior to the surface (third term). For simplicity, the source terms will be lumped together as a single term, Q, giving the following expression for the convective, viscous, and source terms: U= , Fiv = c i
2
Q=
i = 1, . . . , 3
(20)
where the time discretization is performed by splitting the original equation into two partial dierential equations where only a rst order time derivative appears. 2. Linear elasticity equation
The equations of linear elasticity99 govern small displacements, V = (u1 , u2 , u3 )T , of an elastic solid subject to body forces and surface tractions. If the inertial terms are included, the linear elasticity equation can be written as 2V = f in , t > 0, (21) t2 with f being a body force and the stress tensor given in terms of the strain tensor, , by the constitutive relation E E 1 , = , (22) = T r( )I + 2 , = (u + uT ), = 2 (1 + )(1 2 ) 2(1 + ) where T r is the trace, and are the Lam e constants, E is the Youngs modulus, and is Poissons ratio. E > 0 may be thought of as the stiness of the material, where a large value of E indicates rigidity. Poissons ratio, , is a measure of how much the material shrinks in the lateral direction as it extends in the axial direction. The following expression for the convective, viscous, and source terms will be used: u1 1 u2 2 u3 3 v U = (23) , Fi = , Q = f . i = 1, . . . , 3 1 i1 1 2 i2 f2 3 i3 f3 D. Heat equation
The heat equation describes the distribution of heat in a given region over time. Using the baseline equation, the dierent terms of the heat equation are U = T, Fiv = i T, Q = q, i = 1, . . . , 3 (24)
where T is the temperature, q is a heat source, and = k/Cp is the thermal diusivity, a material-specic quantity depending on the thermal conductivity k , the mass density , and the specic heat capacity Cp . Dirichlet or Neumann boundary conditions are admissible in this model. E. Gausss law
Gausss law is a part of the Maxwells equations and relates the distribution of electric charge to the resulting electric eld. Using the baseline equation, the dierent terms of the Gausss law equation are F v = E, Q=
0
(25)
where E is the electric eld, is the net electric charge density, and 0 is the permittivity of free space. Dirichlet or Neumann boundary conditions are admissible in this model. F. Plasma equations
Due to the complexity of the plasma model chosen for use in SU2 , in this section we will present only a basic description, and the interested reader is referred to several publications using the present formulation.53, 56, 15, 1, 9, 51, 69, 91 SU2 solves a full set of ow equations for each chemical species in the plasma and does not use any diusion models to calculate species velocity. The ow equations are tightly coupled with Gausss law for calculation of the electric eld generated by any local separation of charge. Given a plasma with nS number of chemical species, the dierent terms are given as: v c Q1 F1 F1 U1 v c Q2 F2 F2 U2 v c , (26) , Q = , F = , F = U = . . . . . . . . . . . . UnS
c FnS v FnS
QnS
where the conservative variables are Us = (s , s us , s Es , s evs )T and s us w s u u + Ip Q + Femf,s s s s u,s c v Fs = s s = , Fs , Qs = s us + ks Ts Qu,s us + QT,s + Wemf,s s Hs us s evs us + qvs Qv,s + w s e vs
, (27)
where the vector of source terms, Q, includes the eects of nite rate chemistry, momentum, and energy exchange by collision and electromagnetic elds. The rate of production of mass by nite rate chemistry is given by w s , the rate of momentum exchange per unit volume by inter-species collision is Qu,s and QT,s is the rate of energy transfer per unit volume by inter-species collision. Qv,s is the rate of vibrational energy by inter-species collision between diatomic species. The momentum transfer per unit volume by force exerted on charged particles in the presence of electromagnetic elds is given by Femf,s , and the term Wemf,s is the work done per unit volume in this process. The plasma solver in SU2 supports the following boundary conditions: Euler (ow tangency), and symmetry wall, no-slip (adiabatic, isothermal and catalytic), far-eld and near-eld characteristics and periodic boundary conditions. A detailed description of each of these terms and the catalytic wall boundary condition for this particular formulation of the governing equations wherein a full set of ow equations is solved for each species has been given by Lonkar et al.53
IV.
Numerics
In this section the main numerical algorithms of SU2 will be described with a particular emphasis on the uid dynamics solver, the grid adaptation capability, and the design methodology. A. Space integration
Partial Dierential Equations (PDE) in SU2 are discretized using a nite volume method4, 27, 72, 35, 52, 95, 33, 34, 86 (a nite element method is also available) with a standard edge-based discretization on a dual grid with control volumes constructed using a median-dual vertex-based scheme as shown in Fig. 6. Median-dual control volumes are formed by connecting the centroids, face, and edge-midpoints of all cells sharing the particular node. The semi-discretized integral form of a typical PDE (like the ones described in the section on modelling) is given by, U d + t c + F v )Sij Q|i | = (F ij ij
j N (i) i
U d + Ri (U ) = 0, t
(28)
c and F v are the numerical where U is a vector of the state variables, and Ri (U ) is the residual. F ij ij approximation of the convective and viscous uxes respectively and Qi is a vector of the source terms. Sij is the area of the face associated with the edge ij , i is the volume of the control volume and N (i) are the neighboring nodes to node i.
Figure 6.
Schematic of the primal mesh and the control volume on a dual mesh.
The convective and the viscous uxes are evaluated at the midpoint of an edge. The numerical solver loops through all the edges in the primal mesh to calculate the uxes and integrates them to evaluate the residual, at every node of the numerical grid. In the following subsections some of the most important numerical algorithms in SU2 will be described. 1. Integration of convective uxes
The convective uxes can be discretized using central or upwind methods in SU2 . Several numerical schemes have been implemented, but this section will focus on two classical numerical schemes (Roe, and JST). The ux-dierence-splitting scheme by Roe74 evaluates the convective uxes from ow quantities reconstructed separately on both sides of the face of the control volume from values at the surrounding nodes: c = F (Ui , Uj ) = F ij Fic + Fjc 2 1 nij P ||P 1 (Ui Uj ), 2 (29)
where Ui is the vector of the conserved variables at point i and Fic is the convective ux at node i. P is the matrix of eigenvectors of the Jacobian matrix, constructed using the Roe averaged variables, and || is a diagonal matrix with entries corresponding to the absolute value of the eigenvalues of this Jacobian matrix. The outward unit normal, nij is associated with the face between nodes i and j . This discretization is rst order accurate in space. Second order accuracy is easily achieved via reconstruction of variables on the cell interfaces by using a Monotone Upstream-centered Schemes for Conservation Laws (MUSCL) approach90 with limitation of gradients.
20 of 59 American Institute of Aeronautics and Astronautics
The JST scheme40 uses a higher-order articial dissipation, computed using the dierences in the undivided Laplacians (higher order) of connecting nodes and the dierence in the conserved variables (lower order) on the connecting nodes. The two levels of dissipation are blended by using the typical pressure switch for triggering lower-order dissipation in the vicinity of shock waves. The nal expression for the numerical ux using the JST method on unstructured meshes is: c = F (Ui , Uj ) = F c F ij Ui + Uj 2 nij dij . (30)
The articial dissipation dij along the edge connecting nodes i and j can be expressed as dij = ij (Uj Ui ) ij (2 Uj 2 Ui ) ij ij ,
(2) (4)
(31)
where the undivided Laplacians, local spectral radius, stretching in the grid and pressure switches are computed as 2 Ui ij ij ij
(2)
=
kN (i)
(33)
i 4ij
(34)
(2) s2
kN (i)
(pk pi ) /
(pk + pi ) ,
kN (i)
(35)
where N (i) represents the set of neighboring points to node i, pi is the pressure at node i, s2 and s4 are stretching parameters and (2) , (4) are adjustable parameters. 2. Integration of viscous uxes
In order to evaluate the viscous uxes using a nite volume method, ow quantities and their rst derivatives have to be known at the faces of the control volumes. The values of the ow variables, including the velocity components, the dynamic viscosity and the heat conduction coecient k , are averaged at a face in SU2 . The gradients of the ow variables are calculated using a Green-Gauss method over the cell nodes and then averaged to obtain the gradients at the cell faces. The following correction94 is applied in order to reduce the truncation error of the scheme: nij = j i 1 f + (|i + |j ) (n f s), |xj xi | 2 (36)
where nij is the face normal and s is the normalized vector connecting the cell centroid across the face, |xj xi | is the distance between node i and j and f is chosen to be the dot product f = s nij . The gradients |i at node i can be computed using either the Green-Gauss or least-squares theorems. A Finite Element Method (FEM) is also available to numerically evaluate the Laplacian operator. Finite element methods are based upon approximations to a variational formulation of the problem. A variational formulation requires the introduction of a space of trial functions, T = {V (t, x)}, and a space of weighting functions W = {W (t, x)}. The problem consists of nding V (t, x) in T satisfying the problem boundary conditions, such that W T 2 V
d = 0.
(37)
To produce an approximate solution to the variational problem, a grid of nite elements is constructed on the domain . It will be assumed that the discretization employs p nodes. Finite-dimensional subspaces T (p) and W (p) of the trial and weighting function spaces, respectively, are dened by
p p
(p)
(p)
(x) | V
(p)
=
J =1
VJ NJ (x) , W
( p)
(p)
(x) | W
( p)
=
J =1
aJ NJ (x) ,
(38)
where VJ is the value of V (p) at node J . On the other hand, a1 , a2 , . . . , ap are constant and NJ (x) is the piecewise linear trial function associated with node J . We now apply the nite element approximation by discretizing the domain of the problem into elements and introducing functions which interpolate the solution over nodes that compose the elements. The Galerkin approximation is determined by applying the variational formulation of Eq. 37 in the following form: nd V (p) in T (p) , satisfying the problem boundary conditions, such that
T NI 2 V
d = 0,
(39)
for I = 1, 2, ..., p. The form assumed for V (p) in Eq. 38 can now be inserted into the left hand side of Eq. 39 and the result can be written as
p T NI J =1 p
V J 2 NJ
d =
J =1
VJ
T 2 NI NJ d
= 0.
(40)
VJ
J =1
T NI (NJ ) d
T NI NJ d
= 0,
(41)
where the boundary integral disappears unless we are computing a boundary element with non-homogeneous Neumann conditions (I is an exterior node). The result at a typical interior node I is VJ
E I J E E T NI NJ d
= 0,
(42)
where the rst summation extends over the elements E in the numerical grid which contain node I and the second summation extends over nodes J of the elements E . E is the portion of which is represented by element E . 3. Source term integration
Source terms are approximated using piecewise constant reconstruction within each of the nite volume cells. The source terms plays a fundamental role in the plasma simulation (chemical reactions), free-surface problems (gravity eects), or in the formulation of turbulence and transition models. B. 1. Time integration Steady simulations
Eq. 28 has to be valid over the whole time interval, so one has to make the choice of evaluating Ri (W ) either at time tn (explicit methods) or tn+1 (implicit methods). Focusing on the implicit integration (SU2 also has a R-K explicit method), the easiest way to discretize the system is by using an implicit Euler scheme dUi U d + Ri (U ) |i | + Ri (U ) = 0 t dt |n i| Uin = Ri (U n+1 ), t n i (43)
where Uin = Uin+1 Uin . However, residuals at time n + 1 are unknown, and linearization about tn is needed: Ri (U n+1 ) = Ri (U n ) + Ri (U n ) n ti + O(t2 ) = Ri (U n ) + t Ri (U n ) n Uj + O(t2 ). Uj (44)
j N (i)
Finally, the following linear system should be solved to update the solution |i | Ri (U n ) + ij t n Uj i
n Uj = Ri (U n ),
(45)
ij has a stencil of point {i, j }, then contributions are made to the Jacobian at four points: where if a ux F .. . ij ij F F Ui Uj R R . . .. . . (46) := + . . . . U U ij ij F F Ui Uj .. . Note that, despite a implicit scheme being unconditionally stable, a specic value of tn i is needed to relax the problem. Specically, SU2 uses a local-time-stepping technique to accelerate convergence to a steady state. Local-time-stepping allows each cell in the mesh to advance at a dierent local time step. Calculation of the local time step requires the estimation of the eigenvalues and rst-order approximations to the Jacobians at every node i according to ti = NCF L min |i | |i | , visc , conv i i (47)
where NCF L is the Courant-Friedrichs-Lewy number, |i | is the volume of the cell i and conv is the integrated i convective spectral radius21 computed as conv = i (|uij nij | + cij )S,
j N (i)
(48)
where uij = (ui + uj )/2, and cij = (ci + cj )/2 denote the velocity and the speed of sound at the cell face. nij denotes the normal direction of the control surface and S , its area. On the other hand, the viscous spectral radius visc is computed as i ij 2 visc = C S , (49) i ij ij
j N (i)
where C is a constant, ij is the sum of the laminar and eddy viscosities in a turbulent calculation and ik is the density. 2. Unsteady simulations
A dual time-stepping strategy32, 39 has been implemented to achieve high order accuracy in time. In this method, the unsteady problem is transformed in a steady problem at each time interval. The steady state problem can be solved using all of the well known convergence acceleration techniques for these kinds of problems. The current implementation of the dual-time stepping solves the following problem U + R (U ) = 0, where R (U ) = 3 1 U+ 2t ||n+1 R (U ) 2 n n 1 U | | + U n1 ||n1 , t 2t (50)
(51)
where t is the physical time step, is a ctitious time used to converge the steady state problem, R(U ) denotes the residual of the equation, and U = U n+1 once the steady problem is computed. 3. Linear solvers
The SU2 framework includes implementation of several linear solvers for solving Eq. 45. Specically, the following methods are available: The Lower-Upper Symmetric-Gauss-Seidel (LU-SGS) method.98, 44, 41 This is a stationary iterative method that is based on a measurement of the error in the result (the residual), used to form a correction equation.
23 of 59 American Institute of Aeronautics and Astronautics
The Generalized Minimal Residual (GMRES) method,76 which approximates the solution by the vector in a Krylov subspace with minimal residual. The Arnoldi iteration is used to nd this vector. The Biconjugate Gradient Stabilized (BiCGSTAB) method,89 also a Krylov subspace method. It is a variant of the biconjugate gradient method (BiCG) and has faster and smoother convergence properties than the original BiCG. C. Convergence acceleration techniques
In this section some of the most important convergence acceleration techniques of SU2 will be described: Multigrid and linelet techniques, followed by the Roe-Turkel preconditioning for low Mach numbers. It is fundamental to note that, due to the modular structure of SU2 , these methods are shared by all the solvers in the code. 1. Non linear multigrid method
The multigrid method generates eective convergence at all length scales of a problem by employing a sequence of grids of varying resolution. Simply stated, the main idea is to accelerate the convergence of the numerical solution of a set of equations by computing corrections to the ne-grid solutions on coarse grids and applying this idea recursively.38, 58, 57, 6, 65 It is well know that, owing to the nature of most iterative methods/relaxation schemes, high-frequency errors are usually well damped, but low-frequency errors (global error spanning the solution domain) are less damped by the action of iterative methods that have a stencil with a local area of inuence. The basic methodology is described below. Consider the nonlinear problem L(u) = f dened in a domain , and denote its discretization on a ne grid with spacing h as Lh (uh ) = fh , in h , (52)
where Lh () is a nonlinear discrete operator dened in h . The starting point is the denition of a suitable smoother (e.g. LU-SGS, GMRES, etc.) and, after a small number of iterations of this method (possibly a single one, instead of fully solving the discrete equation), an approximate solution u h , and residual rh , are obtained on the ne grid. The resulting equation on the ne grid can be written as Lh ( uh ) fh = rh . (53)
Subtracting Eq. 53 from Eq. 52, we obtain the following expression to be approximated on a coarse grid: Lh (uh ) Lh ( uh ) = rh , (54)
where the exact solution uh can be expressed as the approximate solution plus a correction ch yielding: Lh ( uh + ch ) Lh ( uh ) = rh . (55)
Note that no assumptions about the linearity of the operator L() (or its discrete version) are made. As we stated before, the objective is to write Eq. 55 in a coarse grid of spacing H . In order to do that, two H types of restriction operators will be dened: Ih , the restriction operator that interpolates the residual from H , which simply interpolates the ne-grid the ne grid h to the coarse grid H (in a conservative way), and I h solution onto the coarse grid. Formulating Eq. 55 on the coarse level by replacing Lh () with LH (), u h with H H u I , and r with I r , we obtain the FAS equation: h h h h h
H H H h h LH (I u h + cH ) LH (I u h ) = Ih rh .
(56)
H u In this last expression, the approximate solution on the coarse grid is denoted as u H := I h h + cH and the residual rh can be written as Lh ( uh ) fh . Finally we obtain the following useful equation on the coarse level: H H H h LH ( uH ) = LH (I u h ) Ih (Lh ( uh ) fh ) = fH + h , in H , (57)
H where the source term on the coarse levels is interpolated fH = Ih fh (not computed), and a new variable H H H h = LH (Ih u h ) Ih (Lh u h ) is dened as the ne-to-coarse defect or residual correction. Note that without H the h term the coarse grid equation is the original system represented on the coarse grid.
The next step is to update the ne grid solution. For that purpose the coarse-grid correction cH (which in principle is smooth because of the application of the smoothing iteration) is interpolated back on to the ne grid using the following formula
h H old h u new =u old unew I u h ), h h + IH ( H
(58)
h where IH is a prolongation operator that interpolates the coarse-grid correction onto the ne grid. Note that we interpolate the correction and not the coarse-grid solution itself. In this brief introduction to the method only two grids have been considered. In real problems, however, the algorithm is applied in a recursive way using dierent grid level sizes to eliminate the entire spectrum of frequencies of the numerical error. Because of their structured-grid heritage, multigrid methods have traditionally been developed from a geometric point of view. Specically, the agglomeration multigrid technique developed in this work is based on the agglomeration of ne-grid control volumes to create a coarse-grid structure. There are multiple criteria that should be observed to increase the quality of the agglomerated grid. But, in all cases, the basic idea is to maintain as much as possible the quality of the ner grid in the agglomerated levels. In other words, if the ner grid has good orthogonality and stretching properties, the coarse levels should preserve those properties. In particular, four aspects have been carefully treated: Selection of the seed control volume, preservation of the stretching and volume constraints, agglomeration of indirect neighbors in structured grids and semi-coarsening using a linelet identication algorithm. In order to choose the seed control volume in the agglomeration process, the rst step is the creation of an agglomeration priority list based on geometrical properties of the grid surfaces (i.e., a vertex has the highest priority, then common edges between surfaces and nally solid surfaces). It is important to note that far-eld, inlet or outlet surfaces have always the lowest priority among the surfaces. Once the geometrical division is done, the control volumes with the same geometrical priority should be divided into dierent groups depending on the number of neighbors that have been previously agglomerated. The algorithm will choose as a seed point the rst control volume with the highest priority. Once the seed point is agglomerated with its neighbors, it is removed from the queue and its neighbors increase in priority. Apart from the seed selection criteria, there are some situations in which a control volume cannot be agglomerated with its neighbors. In particular, three basic constraints have been implemented in the agglomeration process:
The stretching of the agglomerated control volume is limited by a percentage of the stretching of the original ne grid control volume. The volume of the agglomerated element should be less than a percentage of the total volume of the computational grid. There is a maximum number of control volumes that can be agglomerated to the original element. The last two criteria are easy to implement and they do not required further description. With respect to the stretching factor, it is computed by comparing the maximum and minimum distance between control points connected to the reference control volume. Note that the stretching factor should be computed in the ner grid and copied to all coarse levels as reference value in the agglomeration process. To maintain the quality of the nest structure grid, the agglomeration of the indirect neighbors (control volumes that have a vertex in common with the seed control volume) is critical. In this particular algorithm the structured part of the grid should be identied, and the indirect neighbors of an element will be added to the new agglomerated control volume. The information about control volume relationship structure is copied from the nest grid to the coarse levels. 2. Linelet preconditioning
Preconditioning is the application of a transformation to the original system that makes it more suitable for numerical solution.70 In particular, a linelet preconditioner has been implemented to improve the convergence rate of the Krylov spaces-based linear solvers. The key82, 58 is to construct lines in the mesh in the direction normal to the grid stretching. The preconditioning matrix is built by assembling the diagonal entries of the system matrix and the non-diagonal entries of the edges that belong to these linelets. If the appropriate numbering is used, a block tridiagonal matrix is obtained and the preconditioned system can be directly
inverted using the Thomas algorithm. Note that in those zones where linelets are not dened, a Jacobi preconditioner is used. In summary, in order to solve the system Ax = b using a preconditioned Krylov spaces-based method, it is necessary to solve (twice in each iteration) a system of equations of the form P z = r, where P is the linelet preconditioner. The steps of the algorithm are: 1. Build grid lines (linelets) in the direction normal to the grid stretching. 2. Build the preconditioner matrix: assemble the diagonal and the non-diagonal entries (linelets) of the Jacobian matrix. 3. Nodal renumbering following the linelets to obtain a tridiagonal structure for the preconditioner. 4. Use the preconditioned formulation of the iterative scheme. 5. Solve the tridiagonal system for the linelets using the Thomas algorithm (direct method). The linelet creation begins with the identication of all the points that are on the solid surface of the geometry (and where boundary layers and/or wakes are likely to exist) and the computation of an edge weight for each vertex on the surface. This weight is computed as wij = 1 Sij 2 1 1 + |i | |j | , (59)
where Sij is the area of the face that separates nodes i and j and |i | is the volume of the control volume associated with each node. The line is built by adding to the original vertex the one which is most strongly connected to it (maximum value of the weight). This new vertex is added only if it has not already been added to another linelet and if the weight is greater than a certain quantity that is used to mark the termination of the linelet. When an entire line is completed, the procedure is repeated starting with another vertex on the surface. Once the list of linelets is completed, the nodal points must be renumbered following the linelets to obtain the desired tridiagonal structure of the preconditioner. First, the nodes of a linelet are renumbered from one end to the other. Then a second linelet is renumbered and so on until all linelets have been covered. Finally, the rest of the points also have to be renumbered to accommodate the renumbering of the vertices that belong to the collection of linelets that have been identied. The nal step is to solve the system P z = r using the Thomas algorithm. The preconditioner matrix is decomposed into upper- and lower-triangular matrices U and L. Once those matrices have been obtained, the solution of the system P z = r is computed by performing the following substitutions: yi zi = = ri Li yi1 , (y1 = r1 ), i = 2, ..., n; U 1 (yi Fi zi+1 ), (zn+1 = 0), i = n, ..., 1. (60) (61)
It is important to highlight that the LU decomposition is done only once and can be done on a per-linelet basis. On the other hand, an LU factorization is performed at each block of the implicit block matrix to compute its inverse. Owing to the particular renumbering chosen where a linelet is not dened, a Jacobi preconditioner is recovered by default. 3. Roe-Turkel low Mach preconditioning
Numerical discretization of the governing uid dynamic equations using a conservative formulation often results in excess articial viscosity at low Mach numbers. This degrades the performance of a compressible solver in regions of low Mach number ows. Preconditioning techniques such as Roe-Turkel88 have been developed for solving nearly incompressible ow problems using numerical techniques developed for compressible ows. This is done because there exist several ow problems wherein part of the ow regime is nearly incompressible while compressibility eects come into play in other parts of the ow. For example, ow over a multi-element airfoil at high angles of attack has regions of compressible and incompressible ows. Flows around re-entry vehicles moving at hypersonic speeds are often chemically dissociated into several species moving hypersonically, except the electron species which, owing to their small mass, have a very small (often less than 0.01) Mach number.
26 of 59 American Institute of Aeronautics and Astronautics
The poor convergence of the standard discretization methods at low Mach numbers is due to an incorrect scaling of the articial viscosity as the Mach number tends to zero. Turkel suggested87, 92 a correction to the method of discretization of the convective uxes which involves modifying the articial viscosity for correct scaling at low Mach numbers, using a preconditioning matrix. The Roe-Turkel technique is a modication to the standard Roes scheme for discretization of the convective uxes involving a preconditioner activated in regions of low Mach numbers. Eq. 62 shows the modication of the articial viscosity with a preconditioning matrix Pc . Fic + Fjc 1 1 |(Ui Uj ), RT (Ui , Uj ) = nij Pc | Pc A (62) F 2 2 where it is important to highlight that this technique does not hamper the time accuracy of results and can be used for unsteady problems. D. 1. Mesh manipulation Mesh deformation
The capability to simulate deformable objects by dynamically deforming the mesh around the object during a computation has been implemented in SU2 . The volumetric deformation procedure is based on a classical spring method, where the key element is the denition of a stiness matrix kij , that connects the two ends of a single bar (mesh edge). Equilibrium of forces is then imposed at each mesh node
j N (i)
ui = kij eij eT ij
j N (i)
kij eij eT ij uj ,
(63)
where the displacement ui is unknown and is computed as a function of the known surface displacements uj . N (i) is the set of neighboring points to node i and eij the unit vector in the direction connecting both points. The system of equations is solved iteratively by a conjugate gradient algorithm with Jacobi preconditioning. 2. Mesh adaptation
An adaptive mesh renement procedure is included in SU2 . Using this method, an existing mesh can be dynamically modied by the code to improve the accuracy of the solution. This is done to improve the accuracy of a solution without an excessive increase in computational eort. The implemented procedure5 uses anisotropic adaptation of the grid based on an edge binary system that identies the right division for each element. This methodology is important to maintain the coherence in the division of the common faces between control volumes. Some of the main important characteristics of this adaptation strategy are: Robust adaptation. The method should allow multiple adaptation cycles, using classical two-dimensional and three-dimensional nite volume elements (tetrahedra, hexahedra, pyramids and wedges). Fully automated and easy to use. No hanging nodes, the nal grid should be conforming. A method based on a exible element division has been implemented in addition to the tetrahedral and hexahedral division methods which might not give optimum results in some cases. The tetrahedral division procedure is based on the detection of edge division patterns that are prescribed in the code, however, the anisotropic division of tetrahedra can signicantly deteriorate the quality of the mesh. This is a serious problem when directional ow-eld features are present. The main challenge of hexahedral division methodology is the so-called renement propagation problem (the buer zone between an adapted element and the non-adapted grid is greater than one cell). This occurs when more than one set of edges in the same hexahedron are marked non-uniformly and hanging nodes are not allowed. To prevent the renement propagation, SU2 uses a exible element division technique. Once an edgebased structure is in place, the allowed hexahedral division is identied. Fig. 7 shows the seven divisions/combinations implemented in the code. The last division is a special division with a vertex inserted in the middle of a marked hexahedron. The special hexahedral division into pyramids is required to connect the adapted with the non-adapted grid, furthermore, each pyramid will be divided into tetrahedrons (see Fig. 8).
27 of 59 American Institute of Aeronautics and Astronautics
Figure 7. Allowed hexahedral divisions, the last division requires a new vertex in the middle of the hexahedron.
E.
In gradient-based optimization techniques (including grid adaptation), the goal is to minimize a suitable cost or objective function (drag, lift, etc.) with respect to a set of design variables. Minimization is achieved by means of an iterative process that requires the computation of the gradients or sensitivity derivatives of the cost function with respect to the design variables. Gradients of an objective function can be computed in a variety of ways, some of the most popular being the adjoint methods,31, 71, 2, 37, 11, 62 due, among other factors, to their ability of computing these derivatives at a cost comparable to solving the state PDEs (Partial Dierential Equations). Adjoint methods are conventionally divided into continuous and discrete.36, 63, 59 In the continuous approach,37, 42, 7, 3, 43, 48 the adjoint equations are derived from the governing PDE and then subsequently discretized, whereas in the discrete approach63, 85 the adjoint equations are directly derived from the discretized governing equations. In SU2 both methodologies have been implemented. 1. Continuous adjoint methodology
One of the key features of SU2 is its capability to perform optimal shape design based on the continuous adjoint methodology. In this section, the main steps of the continuous adjoint methodology applied to the Navier-Stokes equation will be shown. Optimal shape design in systems governed by partial dierential equations is formulated on a uid domain , delimited by disconnected boundaries divided into an inlet/outlet and one or more solid wall boundaries S . From now on we will restrict ourselves to the analysis of optimization problems involving functionals J dened on the solid wall S , whose value depends on the ow variables U obtained from the solution of the uid ow equations. In this context, the generic optimization problem can be succinctly stated as follows: nd S min Sad such that J (S min ) = min min J (S ), (64)
S Sad
j (f , T, n) ds,
(65)
is the objective function, where j (f , T, n), is a smooth function which depends on n (inward-pointing unit vector normal to S ), the temperature T on the surface and the vector f = (f1 , f2 , f3 ) = P n n, where P is the pressure of the uid, and the second order tensor of viscous stresses. As usual in the adjoint approach the ow equations are incorporated to the cost functional as constraints by means of a Lagrange multiplier for each equation, T = (1 , 2 , 3 , 4 , 5 ). In this way, the Lagrangian
reads J (S ) =
S
j (f , T, n) ds +
T R(U ) d.
where R = R(U ) are the Navier-Stokes equations. Let us consider an arbitrary (but small) perturbation of the boundary S which, without loss of generality, can be parameterized by an innitesimal deformation of size S along the normal direction to the surface S . The new surface obtained after the deformation is then given by S = {x + S n, x S } where, for small deformations, the following holds81 n = S (S ), (ds) = 2Hm S ds, (66)
where Hm is the mean curvature of S computed as (1 + 2 )/2, and 1 , 2 are curvatures in two orthogonal directions on the surface. Here S represents the tangential gradient operator on S . Note that S (S ) is a tangent vector to S in R3 with null component normal to S . Assuming a regular ow solution U and a smooth boundary S , the variation of the functional J due to the deformation can be evaluated as J =
S
j (f , T, n) ds +
S
j (f , T, n) ds +
T R(U ) d,
(67)
where R represents the variations of R. Using the convention of summation of repeated indexes, i = 1, 2, 3, the two rst terms in the previous equation read j (f , T, n) = = j j j T S (S ) fi + fi T n j j j j j T + (P n n) + P S (S ), T n f f f j (f , T, n) ds =
S S
(68)
j j n fi + n T 2Hm j S ds. fi T
(69)
Note that in Eq. 68 we have written the variation f in terms of P variations P n n and T appearing in Eq. 68 can be computed R U = 0 R(U ) = U v = n v S 2 T S n (T ) = (T ) S (S ) n
and and used Eq. 66 for n. The from the following linearized system in , on S, on S, (70)
The domain integrals in Eq. 67 are eliminated using integration by parts and introducing the associated adjoint operators. Integrating by parts also provides some boundary terms, which are combined with the boundary terms in Eq. 67 depending on P n n and T , yielding the boundary conditions for the adjoint operators. Following this procedure, the continuous adjoint system becomes R U
T
=0
in .
(71)
Analogously, all boundary terms without explicit dependence on S can be eliminated by considering the following choice of boundary conditions for the adjoint variables j i = f on S, i (72) j 1 on S. n 5 = dyn tur T
P rd
P rt
Cp
hS ds =
S
n v (n
dyn tur + P rd P rt
Cp S 5 S T ) S ds,
(73)
is where h is the shape sensitivity which does not depend on the variation of the ow variables and computed as = (dyn + turb ) + T Id 2 . (74) 3
2.
A discrete adjoint methodology, based on Automatic Dierentiation,24, 16 has been also implemented in SU2 . In this case, the sensitivity of the numerical residual R to a parameter can be written as: R dU R dR = + = 0, d U d rearranging this last equation gives: dU = d R U
1
(75)
R .
(76)
In a similar way the sensitivity of the objective function J to the parameter can be written as dJ J dU J = + , d U d where using the result from Eq. 76 gives dJ J = d U Finally, the adjoint equation is dened as: R U
T 1
(77)
R U
R J + .
(78)
J U
(79)
From the implementation point of view, the discrete adjoint solver in SU2 uses the same class structure as the existing continuous adjoint and builds the required Jacobian matrix by mirroring the solution method of the direct problem. For the ow the residual is calculated by rst looping over each edge to nd the contribution from upwinding. And then looping over the boundary nodes to add the appropriate boundary conditions contribution. Hence in the discrete adjoint the contributions to the Jacobian matrix from the uxes across edges are rst calculated, followed by the contributions from the boundary nodes. The derivatives of the uxes, used in both the loop over edges and the boundary condition, are found by applying Automatic Dierentiation. A dierentiated version of the upwind routine was created using Python and Tapenade,25 rst extracting and converting the C++ code to C using Python, then transforming this code using Tapenade, and nally converting back to C++ and inserting the dierentiated routine into SU 2 , again using Python. The objective functions currently implemented for the discrete adjoint are the coecients of lift and drag dened on a user-specied wall in the domain, however there is signicant freedom in what functionals can be treated by the discrete and so this will be expanded in the future. Once the Jacobian, which is assembled already transposed, and objective function sources are constructed the linear system can be solved via an iterative procedure. F. Goal-oriented grid adaptation
The error estimate of integral outputs of partial dierential equations can be used as goal-oriented grid adaptation indicators.23, 68 These techniques produce good (and even optimal) numerical grids for the accurate estimation of an output functional. To illustrate the main idea behind this technique, suppose that a nonlinear function J (U ) (e.g. heat ux, temperature, or pressure distributions on a body surface) is to be evaluated, where U is the exact solution of a set of nonlinear equations R(U ) = 0. , we dene u as the error of the solution, u = U U , and linearize both Given an approximate solution, U the nonlinear equation and the functional: ) = R(U + u) R u, R (U U
30 of 59 American Institute of Aeronautics and Astronautics
(81)
J u. (82) U ), and J (U ) J (U ) g T u where This can be re-written as Au f , where A = R/U , f = R(U T g = J/U . If u satises the primal equation and v satises the dual or adjoint equation then AT v = g . Hence ) v T f J (U ) v T R(U ), J (U ) J (U (83) ) = J (U + u) J (U ) + J (U ) v T R(U ) is a more accurate estimate for J (U ) than J (U ). This computable correction v T R(U ) where J (U is the sensor for our goal-oriented adaptation. G. Design variable denition
and
Using the continuous adjoint methodology, SU2 can compute the variation of an objective function with respect to innitesimal surface shape deformations in the direction of the local surface normal at points on the design surface. While it is possible to use each surface node in the computational mesh as a design variable capable of deformation, this approach is not often pursued in practice. A more practical choice is to compute the surface sensitivities at each mesh node on the design surface and then to project this information into a design space made up of a smaller set (possibly a complete basis) of design variables. This procedure for computing the surface sensitivities is used repeatedly in a gradient-based optimization framework in order to march the design surface shape toward an optimum through gradient projection and mesh deformation. For the numerical results presented in this paper, two methodologies for design variable denition were used. In two-dimensional airfoil calculations, Hicks-Henne bump functions were employed26 which can be added to the original airfoil geometry to modify the shape. The Hicks-Henne function with maximum at point xn is given by fn (x) = sin3 (xen ), en = log(0.5) , x [0, 1], log(xn )
N
(84)
so that the total deformation of the surface can be computed as y = n=1 n fn (x), with N being the number of bump functions and n the design variable step. These functions are applied separately to the upper and lower surfaces. After applying the bump functions to recover a new surface shape with each design iteration, a spring analogy method is used to deform the volume mesh around the airfoil. In three dimensions, a Free-Form Deformation (FFD) strategy79, 77 has been adopted. Here an initial box encapsulating the object (rotor blade, wing, fuselage, etc.) to be redesigned is parameterized as a B ezier solid. A set of control points are dened on the surface of the box, the number of which depends on the order of the chosen Bernstein polynomials. The solid box is parameterized by the following expression
l,m,n
X (u, v, w) =
i,j,k=0
(85)
where u, v , w [0, 1], and B i is the Bernstein polynomial of order i. The Cartesian coordinates of the points on the surface of the object are then transformed into parametric coordinates within the B ezier box. Control points of the box become design variables, as they control the shape of the solid, and thus the shape of the surface grid inside. The box enclosing the geometry is then deformed by modifying its control points, with all the points inside the box inheriting a smooth deformation. With FFD, arbitrary changes to the thickness, sweep, twist, etc. are possible for the design of any aerospace system. Once the deformation has been applied, the new Cartesian coordinates of the object of interest can be recovered by simply evaluating the mapping inherent in Eq. 85. H. Optimization framework
The adjoint formulation allows the computation of sensitivities of a wide range of objective functions commonly used for optimization problems: quadratic deviation from a target pressure (inverse design), drag minimization, lift maximization, pitching moment, aerodynamic eciency, and linear combinations of those. Also, several constraints have been implemented: xed non-dimensional ow parameters (minimum lift,
31 of 59 American Institute of Aeronautics and Astronautics
maximum drag, etc.) and geometrical estimations (maximum and minimum thickness, curvature, volume, area, etc.). With respect to the optimization strategy, two main options are available in SU2 : Gradient Based Optimization (GBO) and Surrogate Based Optimization (SBO). In this section both methods will be described. 1. Gradient based optimization
The gradient based optimization uses the SciPy library,45 a well-established open-source software for mathematics, science and engineering. The SciPy library provides many user-friendly and ecient numerical routines for the solution of non-linear constrained optimization problems, such as conjugate gradient, QuasiNewton or sequential least-squares programming algorithms. At each design iteration, the SciPy routines require as inputs the values and gradients of the objective functions as well as the chosen constraints, but not necessarily in a sequential order. Thus the shape optimization wrapper must also keep track of what simulations have been run to avoid unnecessarily repeating an analysis. 2. Surrogate based optimization
The surrogate based optimization results presented in this work were obtained using a in-house code based on Gaussian Process Regression (GPR) for response surface modeling.54, 55 Briey, GPR is performed by conditioning a multivariate normal distribution, f N (, [ ]) , (86)
where f is a normally distributed function with mean vector and standard deviation matrix [ ]. In SU2 we take a uniformly zero mean vector, and populate the standard deviation matrix with a covariance model k that is a function of training and estimated data: fp fk N 0, k (xp , xq ) k (xp , x j) k ( x , x ) k ( x , x q j) k k , (87)
{ fi (xi ) | i = 1, ..., n } , { ft (x t ) | t = 1, ..., m }. The notation () is used to distinguish the estimated data from the training data. Additionally, index notation is used to describe the sub-blocks of the covariance matrix, where k (xp , xq ) would be equivalent to the matrix kpq . There are n training point vectors x with function values f (x), and m estimated data point vectors x with function values f (x ). Of the data, we do not know the estimated function values f . We do know the training data locations x and function values f (x), as well as the desired estimated data locations x . Following Rasmussens derivation,73 we condition the normal distribution with the data we do know f |x , x, f N (f , V[f ]) , which allows us to identify useful relations for estimating a function t,
1 fk = k (x fp , k , xq ) k (xp , xq ) V[fk ] = k (xk , xj ) k (xk , xq ) k (xp , xq )1 k (xp , x j)
(88)
(89)
where V[f ] is the covariance of the estimated value f . These are the relations needed for coding a GPR program. Rasmussen provides an example algorithm that simplies these relations by using Cholesky decomposition. 3. Covariance Function
The covariance function models the spatial correlation between data points. It is chosen based on the types of functions that are going to be modeled. Highly-smooth or weakly-smooth functions would be examples of dierent types of functions that would require dierent choices of covariance functions. A common covariance function is the Gaussian function of the Euclidean distance between points:
1 2 22
(pz qz )2
z =1
, (90)
where d is the number of dimensions, and p and q are the position vectors chosen from the design space x. There are two degrees of freedom in the covariance function. These are known as hyper-parameters. In terms of their eect on the function t, the nominal variance 1 is a measure of the amount of variance allowable between points, and the length scale 2 is a measure of the range of inuence of a point. We can adjust the denition of the kernel matrix to include the sensitivity information from the adjoint solution. In high dimensional design spaces this could be a large amount of data. To implement this we model the correlation between points and derivatives by taking the derivatives of the original covariance function. Finally, adaptive renement sampling criteria can be used to choose new locations in the design space to sample training data to improve the accuracy of the t. These criteria take advantage of the probabilistic construction of GPR by constructing estimates of expected improvement, for example.
V.
Capabilities
In this section we present a number of the capabilities of SU2 focusing on high delity analysis, optimization studies and grid adaptation. A. High delity analysis
Verication and Validation (V&V) is a critical issue when building reliable CFD tools and, among other things, should address the consistency of the numerical methods, the accuracy assessment for dierent critical application cases, and sensitivity studies with respect to numerical and physical parameters. Here we apply SU2 to several test cases and make appropriate comparisons to experiments in order to validate SU2 suite of tools. 1. Compressible RANS simulation
The steady state Reynolds-averaged Navier Stokes (RANS) solver is a key component of the SU2 suite. A wide range of general uid dynamics analysis problems have been solved and compared to experimental results spanning subsonic, transonic, supersonic and hypersonic ight regimes, including:
Figure 9. Pressure contours on the upper surface of Figure 10. Eddy viscosity contours on the ONERA the ONERA M6 wing (RANS-SA). M6 wing (RANS-SA).
ONERA M6 - A swept, semi-span wing with no twist that uses a symmetric airfoil (ONERA D sections). The aspect ratio is = 3.8 and the leading edge angle is = 30.0 . The simulation shown in Fig. 9 and Fig. 10 uses the ow eld conditions of Test 2308: M = 0.8395, angle of attack 3.06 , angle of sideslip 0.0 . These correspond to a Reynolds number of 11.72 million based on the mean aerodynamic chord c = 0.64607 m. The ONERA M6 was tested in a wind tunnel at transonic Mach numbers (0.7, 0.84, 0.88, 0.92) and various angles-of-attack up to 6 . The wind tunnel tests are documented by Schmitt and Charpin.78 In Fig. 11 the comparison with experimental data is shown. RAE 2822 - A supercritical airfoil commonly used for the validation of turbulence models. For this test case the ow is fully two dimensional, turbulent and transonic. Additionally, conditions are such that no separation occurs downstream of the shock position. The test case is based on the AGARD Report by Cook et al.14 . The Reynolds number is 6.5 million based on a unit chord length, M = 0.729, and the airfoil is inclined at an angle of attack of 2.31 . Figs. 12 and 13 show the pressure contours compared with experimental data.14 Zero-pressure at plate - For the verication and validation of turbulence models a standard test case is the turbulent ow over a at plate. The ow is everywhere turbulent and a boundary layer
34 of 59 American Institute of Aeronautics and Astronautics
(a)
(b)
Cp
0 0.2 0.4 0.6 0.8 1 1.2 -0.2 0 0.2 0.4 0.6 0.8 1 1.2
Cp
0 0.2 0.4 0.6 0.8 1 1.2 -0.2 0 0.2 0.4 0.6 0.8 1 1.2
X/L
X/L
(c)
(d)
Cp
0 0.2 0.4 0.6 0.8 1 1.2 -0.2 0 0.2 0.4 0.6 0.8 1 1.2
Cp
0 0.2 0.4 0.6 0.8 1 1.2 -0.2 0 0.2 0.4 0.6 0.8 1
X/L
X/L
Figure 11. Comparison of Cp proles of the experimental results of Schmitt and Carpin (red squares) against SU2 computational results (blue line) at dierent sections along the span of the wing. (a) y/b = 0.2, (b) y/b = 0.65, (c) y/b = 0.8, (d) y/b = 0.95.
-1.5
-1
-0.5
Cp
0.5
x/c
0.6
0.8
Figure 13. Pressure coecient comparison with experimental data on the RAE 2822 airfoil (RANS-SA).
develops over the surface. The lack of separation bubbles or other more complex ow phenomena allows turbulence models to predict the ow with a high level of accuracy. Due to the choice of a low Mach number of 0.2 for this case, compressibility eects are also negligible. The length of the at plate used here is 2 m, and it is represented by an adiabatic no-slip wall boundary condition, the turbulent variable is plotted in Fig. 14. The Reynolds number based on a length of 1 m is 5 million, and the M = 0.2. For validation purposes the u+ vs. y + proles are compared against theoretical proles of the viscous sublayer and log law region in Fig. 15.
Figure 15. Velocity prole comparison against the law of the wall on a subsonic at plate(RANS-SA).
2.
A rotating frame formulation of the Euler equations is included in SU2 for ecient, steady analysis of inviscid uid around rotating aerodynamic bodies. Potential applications include wind turbines, turbomachinery, propellers, open-rotors, or helicopter rotors. UH-60A rotor blade - A single blade was modeled in inviscid ow to demonstrate the capability of this technique.13 To minimize wake interactions between the blades, a high-speed forward ight case (C8534) was chosen. The blade surface mesh is shown below in Fig. 16. The CFD high-delity results are coupled with a comprehensive structural dynamics (CSD) tool, the University of Maryland Advanced Rotorcraft Code (UMARC). UMARC solves the coupled structural dynamic and control problem to yield a trimmed vehicle (including rotor and body). Its structural simulation depends upon an external aerodynamic analysis to provide the performance of each airfoil section along the radius of the blade at each azimuth.
Mesh deformations (displacements and rotations of the airfoil sections along the blade) from UMARC were mapped to the three-dimensional surface mesh at each time (azimuth) step. Three full revolutions were taken to overcome any initialization eects and achieve a periodic steady state. The aerodynamic properties of interest (in this case CQ and CT ) are typically averaged over all time instances of a periodically-steady revolution. The time histories of CQ and CT are shown in Fig. 17. As expected for this ight case, periodic ow emerged rapidly with the second and third revolutions of the ow solution nearly exactly equal. Contours of the ow solutions for a full revolution are shown in Fig. 18 and Fig. 19. Caradonna and Tung10 rotor blade - This blade was modeled in inviscid ow to verify the rotating frame formulation compared to experiment. The rotor geometry consists of two untwisted, untapered blades with an aspect ratio of 6 and a constant NACA 0012 airfoil section along the entire span. For comparison purposes, a lifting case was chosen with a collective pitch angle of 8 and a pre-cone angle of 0.5 . The ow conditions are that of hover at 1250 RPM which results in a tip Mach number of 0.439. The Fig. 20 contains the Cp contours on the upper blade surface along with Cp distributions at several radial stations compared to experiment. 3. Supersonic simulations
SU2 is able to compute the near-eld pressure signature as well as the equivalent area, features that are important for simulation of supersonic aircraft.66 This has been applied to the Lockheed N+2 aircraft baseline geometry shown in Fig. 21, at M = 1.7, and angle-of-attack of 2.1 .
37 of 59 American Institute of Aeronautics and Astronautics
Quantity Cl Cd
Table 4. Comparison of the coecients of lift and inviscid drag over a NACA 0012 airfoil at M = 0.01 at two degrees angle of attack.
A grid renement study has been performed to reduce the computational expense. Specically we coarsened the resulting mesh from 3.1 million nodes to 1.2 million nodes. Fig. 22 shows the similarities in the near-eld pressure signature between the two meshes, while a comparison of the pressure eld on the symmetry plane in Fig. 23 and Fig. 24 also shows similar behavior. 4. Low-Mach simulations
A NACA0012 airfoil at 2 angle of attack at M = 0.01 was used to compare results of the standard Roes scheme and the Roe-Turkel scheme at low Mach numbers. The simulation is inviscid, second-order accurate in space and uses implicit time integration with three levels of multi-grid for convergence acceleration. The solution with Roe-Turkel converged by six orders of magnitude while the solution using Roes scheme did not converge. Table 4 shows the coecients of lift and inviscid drag from the two schemes and Fig. 25 shows the distribution of non-dimensional pressure over the airfoil from the two methods. 5. Time-accurate, unsteady simulation
To validate the implementation of the unsteady Euler equations in Arbitrary Lagrangian-Eulerian (ALE) form, a comparison was made against the well-known CT6 data set of Davis.17 The physical experiment measured the unsteady performance of the NACA 64A010 airfoil pitching about the quarter-chord point. The particular experimental case of interest studied pitching motion with a reduced frequency, wr , of 0.202 chord (r = 2 v , where is the angular frequency of the pitching), M = 0.796, a mean angle-of-attack of 0 , and a maximum pitch angle of 1.01 . The numerical simulation was performed with 25 time steps per period for a total of 10 periods. Fig. 27, and Fig. 28 show a comparison of the lift coecient versus angle of attack between SU2 and experiment during the nal period of oscillation. In physical time, the curve is traversed in a counterclockwise fashion. Note that non-linear behavior corresponding to moving shock waves results in a hysteresis eect.
-1.5
-1
-0.5
0.5
1.5
2 -0.2 -1.5
0.2
0.4
0.6
0.8
1.2 -1.5
-1
-1
-0.5
-0.5
0.5
0.5
1.5 -0.2
0.2
0.4
0.6
0.8
1.2
1.5 -0.2
0.2
0.4
0.6
0.8
1.2
-1.5
-1.5
-1
-1
-0.5
-0.5
0.5
0.5
1.5 -0.2
0.2
0.4
0.6
0.8
1.2
1.5 -0.2
0.2
0.4
0.6
0.8
1.2
Figure 22. Comparison of near-eld pressure signatures for coarse and ne mesh.
Figure 25. Non-dimensional pressure over NACA 0012 at M = 0.01 using the Roe-Turkel scheme.
Figure 26. Non-dimensional pressure over NACA 0012 at M = 0.01 using Roes scheme (nonconverged solution).
0.10
SU2 Experiment
0.10
SU2 Experiment
0.05
0.05
0.00
0.00
0.05
Cl
0.05
0.10
0.10 1.0
Cl
0.5
0.0
0.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
Figure 27. Coecient of lift hysteresis comparison against experimental data (Euler simulation).
Figure 28. Coecient of lift hysteresis comparison against experimental data (RANS simulation).
6.
Free-surface simulation
A 2D super-critical and sub-critical steady-state ow over a submerged bump without wave breaking is presented as a baseline test of free-surface simulation. The selected 2D bump has the following shape: z = (2.7/4)x(x 1)2 , 0 x 1, and is placed on the bottom of a channel. For the cases studied here a nal steady-state solution is achieved. Two free-surface cases with dierent Froude number (based on the bump length, L = 1.0) and undisturbed depth water H were selected Super-critical case, F rL = 1.0 and H = 0.228. Sub-critical case, F rL = 0.304 and H = 0.500.
Free-surface location
0.1
Free-surface location
-0.5 0 0.5 1 1.5 2
0.05
Non-dimensional x coordinate
Non-dimensional x coordinate
Figure 29. Comparison between experiments and inviscid simulations (super-critical case, Cahouet experiment).
Figure 30. Comparison between experiments and inviscid simulations (sub-critical case, Cahouet experiment).
Both super-critical and sub-critical simulations admit steady-state solutions and have been investigated by Cahouet.8 In Fig. 29, a comparison between the simulation and super-critial experiment is presented. In Fig. 30, the sub-critical case is compared with the experiments. In both cases the wave prole shows good agreement with measurement and we note that the under-predicted second wave crest has been reported by other numerical experiments. In Fig. 31 the time evolution of the simulation is presented. 7.
2
Plasma simulation
SU can model ionized gases, and to validate this part of the solver we simulated the ow of partially ionized Argon gas over a solid body and computed the heat transfer to a three-dimensional surface from the plasma stream. The results for the computed heat ux at the wall are then compared with experiments performed by R. J. Nowak et al.,64 in which Argon gas was passed over a d.c. arc heater which ionized it to 1%. This stream of ionized Argon was expanded to Mach 4.6 through a nozzle at the end of which measurements of ow parameters such as the electron temperature, density and others were made. A hybrid, unstructured, pre-adapted, three-dimensional mesh was used for this simulation (see Fig. 33) an the ow for the three species was started with values corresponding to the inlet conditions given in Table 5.
Free-surface location
-5
10
Free-surface location
-5
10
X coordinate
X coordinate
Free-surface location
-5
10
Free-surface location
-5
10
X coordinate
X coordinate
Figure 31. Sub-critical case, Cahouet experiment. Iterations: (top left) 10, (top right) 20, (bottom left) 30 and (bottom right) 590 (steady state).
Figure 32. Distribution of Mach number of: (left) argon neutral atoms, (right) electrons. Note that the neutral atoms were supersonic, while the electrons were subsonic. This dierence is due to the speed of sound in electrons, which is large owing to their small mass.
Catalytic boundary conditions were used on the wall of the shell, and heat released during recombination was transferred to the wall through an isothermal boundary condition for ions and neutrals and an adiabatic boundary condition for electrons. Heat ux from the Argon gas and ions to the shell was added to obtain the total heat ux to the shell, noting that electrons did not transfer heat to the wall owing to the specic wall boundary condition.
Figure 33. A tetrahedral-hexahedral hybrid mesh of 46,000 cells for simulation of a plasma stream over a sphere-cylinder body. This mesh is pre-adapted to capture the shock wave and the boundary layer.
Figure 34. Comparison of numerical heat ux to the three dimensional shell from a supersonic stream of plasma in Argon with results from NASA experiments.
Fig. 34 shows the numerically computed heat ux along the nose which matches very well with experiment. Fig. 32 shows the distribution of the Mach number for two species, neutral argons atoms and electrons. The velocity and temperature of the species were similar owing to inter-species collisions, but their Mach numbers vary signicantly due to dierent physical properties. The very small mass of electrons compared to the other chemical species results in a much larger speed of sound in electrons making their Mach numbers extremely small.
B.
The design optimization of PDE constrained systems is a primary function of the SU2 suite. The built-in adjoint solver in the CFD module, in conjunction with the Gradient Projection Code, and Mesh Deformation Code deliver surface sensitivities and objective function gradients optimization algorithms, enabling surface shape optimization for complex geometries. 1. Supersonic aircraft design
The objective of this particular problem is to demonstrate the ability of the adjoint formulation to enable design optimization while maintaining a target equivalent area distribution across multiple azimuths. Specifically, a gradient-based, multi-objective optimization of the Lockheed N+2 design was performed (M = 1.7, angle of attack 2.1 ). This was done for 9 iterations with azimuths varying from 0 to 60 (pressure disturbances above 60 do not reach the ground) and the drag was reduced from 0.00875 to 0.00850, a 3% reduction.
The sensitivity computation is a fundamental and very useful result of SU2 . Fig. 37 and Fig. 38 show the sensitivities of CD and CL with respect to variations of the geometry in the normal direction. The magnitude of surface sensitivity is related to changes in cost function caused by changes in geometry, and the designers can use this sensitivity information to determine appropriate parameterizations of the conguration prior to optimization. Fig. 35 and 36 show a comparison of the near-eld pressure distributions, and Fig. 39 and Fig. 40 show a comparison of equivalent areas between the baseline and nal design. The plots for equivalent area distribution show at most a 2% change from the target. The overlay of the baseline and nal geometry in Fig. 41 shows that the upper wing surface was attened, and lower fuselage deformed inwards in order to reduce the drag. To compensate for the fuselages eect on the equivalent area, the lower wing surface was deformed downwards as well. A comparison of surface pressures for the design study are given in Fig. 42, and contours of the density and adjoint density elds are shown in Fig. 43 and Fig. 44. An unconstrained surrogate-based drag optimization was performed on the N+2 using the 9 free-form deformation control points placed on upper wing surface (Fig. 45). A comparison of the convergence history with a gradient-based optimization of the problem is shown in Fig. 46. The surrogate-based optimizer was able to discover a 4.6% reduction in drag in 20 fewer iterations than a gradient based optimizer. The rst 21 design points are chosen by latin hypercube sampling and are independent. They can be simulated simultaneously given enough computing resources, which further reduces the wall time spent optimizing. The six adaptive renement iterations after the initial sample show that the response surface allow rapid
Figure 37. Drag sensitivity (M = 1.7, AoA 2.1 ), including propulsion eects.
Figure 38. Lift sensitivity (M = 1.7, AoA 2.1 ), including propulsion eects.
Figure 43. Contour plot of density for the N+2 baseline conguration.
Figure 44. Contour plots of density adjoint variable for the N+2 baseline conguration.
convergence to the minimum. The use of an expected improvement sampling criteria also allows us to claim with reasonable certainty that this is the global minimum within the box bounds of the problem.
Figure 45. Location of the design variable (control points of the FFD box).
A comparison of the geometry change between the baseline and nal design in Figure 47 shows that the drag reduction was accomplished by reducing the thickness of the wing. 2. Airfoil and xed wing optimization NACA 0012 - A redesign of the NACA 0012 was undertaken, minimizing the drag while maintaining the lift and pitching moment of the original conguration. The simulation was performed at M = 0.75 and an angle-of-attack of 1.25 . Fig. 48 shows the initial and the nal pressure distribution and Fig. 49 details the optimization evolution. After 12 iterations, the drag was reduced 200 counts, while the lift and pitching moment both remain constant.
47 of 59 American Institute of Aeronautics and Astronautics
Figure 47. Original and deformed N+2 surfaces, unconstrained drag SBO.
0.35 1 0.8 0.6 0.015 0.4 0.04 0.2 0.2 0.01 CD CL CMz 0 -0.02 0.1 -0.04 -0.06 0.05 -0.08 0 0 0.2 0.4 0.6 0.8 1 2 4 6 8 10 12 14 0 -0.1 0 0.25 0.12 0.02 0.3 0.1 0.08 0.06
0.15
X coordinate
Figure 48. Pressure distribution over a NACA 0012 (baseline and nal design).
Figure 49. Transonic NACA 0012 optimization history (drag, lift, and pitching moment).
CMz
-Cp
CD
CL
0.02
ONERA M6 and DLR F6 - Both the ONERA M6 xed wing (M = 0.8395, AoA 3.06 ) and DLR F6 aircraft (M = 0.75, AoA 0 ) were used as starting points for optimization, considering inviscid, transonic ow. The design variables were dened using the Free-Form Deformation (FFD) methodology, with the goal of the design process to minimize the coecient of drag by changing the shape of the airfoil without any constraints. The specic design variables used were the z-coordinates of certain control points.
Figure 50. Pressure contours showing transonic shocks on the initial design.
Figure 52. Pressure contours showing transonic shocks on the initial design.
In Figs. 50 and 51 it can be seen that the shock on the upper surface of the wing was removed, noting the change in shape of both the wing surface and the FFD box. Figs. 52 and 53 show the same technique applied to the aircraft conguration, noting that this time to shock is weakened but not entirely removed. 3. Viscous (RANS) design
A single-point minimization case is used to study the continuous adjoint method for turbulent ows.7 The selected ow conditions were M == 0.8395, angle of attack = 3.06o , and Re = 11.72 106 . The prole being designed was an ONERA M6 wing. Only the upper surface of the wing was redesigned using the control points in Fig. 54. After 10 iterations the drag coecient is nally reduced by a total of 10%. Fig. 59 shows the pressure coecient distribution of the original ONERA M6 wing compared to the redesigned prole. The shock wave initially present on the upper surface has been clearly diminished in the redesigned airfoil.
Figure 54. Coecient of pressure distribution on the ONERA-M6 wing, showing control points of the Free Form Deformation box, with the white points being the design variables.
Figure 55. Coecent of pressure distribution on the initial and redesigned ONERA-M6 airfoil.
4.
The Caradonna and Tung rotor geometry was used as an example of rotor designr. A lifting case was chosen with a collective pitch angle of 8 , a pre-cone angle of 0.5 . The ow conditions were that of hover at 2500 RPM results in a tip Mach number of 0.877.
Figure 56. Rotor geometry with the FFD box surrounding the blade tip.
Figure 57. Comparison of the baseline and optimized rotor geometries with Cp contours. Note that the strong shock is removed by the signicant change in the tip shape.
Design variables were dened using a FFD parameterization. Movements in the vertical direction were allowed for a total of 84 control points on the upper and lower surfaces of the FFD box as shown in Fig. 56. In order to maintain a smooth surface during deformation, control points near the trailing edge and inboard side of the box were held xed. The gradients of CQ with respect to a subset of the FFD control point variables on the upper surface given by both the continuous adjoint and nite dierencing were compared with results shown in Fig. 58. A redesign of the rotor blade shape for minimizing torque with a minimum thrust constraint of CT = 0.0055 was performed using gradient information obtained via the continuous adjoint approach. After 20 design cycles, CQ was reduced by 26.9% from 0.0006098 to 0.0004458 while maintaining a CT value of 0.00553 from a starting value of 0.00575. These optimization results are shown in Fig. 59. The optimized design
50 of 59 American Institute of Aeronautics and Astronautics
1.00 0.95
0.0010
CQ / xi
CQ CT
5
Design Iteration
10
15
20
Figure 58. Continuous adjoint and nite dierencing gradient comparison for 19 FFD control point variables.
Figure 59. Gradient verication using the FFD control point variables and optimization results.
features a blade tip with a sharper, downturned leading edge and a thinner, asymmetric section shape. The initial and nal surface shapes with Cp contours are compared in Fig. 57. Note that the strong shock on the upper surface has been removed. 5. Nested Free-Form Deformation boxes
To increase the exibility of the denition of three-dimensional design variables, a nested Free-Form Deformation (FFD) capability has been implemented. The key idea of this methodology is a set of nested FFD boxes to explore the design space, with each FFD box corresponding to a dierent objective (see Fig. 60). The volume box (which embeds the entire aircraft surface) is useful for rotating the entire geometry, adjusting the area of the dierent sections or the total length of the aircraft. The main box (which embeds the main wing, fuselage, tail, etc.) is useful for redening the camber and thickness of the wing, or applying some deformations like twist, sweep, etc. The secondary box (in small localized areas) is useful for removing shock waves in those areas (e.g., shocks induced by the nacelles).
C.
The Mesh Adaptation Code in the SU2 suite facilitates strategic mesh adaptation based on several common schemes, including gradient and goal-oriented (adjoint-based) methods. 1. Goal-oriented mesh adaptation
To study the applicability of the goal-oriented mesh adaptation, a two-dimensional Euler supersonic inlet test case, in particular the Clemens experimental conguration,93 was selected. The nominal conditions are an inlet Mach number of 5.0 and a ramp angle 6.0 (Fig. 61). The computation (Fig. 62) was performed using a second-order continuous adjoint formulation. In this case we were interested in predicting accurately the pressure signature in an area of the lower wall that is located slightly downstream of the end of the inlet ramp. In Fig. 63 the goal-oriented adaptation is compared with the gradient-based technique. Due to supersonic ow, the goal-oriented technique only adapts the numerical grid upstream of the sensor location. On the other hand, the gradient based methodology adapts the numerical grid along the entire shock train.
Figure 60. Nested Free-Form Deformation example (volume, main, and secondary boxes are shown).
Figure 61. Density contours for nominal conditions (inow Mach number 5.0 and ramp angle 6.0 )
Figure 62. Density adjoint variable contours for nominal conditions and pressure sensor located on the lower wall
Figure 63. Grid adaptation using a gradient-based method (upper), adjoint-based computable error (lower)
2.
The gradient based-adaptation methodology was also tested with highly complex geometries. Specically, in the adaptation of the propulsion eects of Lockheed N+2 aircraft geometry (M = 1.7, angle of attack = 2.1 ). Here the nal target was to evaluate the pressure signature in the near-eld and two levels of solution adaptation were used to capture minor eects due to the propulsion.
Figure 64. Gradient based mesh renement for the Lockheed N+2 aircraft geometry (M = 1.7, AoA 2.1 , with engine propulsion eects), showing the change in the Mach number contours.
In Fig. 64 and Fig. 65 the baseline and two levels of adaptation are shown. The baseline mesh has 1.3 million nodes, while the adapted grids have 1.5 and 1.8 million nodes.
Figure 65. Gradient based mesh renement for the Lockheed N+2 aircraft geometry (M = 1.7, AoA 2.1 , with engine propulsion eects), showing the change in the grid.
The eect of the adaptation is also reected in the near-eld pressure signature, plotted at dierent azimuthal angles in Fig. 66, showing minor dierences.
Azimuthal angle 34 deg (baseline). Azimuthal angle 34 deg (cycle 0). Azimuthal angle 34 deg (cycle 1).
Cp
-0.005
Azimuthal angle 0 deg (baseline). Azimuthal angle 0 deg (cycle 0). Azimuthal angle 0 deg (cycle 1).
-0.005
-0.01 0 20
X coordinate (m)
40
60
80
100
Cp
-0.01
20
X coordinate (m)
40
60
80
100
Figure 66. Adjoint-based mesh renement for the RAM-C II hypersonic ight test experiment.
3.
Plasma adaptation
The Mesh Adaptation Code within SU2 is capable of handling large, multi-physics simulations due to the general formulation of the adaptation strategies. The results displayed here demonstrate that capability on a high Mach number ow in thermo-chemical non-equilibrium for a number of dierent strategies.
0.1895
-4 Baseline Full Gradient Adjoint
0.189
-5
R( N2)
-7
-8
0.1875
-9
2000
4000
6000
Iteration
8000
10000
12000
0.1865
CD
0.188 0.187
-6
0.1885
10
Nodes
10
Figure 67. Log-reduction in density residual for the Figure 68. most highly adapted meshes. schemes.
This particular application is suitable for mesh adaptation because accurately simulating high-speed gas ows requires grids of high quality. Post-shock conditions depend strongly on mesh resolution and must be adequately resolved for accurate force and energy predictions at domain boundaries. Furthermore, the inclusion of multiple chemical constituents and thermochemical nonequilibrium increases the size of the linear system and introduces sti source terms, placing a premium on ecient solution strategies. The problem considered here is based on the RAM-C II test article for the series of hypersonic ight tests46 conducted at NASA to quantify electron number densities around entry vehicles. This is an axisymmetric body with a nose radius of 0.1524 m, a half-angle of 9 , and a total length of 1.295 m. Free stream conditions
54 of 59 American Institute of Aeronautics and Astronautics
Figure 69. Adapted meshes: (left) gradient-based adapted, (right) adjoint-based adapted.
match those of Case 6 in the original test report and are summarized as follows: M = 25.9, H = 71km, T = 216K , and Re = 6280.
Temperature_TR(0)
Temperature_TR(0)
0.04
0.02
19000 18000 17000 16000 15000 14000 13000 12000 11000 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000
0.04
0.02
19000 18000 17000 16000 15000 14000 13000 12000 11000 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000
y
-0.02 0 0
-0.04
-0.04
-0.02
Figure 70. Eect on temperature distribution of adaptation behind the shock at the nose of the RAM-C II geometry: (left) baseline, (right) adjoint-based adapted.
The simulation uses an inviscid, two-species Nitrogen gas chemistry model at the specied free stream conditions, and the adjoint problem uses the drag coecient as the objective function. and rst-order Roe spatial discretization. The convergence history of the dierent grids used are shown in Fig. 67 and a comparison of the dierent strategies with the value of the drag coecient is plotted against mesh size for each method in Fig. 68. Fig. 69 shows how the gradient- and adjoint-based approaches adapt the grid, and Fig. 70 show the eect of adjoint-based adaptation on the temperature solution.
Acknowledgments
Francisco Palacios would like to acknowledge the support of the U.S. Department of Energy under the Predictive Science Academic Alliance Program (PSAAP), and also thank Prof. Jameson (Stanford) and Prof. Zuazua (BCAM) for helpful discussions and comments. Michael R. Colonno would like to acknowledge Aeroightdynamics Directorate (AFDD) at NASA Ames Research Center. Aniket C. Aranake would like to acknowledge the support the U.S. Department of Defense, National Defense Science and Engineering Graduate (NDSEG) Fellowship. Sean R. Copeland would like to thank Mr. and Mrs. John Lillie for their generous contributions to the Stanford Graduate Fellowship program, through which this research was funded. Thomas D. Economon would like to acknowledge U.S. government support under and awarded by the U.S. Department of Defense, Air Force Oce of Scientic Research, National Defense Science and Engineering Graduate (NDSEG) Fellowship, 32 CFR 168a. Amrita K. Lonkar would like to acknowledge the support from the Stanford Graduate Fellowship. Trent W. Lukaczyk would like to thank the support of the NASA Supersonics Project of the NASA Fundamental Aeronautics Program. Thomas W. R. Taylor would like to thank the support of the U.S. Department of Energy under the Predictive Science Academic Alliance Program (PSAAP). The SU2 (v2.0) developers would also like to thank the following researchers: Karthik Duraisamy (Stanford), Jason Hicken (RPI), Carlos Castro (UPM), Alfonso Bueno (University of Oxford), Michael Bounanno (Lockheed-Martin Corporation), Rub en P erez (Royal Military College of Canada), G erald Carrier (ONERA), Kedar Naik (Stanford), Santiago Padr on (Stanford).
References
Anderson. Hypersonic and High-Temperature Gas Dynamics. AIAA Education Series, 2006. Anderson and V. Venkatakrishnan. Aerodynamic design optimization on unstructured grids with a continuous adjoint formulation. AIAA Paper, 97-0643, 1997. 3 A. Baeza, C. Castro, F. Palacios, and E. Zuazua. 2-D Euler shape design on nonregular ows using adjoint RankineHugoniot relations. AIAA Journal, 47(3), 2009. 4 T.J. Barth. Aspect of unstructured grids and nite-volume solvers for the Euler and Navier-Stokes equations. In Lecture Notes Presented at the VKI Lecture Series, 1994 - 05, Rhode Saint Genese Begium, 2 1995. Von karman Institute for uid dynamics. 5 R. Biswas and R.C. Strawn. Tetrahedral and hexahedral mesh adaptation for cfd problems. Applied Numerical Mathematics, 26:135151, 1998. 6 A. Borzi. Introduction to multigrid methods. Technical report, Institut f ur Mathematik und Wissenschaftliches Rechnen (Karl-Franzens-Universit at Graz), 2003. 7 A. Bueno-Orovio, C. Castro, F. Palacios, and E. Zuazua. Continuous adjoint approach for the SpalartAllmaras model in aerodynamic optimization. AIAA Journal, 50(3), 2012. 8 J. Cahouet. Etude numerique et experimentale du probleme bidimensionnel de la resistance de vagues non-lineaire. Technical report, Technical report 185, Ecole Nationale Superieure de Techniques Avancees, 1984. 9 G. V. Candler and R. W. MacCormack. Computation of weakly ionized hypersonic ows in thermochemical nonequilibrium. Journal of Thermophysics and Heat Transfer, 5(3):266273, 1991. 10 F. X. Caradonna and C. Tung. Experimental and analytical studies of a model helicopter rotor in hover. Technical Report NASA Technical Memorandum 81232 (NASA Ames Research Center, Moett Field, CA), 1981. 11 C. Castro, C. Lozano, F. Palacios, and E. Zuazua. A systematic continuous adjoint approach to viscous aerodynamic design on unstructured grids. AIAA Journal, 45(9):21252139, 2007. 12 A. J. Chorin. A numerical method for solving incompressible viscous ow problems. Journal of Computational Physics, 137:118125, 1997. 13 M. R. Colonno, K. Naik, K. Duraisamy, and J. J. Alonso. An adjoint-based multidisciplinary optimization framework for rotorcraft systems. AIAA Paper 2012-5656, 2012. 14 P. Cook, M. McDonald, and M. Firmin. Aerofoil RAE2822 pressure distributions, and boundary layer and wake measurements. Technical Report AGARD 138, 1979. 15 S. R. Copeland, A. K. Lonkar, F. Palacios, and J. J. Alonso. Adjoint-based goal-oriented mesh adaptation for nonequilibrium hypersonic ows. AIAA Paper, 51st Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition (Submitted for Publication), Grapevine, TX, January 2013. 16 G. F. Corliss, C. Faure, A. Griewank, and L. Hascoet. Automatic Dierentiation of Algorithms: From Simulation to Optimization. Springer Verlag, New York, 2002. 17 S. S. Davis. NACA 64A010 (NASA Ames model) oscillatory pitching, compendium of unsteady aerodynamic measurements. Technical Report AGARD, Rept. R-702, 1982. 18 T. D. Economon, F. Palacios, and J. J. Alonso. A coupled-adjoint method for aerodynamic and aeroacoustic optimization. AIAA Paper 2012-5598, 2012. 19 T. D. Economon, F. Palacios, and J. J. Alonso. Optimal shape design for open rotor blades. AIAA Paper 2012-3018, 2012. 20 T. D. Economon, F. Palacios, and J. J. Alonso. Unsteady aerodynamic design on unstructured meshes with sliding interfaces. AIAA Paper, 51st Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition (Submitted for Publication), Grapevine, TX, January 2013. 21 P. Eliasson. Edge, a Navier-Stokes solver for unstructured grids. Technical Report FOI-R-0298-SE, FOI Scientic Report, 2002. 22 J. E. Ffowcs Williams and D. L. Hawkings. Sound generation by turbulence and surfaces in arbitrary motion. Philosophical Transactions of the Royal Society of London, A 342, pp.264-321, 1969. 23 M. B. Giles and N. A. Pierce. Adjoint error correction for integral outputs. Error Estimation and Adaptive Discretization Methods in Computational Fluid Dynamics, 2002. 24 A. Griewank and A. Walther. Evaluating Derivatives: Principles and Techniques of Algorithmic Dierentiation (2nd ed.). Society for Industrial and Applied Mathematics (SIAM), 2008. 25 L. Hasco et and V. Pascual. Tapenade 2.1 users guide. Technical Report 0300, INRIA, http://www.inria.fr/rrrt/rt0300.html, 2004. 26 R.M. Hicks and P.A. Henne. Wing design by numerical optimization. Journal of Aircraft, 15:407412, 1978. 27 C. Hirsch. Numerical Computation of Internal and External Flows. Wiley, New York, 1984. 28 D. G. Holmes and S. S. Tong. A three-dimensional Euler solver for turbomachinery blade rows. Journal of Engineering for Gas Turbines and Power, 107, 1985. 29 Kitware Inc. VTK Users Guide Version 11. Kitware Inc., 2010. 30 J. J. Donea, A. Huerta, J.-Ph. Ponthot, and A. Rodriguez-Ferran. Arbitrary Lagrangian-Eulerian Methods in Encyclopedia of Computational Mechanics. John Wiley and Sons, 2004. 31 A. Jameson. Aerodynamic design via control theory. Journal of Scientic Computing, 3:233260, 1988. 32 A Jameson. Time dependent calculations using multigrid, with applications to unsteady ows past airfoils and wings. AIAA Paper, 91-1596, 1991.
2 W.K. 1 J.D.Jr.
33 A. Jameson. Analysis and design of numerical schemes for gas dynamics 1 articial diusion, upwind biasing, limiters and their eect on accuracy and multigrid convergence. RIACS Technical Report 94.15, International Journal of Computational Fluid Dynamics, 4:171218, 1995. 34 A. Jameson. Analysis and design of numerical schemes for gas dynamics 2 articial diusion and discrete shock structure. RIACS Report No. 94.16, International Journal of Computational Fluid Dynamics, 5:138, 1995. 35 A. Jameson. A perspective on computational algorithms for aerodynamic analysis and design. Progress in Aerospace Sciences, 37:197243, 2001. 36 A. Jameson. Aerodynamic shape optimization using the adjoint method. In Lecture Notes Presented at the VKI Lecture Series, Rhode Saint Genese Begium, 2 2003. Von karman Institute for uid dynamics. 37 A. Jameson and S. Kim. Reduction of the adjoint gradient formula for aerodynamic shape optimization problems. AIAA Journal, 41(11):21142129, 2003. 38 A. Jameson, L. Martinelli, and F. Grasso. A multigrid method for the Navier-Stokes equations. AIAA Paper, 86-0208, 1986. 39 A. Jameson and S. Schenectady. An assessment of dual-time stepping, time spectral and articial compressibility based numerical algorithms for unsteady ow with applications to apping wings. AIAA Paper, 20094273, 2009. 40 A. Jameson, W. Schmidt, and E. Turkel. Numerical solution of the euler equations by nite volume methods using runge-kutta time stepping schemes. AIAA Paper, 81-1259, 1981. 41 A. Jameson and Y. Seokkwan. Lower-Upper implicit schemes with multiple grids for the euler equations. AIAA Journal, 25(7):929935, 1987. 42 A. Jameson, S. Sriram, and L. Martinelli. A continuous adjoint method for unstructured grids. AIAA Paper, 2003-3955, 2003. 43 A. Jameson, S. Sriram, L. Martinelli, and B. Haimes. Aerodynamic shape optimization of complete aircraft congurations using unstructured grids. AIAA Paper, 2004-533, 2004. 44 A. Jameson and E. Turkel. Implicit schemes and LU-decompositions. Mathematics of Computation, 37:385397, 1981. 45 E. Jones, T. Oliphant, P. Peterson, et al. SciPy: Open source scientic tools for Python, 2001. 46 W. L. Jones and A. E. Cross. Electrostatic probe measurements of plasma parameters for two reentry ight experiments at 25,000 feet per second. Nasa tn d-6617, Washington, DC, February 1972. 47 G. Karypis and V. Kumar. MeTis: Unstructured Graph Partitioning and Sparse Matrix Ordering System, Version 4.0. http://www.cs.umn.edu/~metis, 2009. 48 S. Kim, J.J. Alonso, and A. Jameson. Design optimization of high-lift congurations using a viscous continuous adjoint method. AIAA Paper, 2002-0844, 2002. 49 L.D. Landau and E.M. Lifshitz. Fluid Mechanics (2nd Edition). Pergamon Press, 1993. 50 R. B. Langtry and F. R. Menter. Correlation-based transition modeling for unstructured parallelized computational uid dynamics codes. AIAA Journal, 47(12), 2009. 51 J. H. Lee. Basic governing equations for the ight regimes of aeroassisted orbital transfer vehicles. In H. F. Nelson, editor, Thermal Design of Aeroassisted Orbital Transfer Vehicles, volume 96, pages 353. AIAA, New York, 1985. 52 R. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge Univesity Press, 2002. 53 A. K. Lonkar, F. Palacios, R. W. MacCormack, and J. J. Alonso. Multidimensional simulation of plasma in argon through a shock in hypersonic ow. 43rd AIAA Thermodynamics Conference 25-28 June 2012, New Orleans, Louisiana, (3105), 2012. 54 T. Lukaczyk, F. Palacios, and J. J. Alonso. Response surface methodologies for low-boom supersonic aircraft design using equivalent area distributions. AIAA Paper 2012-5705, 2012. 55 T. Lukaczyk, F. Palacios, and J. J. Alonso. Managing gradient inaccuracies while enhancing optimal shape design methods. AIAA Paper, 51st Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition (Submitted for Publication), Grapevine, TX, January 2013. 56 R. W. MacCormack, D. DAmbrosio, D. Giordano, J. K. Lee, and T. Kim. Plasmadynamic simulations with strong shock waves. AIAA Paper, 42nd Plasmadynamics and Lasers Conference, Honolulu, HI,, 2011-3921, June 2011. 57 D. J. Mavriplis. Multigrid techniques for unstructured meshes. Technical report, Institute for computer applications on science and engineering (ICASE), 1995. 58 D. J. Mavriplis. On convergence acceleration techniques for unstructured meshes. Technical report, Institute for computer applications on science and engineering (ICASE), 1998. 59 D.J. Mavriplis. Discrete adjoint-based approach for optimization problems on three-dimensional unstructured meshes. AIAA Journal, 45(4):740750, 2007. 60 S. Medida and J. Baeder. Numerical prediction of static and dynamic stall phenomena using the Re t transition model. In American Helicopter Society 67th Annual Forum, Virginia Beach, VA, May 2011. 61 F.R. Menter. Zonal two equation k , turbulence models for aerodynamic ows. AIAA Paper, 93-2906, 1993. 62 B. Mohammadi and O. Pironneau. Shape optimization in uid mechanics. Annual Rev. Fluids Mechanics, 36:255279, 2004. 63 S.K. Nadarajah and A. Jameson. A comparison of the continuous and discrete adjoint approach to automatic aerodynamic optimization. AIAA Paper, 2000-0667, 2000. 64 R. J. Nowak and M. C. Yuen. Heat transfer to a hemispherical body in a supersonic argon plasma. AIAA Journal, 2(2):14631464, 1973. 65 F. Palacios and J. J. Alonso. New convergence acceleration techniques in the Joe code. Technical report, Center for Turbulence Research, Annual Research Brief 2011, 2011. 66 F. Palacios, J. J. Alonso, M. Colonno, J. Hicken, and T. Lukaczyk. Adjoint-based method for supersonic aircraft design using equivalent area distributions. AIAA Paper 2012-0269, 2012.
67 F. Palacios, J. J. Alonso, and A. Jameson. Shape sensitivity of free-surface interfaces using a level set methodology. AIAA Paper 2012-3341, 2012. 68 F. Palacios, K. Duraisamy, J. J. Alonso, and E. Zuazua. Robust grid adaptation for ecient uncertainty quantication. AIAA Journal, 50(7):15381546, 2012. 69 C. Park. Nonequilibrium Hypersonic Aerothermodynamics. Wiley, New York, NY, 1990. 70 N.A. Pierce and M.B. Giles. Preconditioned multigrid methods for compressible ow calculations on stretched meshes. J. Comput. Phys., 136:425445, 1997. 71 O. Pironneau. On optimum design in uid mechanics. J. Fluid Mech., 64:97110, 1974. 72 A. Quarteroni and A. Valli. Numerical aproximation of partial dierential equations, volume 23 of Springer series in computational mathematics. Springer-Verlag Berlin Heidelberg New York, 1997. 73 C.E. Rasmussen and C.K.I. Williams. Gaussian Processes for Machine Learning, pages 1330. MIT Press, Cambridge, MA, 2006. 74 P.L. Roe. Approximate riemann solvers, parameter vectors, and dierence schemes. Journal of Computational Physics, 43:357372, 1981. 75 C. Rumsey and et al. The menter shear stress turbulence model. World Wide Web electronic publication, 2012. 76 Y. Saad and M.H. Schultz. GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems. SIAM J. Sci. Stat. Comput., 7:856869, 1986. 77 J. A. Samareh. Aerodynamic shape optimization based on free-form deformation. AIAA Paper, 2004-4630, 2004. 78 V. Schmitt and F. Charpin. Pressure distributions on the onera-m6-wing at transonic mach numbers. Technical Report AGARD, Report AR-138, 1979. 79 T. W. Sederberg and S. R. Parry. Free-form deformation of solid geometric models. Proceedings of SIGGRAPH 89 (Computer Graphics), 20(4):151159, 1986. 80 J.A. Sethian. Level set method and fast marching methods. Cambridge Monographs in Applied and Computational Mathematics. Cambridge University Press, 2002. 81 J.-P. Sokolowski, J. Zolesio. Introduction to shape optimization. Springer Verlag, New York, 1991. 82 O. Soto, R. Lohner, and F. Camelli. A linelet preconditioner for incompressible ow solvers. Int. J. Numer. Meth. Heat Fluid Flow, 13(1):133147, 2003. 83 P Spalart and S. Allmaras. A one-equation turbulence model for aerodynamic ows. AIAA Paper, 92-0439, 1992. 84 M. Sussman, P. Smereka, and . Osher. A level set approach for computing solutions to incompressible two-phase ow. Journal of Computational Physics, 114(1):146159, 1997. 85 T. W. R. Taylor, F. Palacios, K. Duraisamy, and J. J. Alonso. Towards a hybrid adjoint approach for arbitrarily complex partial dierential equations. AIAA Paper 2012-3342, 2012. 86 E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics: a Practical Introduction. Springer-Verlag, 1999. 87 E. Turkel. Preconditioning techniques in uid dynamics. Technical report, School of Mathematical Sciences, Tel-Aviv University, 1999. 88 E. Turkel, V. N. Vatsa, and R. Radespiel. Preconditioning methods for low-speed ows. AIAA, 1996. 89 H. A. Van der Vorst. Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear systems. SIAM J. Sci. and Stat. Comput., 13(2), 1992. 90 B. van Leer. Towards the ultimate conservative dierence scheme v. a second order sequel to godunovs method. J. Com. Phys., 32, 1979. 91 W. Vincenti and C. H. Jr. Kruger. Introduction to Physical Gas Dynamics. Krieger, 1965. 92 C. Viozat. Implicit upwind schemes for low mach number compressible ows. Technical report, Institut National De Recherche En Informatique En Automatique, 1997. 93 J. L. Wagner, A. Valdivia, K. B. Yuceil, N. T. Clemens, and D. S. Dolling. An experimental investigation of supersonic inlet unstart. AIAA Paper 2007-4352, 2007. 94 J.M. Weiss, J.P. Maruszewski, and A.S. Wayne. Implicit solution of the Navier-Stokes equation on unstructured meshes. AIAA Journal, 97-2103, 1997. 95 P. Wesseling. Principles of computational uid dynamics, volume 29 of Springer series in computational mathematics. Springer-Verlag Berlin Heidelberg New York, 2000. 96 F.M. White. Viscous Fluid Flow. McGraw Hill Inc., 1974. 97 D.C. Wilcox. Turbulence Modeling for CFD. 2nd Ed., DCW Industries, Inc., 1998. 98 S. Yoon and A. Jameson. Lower-Upper Symmetric-Gauss-Seidel method for the Euler and Navier-Stokes equations. AIAA Journal, 26(9), 1988. 99 O.C. Zienkiewicz and R.L. Taylor. Finite Element Method, 6th ed., Vols. 1, 2 and 3. Elsevier, Oxford, UK, 2005.