14
50 th Aerospace Sciences Meeting and Exhibit, 2012, Nashville, TN AIAA-2012-**** 1 American Institute of Aeronautics and Astronautics Copyright 2012 by University of Tennessee at Chattanooga, Published by the American Institute of Aeronautics and Astronautics, Inc., with permission Adjoint-Based Design Optimization Using CAD Parameterization Through CAPRI William E. Brock * , Chad Burdyshaw , Steve L. Karman Jr. , Vincent C. Betro § , C. Bruce Hilbert ** , and W. Kyle Anderson †† University of Tennessee at Chattanooga Chattanooga, Tennessee, 37403 Robert Haimes ‡‡ Massachusetts Institute of Technology Cambridge, Massachusetts 02139 Within the field of computational design, there often exists a disconnect between the parametric model creation (performed in a CAD or other modeling environment) and the analysis codes used by the optimizer of the design process. In order to assure that optimization is occurring on the true surface and based on a parameterization that is applicable to the final product, an interface between the model generation and the optimization software has been created: the Computational Analysis PRogramming Interface (CAPRI 1 ). CAPRI is an API that allows communication with CAD software during the various stages of computational design. A framework was developed for implementing CAPRI within the SimCenter’s current GEOMETRY libraries with the aim of improving geometry representation and accuracy. The framework also supports functionality to interface with a design optimization cycle by providing sensitivity derivatives and surface mesh coordinates throughout successive iterations. This provides an effective and efficient use of gradient- based optimizers. A sample wing was generated using SolidWorks 2 as the CAD tool with the root and tip sections defined using a NACA 2412 airfoil. Design optimization was then performed upon this model with tip rotation and wing length as adjustable parameters. Nomenclature t = Parametric Coordinate for CAPRI Edges uv = Parametric Coordinate for CAPRI Faces xyz = Cartesian Coordinate ρ = Fluid Density C L = Coefficient of Lift L = Integral force of components in the direction of Lift V = Free Stream Velocity A = Surface Area () = Used to denote C++ function call * Associate CFD Engineer, SimCenter Enterprises Inc., and AIAA Student Member. Associate Research Professor, Graduate School of Computational Engineering. Professor, Graduate School of Computational Engineering, and AIAA Associate Fellow. § Assistant Research Professor, Graduate School of Computational Engineering, and AIAA Member. ** Research Associate, Graduate School of Computational Engineering, and AIAA Student Member. †† Professor, Graduate School of Computational Engineering, and AIAA Associate Fellow. ‡‡ Principal Research Engineer, Massachusetts Institute of Technology, and AIAA Member. 50th AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition 09 - 12 January 2012, Nashville, Tennessee AIAA 2012-0968 Copyright © 2012 by The University of Tennessee. Published by the American Institute of Aeronautics and Astronautics, Inc., with permission.

Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

Embed Size (px)

Citation preview

Page 1: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

50th

Aerospace Sciences Meeting and Exhibit, 2012, Nashville, TN AIAA-2012-****

1

American Institute of Aeronautics and Astronautics

Copyright 2012 by University of Tennessee at Chattanooga,

Published by the American Institute of Aeronautics and Astronautics, Inc., with permission

Adjoint-Based Design Optimization Using CAD

Parameterization Through CAPRI

William E. Brock*, Chad Burdyshaw

†, Steve L. Karman Jr.

‡, Vincent C. Betro

§, C. Bruce Hilbert

**, and W. Kyle

Anderson††

University of Tennessee at Chattanooga

Chattanooga, Tennessee, 37403

Robert Haimes‡‡

Massachusetts Institute of Technology

Cambridge, Massachusetts 02139

Within the field of computational design, there often exists a disconnect between the parametric model

creation (performed in a CAD or other modeling environment) and the analysis codes used by the optimizer

of the design process. In order to assure that optimization is occurring on the true surface and based on a

parameterization that is applicable to the final product, an interface between the model generation and the

optimization software has been created: the Computational Analysis PRogramming Interface (CAPRI1).

CAPRI is an API that allows communication with CAD software during the various stages of computational

design.

A framework was developed for implementing CAPRI within the SimCenter’s current GEOMETRY

libraries with the aim of improving geometry representation and accuracy. The framework also supports

functionality to interface with a design optimization cycle by providing sensitivity derivatives and surface

mesh coordinates throughout successive iterations. This provides an effective and efficient use of gradient-based optimizers. A sample wing was generated using SolidWorks

2 as the CAD tool with the root and tip

sections defined using a NACA 2412 airfoil. Design optimization was then performed upon this model with tip

rotation and wing length as adjustable parameters.

Nomenclature

t = Parametric Coordinate for CAPRI Edges

uv = Parametric Coordinate for CAPRI Faces

xyz = Cartesian Coordinate

ρ = Fluid Density

CL = Coefficient of Lift

L = Integral force of components in the direction of Lift

V = Free Stream Velocity

A = Surface Area

() = Used to denote C++ function call

* Associate CFD Engineer, SimCenter Enterprises Inc., and AIAA Student Member.

† Associate Research Professor, Graduate School of Computational Engineering.

‡ Professor, Graduate School of Computational Engineering, and AIAA Associate Fellow.

§ Assistant Research Professor, Graduate School of Computational Engineering, and AIAA Member.

** Research Associate, Graduate School of Computational Engineering, and AIAA Student Member.

†† Professor, Graduate School of Computational Engineering, and AIAA Associate Fellow.

‡‡ Principal Research Engineer, Massachusetts Institute of Technology, and AIAA Member.

50th AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition09 - 12 January 2012, Nashville, Tennessee

AIAA 2012-0968

Copyright © 2012 by The University of Tennessee. Published by the American Institute of Aeronautics and Astronautics, Inc., with permission.

Page 2: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

2

I. Introduction

Design optimization is one of the many areas of Computational Engineering that is directly applicable to almost

any engineering endeavor. A typical design cycle brings together several different processes and is inherently a

multi-disciplinary application.

The beginning and end for any design cycle is the model that is to be optimized. That model can be available in a

variety of formats, from merely a collection of points or surface triangles to a fully defined CAD model coupled

with a computational mesh. The amount of control a user has over this model greatly affects the methodology used

while performing computational design.

One aspect of this control is referred to as shape parameterization; this involves using a discrete number of

parameters that drive physical changes on the underlying geometry. These parameters are used within the design

cycles as adjustable values that change along each iteration of the cycle to solve for some predetermined objective

function. Many forms of shape parameterization involve curve and surface fitting, a few being Bezier, B-spline and

non-uniform rational B-spline (NURBS) surfaces3,4,5

. Another method of parameterization is to use each point on the

surface mesh as an adjustable parameter6,7,8

. Samareh9 provides a good summary and comparison of the methods

used for shape parameterization.

There has been significant development in the method of free form deformation using control grids10

. These

methods are all very capable for use in computational design and have been used in various scenarios. However, if a

model is built within a CAD modeling environment, such as SolidWorks, with the intent of being used in

computational design, another avenue of parameterization is available. A CAD engineer can build the geometry

based on flexible parameters with the intent of being used later as design variables within the computational design

cycle.

The Computational Analysis PRogramming Interface (CAPRI) communicates these parameters to a

computational design software package. This approach has many advantages: 1) using CAD based parameterization

provides excellent control over a model with potentially few design variables, 2) within each design cycle, a new

instance of the CAD model is created and can easily be exported for further analysis and manufacturing additionally,

the format of the CAD model can still be analytically defined, there is no need for interpolated curves or surfaces

beyond the original CAD build, and 3) CAPRI handles the generation of parameter sensitivities drastically

simplifying the process for design engineers11

.

The process for applying CAPRI to support CAD Parameterization for use in Design Optimization at the

University of Tennessee at Chattanooga’s SimCenter: National Center for Computational Engineering, hereafter

referred to as SimCenter, will be explained in detail.

II. Geometry and Parameterization

The first phase of our design procedure is to create a flexible parametric model in SolidWorks. An example of

this can be seen in Figure 1 along with that model’s associated computational mesh in Figure 2. CAPRI can be used

to control the parameters found in the model, which include values set by the driving equations, found in sketches

(dimensions and angles), other arguments associated with specific features and/or spline point locations (with

optionally adjustable tangents and radii of curvature). The operator generating the model must ensure that all

parameters of interest (those included in the design space) are exposed and adjustable, as CAPRI can only

regenerate the model from parameters that are not driven (controlled by other parameters through equations).

A computational mesh is necessary in order to communicate the geometry created in the CAD model to the CFD

solver. This mesh is generated using the software package Pointwise12

by employing CAPRI to create a native file

(.nmb) for this package. The mesh provides the vertex locations that will be used by the analysis code to not only

determine the cost function value for the given design variables but also to place the parametric sensitivities.

Because Pointwise does not provide the source identity (what geometric entity the vertex resides on) an additional

CAPRI application is required so that these vertices can be linked back to the actual geometry of the BRep

(Boundary Representation). These are the Nodes, Edges and Faces in the solid model that contains the physical

locations on the discretized model (as well as the geometric parameters that can be used to evaluate and get to the

Page 3: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

3

vertex). This mesh can then be deformed using Linear Elastic Smoothing13

to represent the newly formed model

without changing the number of nodes or necessitating interpolation between steps.

Figure 1. A parameterized CAD model

Figure 2. A computational mesh

Page 4: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

4

A. Discrete Parameterization

Shape parameterization has a twofold purpose: to reduce the number of control variables, and to produce

surfaces with smooth deformations. Shape design includes the process of analyzing the influence of changes in the

shape on the outcome of the objective. In its most primitive form, the shape is defined by a collection of points in

Cartesian space. Analysis involves independently perturbing each surface point and recording its influence on the

outcome. This process may include thousands of computations, and the resulting gradient driven surface

deformation is likely to result in a surface that is anything but smooth.

Shape parameterization allows abstraction of the collection of surface points by introducing a mapping function

to represent the shape. This has the benefit of reducing the number of design variables, from the number of surface

points to some smaller number of control parameters, and should also result in smooth surface deformations.

Common parameterization methods usually involve fitting a function like a Bezier or NURBS curve or surface

to the collection of surface points. The reduced set of variables may be comprised of spline control points and/or

NURBS knots. This method is fairly successful as a parameterization technique, but can present problems in fitting,

when trying to accurately reproduce the original shape.

A recently developed parameterization method has been designed to eliminate the need for surface fitting14

. This

method involves introducing an arbitrary control surface (typically a box surrounding the desired surface object),

which includes a net of control points, the number and location of these points having been determined to provide

sufficient influence over the surface to be parameterized. Control of the surface is accomplished by assigning

positive or negative weights (in Cartesian coordinates) to each control point and then interpolating their influence to

the surface by propagation of weights into a computational volume mesh using a Laplace equation.

The advantages of this method are that surfaces do not have to be fitted with splines, and parameterization can be

set up for complex geometries fairly easily. Furthermore, the sensitivity of the surface with respect to the

parameterization is a linear function. This allows the use of a static file to update the shape sensitivities and

surface movement throughout the design cycle. A disadvantage is that the influence of control points on the

surface geometry can be hard to predict. This can be improved by applying control nets closer to the surface

mesh and utilizing control nets in shapes similar to the shape under parameterization (e.g. cylindrical control net

for pipe flow, etc.). In addition, due to the linear nature of the interpolation, setting up control points to modify

nonlinear functions such as the twist of a wing, or a sweeping arc would be outside of the capabilities of this

method without applying several special case functions. Another drawback to this method is that the final design

is represented only as a discretized mesh of connected points, which can be difficult to translate back to a form

useful for further analysis (e.g. a CAD representation).

This paper describes an attempt to address deficiencies in this discrete parameterization process. Namely the

issue of improved control, in the form of surface groupings and nonlinear movement/deformation of these surfaces,

and in processing the form of the geometric object such that the resulting data is produced in a usable format.

B. CAPRI Parameterization CAPRI provides a direct interface to a CAD model’s parametric design information. Most CAD systems

represent their construction in the form of a tree, usually referred to as the ‘Feature Tree’. CAPRI gives the user

access to this tree, displaying the features (that when executed provide the recipe for the build) in the form of

branches. Parameters are exposed as a separate list but have the association back to the feature where the parameter

is defined (if any). CAPRI exposes all parameters but only allows the adjustment of driving values (those not

controlled by equations that depend on other parameters or other constraints).

Shape parameterization begins with the CAD process. Time must be taken to ensure that parameters can be

modified independent of each other and that every change results in a valid model. Valid parameter ranges need to

be established in order to maintain model integrity, they must be recorded and set as limits to the optimizer. This

way one may modify the parameters within CAPRI without the fear of producing invalid geometry (or simply

getting a regeneration error). Our mapping function here is as simple as adjusting the parameters. When making

changes through the CAPRI API, the CAD software controls the movement of the underlying geometry by

rebuilding (regeneration of) the model.

Page 5: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

5

For the purpose of design, CAPRI is being set up to offer the generation of analytic parameter sensitivities

directly from CAD. The current state of this new portion of CAPRI is that the sensitivity information is generated

via finite-differences using parameter perturbation and vertex tracking. This is the test-bed that the analytic work

will be validated against. In this way the sensitivity information API does not change as the analytic sensitivity

derivatives are implemented a Feature at a time. The desire to get to complete analytic sensitivities is driven by

speed of this operation (it is linear based on the number of active parameters and CAD regeneration can be slow),

accuracy (finite differences require the selection of a perturbation size) and the difficulties of point tracking with

rebuilt geometry.

An advantage of this process is having real CAD information during design optimization giving access to a

complete CAD representation of the geometry at each stage of the cycle. Also CAPRI has the functionality to

implement complex changes to the geometry, such as entering new spline information to curves. A disadvantage of

this process is the synchronization of the surface mesh with that of the resultant CAD BRep. Within Pointwise the

user is able to mark boundaries in order match these features, but as the CAD geometry gains in complexity, this

synchronization increases in difficulty. Another difficulty is creating CAD geometries that are easily manipulated in

the parameterized form. This adds more demands upon the CAD engineer to lay a foundation that is highly flexible.

III. Design Process

The design process involves bringing together several different operations, described below.

A. Parameterization

The first step is to parameterize the object to be modified. This sets up the design variables that will be optimized

in the process. CAPRI is used to expose primitives in the solid representation that can be used as design variables.

This is all done by careful model creation within the CAD modeling software, SolidWorks. Parameters that need to

be modified are set as ‘Smart Dimensions’ making them available to the CAPRI interface. All parameters that are to

be changed are perturbed in order to check their validity and flexibility within the model. Also, a valid range for

such parameters is determined and communicated to the optimizer so that the design software does not push any

parameters outside of predefined boundaries.

B. Optimization

The optimizer is the driver of the design process. The optimizer initiates calls to the function evaluation,

followed by sensitivity analysis, and from this information, determines new values for the design variables. It then

executes the process that modifies the shape and field mesh, and cycles back to the function evaluation and

sensitivity analysis process again, until the computed objective or sensitivity derivatives reach a target or some

minimum change (local optimum). PORT15

, KSOPT16

, OPT++ are some examples of optimizers used at the

SimCenter. For this study, OPT++17

is used, employing a Quasi Newton method (BFGS with trust region) and side

constraints on the design variables.

C. Function Evaluation

Evaluation of the objective function is accomplished using the Tenasi18

flow solver. The Tenasi solver is an

unstructured mesh, multi-regime, parallel, finite volume fluid flow solver. The objective is to minimize some

function f (β )with βmin≤ β ≤ β

max .

f (β )= (target − obj )2

Where

obj = obj (β )

f (β )≥ 0

The objective function used here is the coefficient of lift:

Page 6: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

6

obj = CL=

L

ρV2A / 2

Where Lift (L) is a numerically integrated quantity produced by Tenasi.

D. Sensitivity Analysis

Sensitivity analysis of the objective is accomplished using Tenasi’s adjoint solver capability19

, with linear

elasticity and dual adjoint calculations for field mesh sensitivities.

E. Shape and Mesh Movement

When the optimizer has determined the changes in parameters that need to be made, it uses the CAPRI API to

make the required changes to the underlying CAD model. Once the parameters have been updated on the CAD

model and a new model generated, the new coordinates from the surface mesh are obtained by retrieving the new

xyz coordinate for the scaled uv coordinate related to each vertex on the Surface Mesh. This process will be

explained in greater detail in the section IV.B. The xyz displacement in 3D space will be used to drive the mesh

movement, which uses a Linear Elastic smoothing routine contained within Tenasi. Sensitivity derivatives are

updated after each change in the underlying geometry to ensure that they are accurate to the newest version of the

optimized model.

The evaluation, analysis, and mesh movement operations are each done in a parallel-distributed cluster

environment. The optimizer and CAPRI steps are computed on a single processor.

IV. CAPRI Implementation

A. Surface Mesh Synchronization

When using a CAD model as the basis for design cycles, certain steps need to be taken to ensure agreement

between the computational mesh and the underlying model. Once the vertices on all the surfaces from the

computational mesh have been matched to their corresponding CAD entities, the implementation becomes

straightforward. Due to the disconnect between CAD, the computational mesh, and the design software, a custom

method was developed for matching these discretized surfaces to the resultant CAD BRep. This method needed to

take into consideration the data structures used in both the SimCenter’s GEOMETRY libraries and CAPRI. Once

these relationships were established, a robust CAPRI application was built. The concept of Quilts20

was used in

order to establish and maintain order in the relationships between the computational domain and the underlying

CAD geometry.

B. Quilt Construction and Point Projection onto the Surface

A Quilt is a mapping from one Face within the Surface Mesh to its associated CAD Face(s) of that Face. In this

implementation, a Quilt related to a Face will contain unique CAD Faces, but will not be shared with other Quilts.

Similarly, another mapping exists to map an Edge on the Surface Mesh to its associated Edge(s) on the CAD model.

The CAD Edges contained in each Edge mapping are also unique and not shared among Edge maps. Quilt and Edge

mappings will be built as the primary data structure used for reference from the surface mesh to the CAD model.

The projection routine takes an array of points from one Face of the Surface Mesh and that Face’s associated

Quilt and modifies the xyz coordinates contained within those points to lie on the CAD model. It also returns the uv

or t coordinates (if on a CAD Face or Edge) and the index of the CAD entity on which each point lies. A C++

function was developed, ClosestOnCAD(),which operates by projecting each point onto each CAD entity within a

Quilt. The projection with the minimum distance from the initial point is returned. The CAPRI functions used here

are gi_qNearestOnFace() and gi_qNearestOnEdge(). These methods not only return the xyz coordinate that lies on

the database, but the parametric uv or t coordinates as well. Once all CAD Faces and Edges have been looped over,

the process has been completed.

Within this process, specific information is also stored for each point on the Surface mesh required by many

other CAPRI functions that return important spatial information. The most important information is what type of

entity the vertex lies on and what the index of that entity is within the CAD system. Also, the t or uv value of that

Edge or Face is stored for later use when requesting the sensitivity derivatives from CAPRI.

Page 7: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

7

C. Generating Sensitivity Derivatives

The current implementation of CAPRI uses a hybrid approach of using instancing and finite differences (in cases

where analytic methods have not yet been developed) to generate sensitivities. The sensitivity derivative features of

the CAPRI API are still in development and this dualistic approach has been provided so that work may be

continued in this area without having all analytic definitions for each supported CAD package. For the course of the

present research, the calls to retrieve the sensitivity derivatives are treated as a black box, with the only adjustable

parameter being the initial finite difference step size.

D. Modifying the CAD Model and Surface Mesh Movement

When performing computational design, it is necessary to modify the CAD model at each iteration of the cycle.

CAPRI supports the modification of parameters within a CAD model and can output a modified version of the

model per each update. This process is fairly straightforward and can be accomplished with only a few CAPRI

functions.

After the model has been modified, the next consideration is the Surface Mesh associated with that model. The

mesh needs to move to match the changes in the underlying geometry. During the initial projection of each vertex

onto the database, information was stored; i.e., the CAD entity, which with each point is associated, the CAD entity

type, and the associated uv coordinate if it lies on a CAD Face or t coordinate if a CAD Edge. The new position of

each surface mesh coordinate can be found by querying the model for the xyz coordinate of each point associated

with their uv or t coordinate. Special attention needs to be given to the minimum and maximum uv and t values for

each CAD Face and Edge. If either the Face or the Edge scaled in size, then a linear relationship can be set up to

translate these points into the modified computational domain. The new uv and t coordinates are calculated as

follows:

tk+1= t

k*

tmax

k+1− t

k+1

min

tmax

k− t

k

min

uk+1= u

k∗

umax

k+1− u

k+1

min

umaxk− u

kmin

vk+1= v

k*

vmax

k+1− v

k+1

min

vmax

k− v

kmin

Where k +1 denotes the next iteration.

V. Application and Results

The geometry used for computational design was built in SolidWorks using generic a model with NACA 2412

wing sections at both the wing root and the wing tip. The model was then exported to a format readable by

Pointwise, a CFD meshing toolkit. From there a computational mesh was built.

(a)

(b)

Figure 3. The (a) NACA 2412 cross section and (b) resulting SolidWorks solid model

Page 8: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

8

The NACA 2412 Wing cross-section, as seen in Figure 3(a), was obtained from UIUC Airfoil Coordinates

Database21

. The data obtained for this wing were imported as spline points and entered into SolidWorks as a “Curve

through XYZ points”. The resulting model is displayed in Figure 3(b). This created a database entity on the z = 0

plane and will be referred to as the “root”. As with all wing cross-sections in the NACA family, the upper and lower

curves did not connect on the trailing edge. Extra points were added to this curve to close this gap, making a sharp

point on the trailing edge. This curve was then copied to another plane at z = 1, referred to as the “tip”, and a loft

was created between both curves to initialize the solid model. The distance between these two planes became the

first parameter.

In order to maintain the integrity of the airfoil shape on the tip during rotation, special relationships needed to be

set up to fix the spline points in relation to the angle of rotation (Figure 4(a)). Perpendicular lines were drawn from

each spline point to the horizontal axis of the wing, and a relationship was set up for each of these lines to remain

perpendicular to the horizontal axis. Verification of wing twist is shown in Figure 4(b). Additionally, the length of

each one of these lines was established as a “Smart Dimension” so that the parameters could be modified from

CAPRI, however these design variables were not modified in this case.

(a)

(b)

Figure 4. The (a) relationships set to maintain proper spline point placement during rotation and

(b) tip rotation verification

A. Parameterization and Design Variables

For the scope of this case, the parameters for tip rotation and wing length were chosen as design variables with

the objective of optimizing lift. This case was selected in the attempt of using a non-linear relationship (i.e. rotation)

for parameterization. The axis of rotation was established at the quarter chord distance on the tip of the wing. Since

this relationship is non-linear and the derivatives returned from CAPRI are only first order, the change in rotation

was given upper and lower limits so as to only move the wing in small increments of rotation per each cycle. Each

cycle was limited to a maximum rotation angle of ±5°°°° relative to the current value. Note that these limits were

specific to each cycle and not to the entire design process. If the optimizer wished to move the wing ±15°°°°, it would

take three iterations to rotate the tip that far. The Wing Length parameter was limited from 0.25 meters minimum to

2.0 meters maximum for the entire cycle. After each design cycle, the new parameter values were sent to CAPRI,

which would generate new surface derivatives based on the updated position of the surface.

B. Issues in Implementation

Two issues were found when modifying the surface mesh according to changes in the CAD parameterized

values.

The first issue was discovered by checking for smooth surface deformations while modifying the spline point

parameterized values along the tip of the wing. Although the changes were consistent among the points, the surface

mesh appeared jagged and inconsistent in the span-wise direction of each modified spline point. This is shown in

Page 9: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

9

Figure 5(a). This did not reflect an error in the methodology so much as indicating the type of mesh that is needed

when making changes to a spline point on an Edge. Also the raggedness of the surface is due to using a spline point

perturbation that is quite large. This displays the difficulties of Spline-based point movement. Creating a structured

surface mesh and diagonalizing that mesh for the support of tetrahedra resolved this issue. When moving the spline

points over this new mesh, there were still sharp changes in the mesh, however they were consistent as seen in

Figure 5(b). This second method was then applied to the surface mesh used for the design cases. This illustrates how

the method of discretization of the surface can create discrepancies when dealing with mesh movement.

(a)

(b)

Figure 5. Spline point movement on an (a) unstructured surface mesh and (b) structured and diagonalized

surface mesh

The second issue was uncovered during the mesh movement operation within the design iterations. When

moving the points to the new xyz coordinates according to their original uv locations, a failure in this algorithm

became apparent. For the first design iteration, the tip of the wing was rotated +5°°°° and the wing extended 1.17m.

The surface points on the tip were successfully translated on each of the Edges and the upper and lower surface.

However, the rotation of the points on the tip did not seem to operate as expected. The points on the edge of the tip

plane were successfully rotated, but the points in the interior of the face were not. This is clearly illustrated in Figure

6. As a workaround, the interior points on the tip of the wing were smoothed using Linear Elastic smoothing routine

with the edge point displacements as boundary conditions and held constant with respect to the z coordinate (Figure

7).

(a)

(b)

Figure 6. Surface mesh (a) before and (b) after tip rotation

Page 10: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

10

Figure 7. Surface mesh on the tip of the wing corrected after rotation using Linear Elastic Smoothing

The problem seen in Figure 6 is primarily due to the linear assumption in rescaling as described in Section IV.D.

A rotation about the ¼ chord is not linear in uv and therefore the updated uv mappings are incorrect. The linear

scaled mapping along the CAD Edge is valid and therefore, if using the updated Bounds (based on the Edges) for the

tip Face, then remapping the triangulation in the interior via elastic smoothing provides an appropriate fix. This way

the triangulation is maintained in connectivity and relationship to neighbors in size.

The initial goal of this research was to implement all of the parameters available through CAPRI while

performing design optimization. However, during the optimization the influence of freely moving spline points

dominated the design, so that a rigid rotation variable was ineffective. So in order to demonstrate the effects of using

non-linear relationships for design variables, the case was modified to use only wing length and tip rotation as

parameters for this experiment. Further work with spline points will be included in future work.

C. Design Results

The NACA 2412 case was run through a total of four design cycles with the goal of finding the parameters

which would result in CL = 1.1. The parameters used in this case were tip rotation and wing length.

Table 1. Evolution of design parameters and objective

Iteration Wing Length Tip Rotation Objective Value Lift Coefficient

0 1.000 0.0 1.884e-01 0.912

1 1.174 5.0 3.210e-02 1.132

2 1.083 2.37 8.689e-02 1.013

3 1.160 4.60 1.372e-02 1.114

4 1.158 4.54 1.103e-02 1.111

As shown in Table 1, the objective function was reduced over iteration and the Lift Coefficient approached the

desired value. The small increase in objective value from iteration 1 to iteration 2 was due to an excessive step in the

trust region which overestimated the correction in tip rotation. These results demonstrate that the derivatives

obtained from CAPRI were successfully incorporated into a typical design cycle. Figure 8 illustrates the progression

of the wing shape as it moved through the design cycle for steps: 0 – red (initial model), 1- turquoise, 2 - green, 3 -

magenta, and 4 - dark blue (final model). Figure 9 gives a cross section of the final position of the tip of the wing

rotated at 4.54°.

Page 11: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

11

(a)

(b)

Figure 8. (a) Model movement over each iteration and (b) the initial (red) and final (blue) states

Figure 9. Final cross-section of the tip of the wing, rotated at 4.54°

Figure 10 displays the desired surface point displacement vectors (gradients of the objective with respect to

surface point movement) from the optimizer for both the initial and final iterations of the design cycle. In the first

design cycle iteration, the surface sensitivity gradients indicate that points on the top of the wing, near the leading

edge, need to be shifted vertically to increase the lift, along with a shift in the opposite direction for the points on the

lower surface near the trailing edge. The gradients also indicate that the wing needs to increase in length as denoted

by the arrows normal to the tip of the wing. By the final iteration, most of the sensitivity has diminished on the top

of the wing where the remaining sensitivities suggest shifting up points at the tail.

Page 12: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

12

(a)

(b)

Figure 10. (a) Initial and (b) final objective sensitivity gradients on surface

VI. Conclusions

It has been shown that existing functionality within CAPRI has the potential for implementing changes to the

underlying CAD geometry during a deterministic design cycle.

This process involves a new method of parameterization for computational design that places new

responsibilities on the CAD designer/operator. Communication between the design team and the CAD engineers is

of the upmost importance, as the CAD operator lays the framework for what parameters can be adjusted during the

design cycle and how they are able to change.

Custom methodologies have been introduced which take the CAD model with a related surface mesh and map

the two entities together. These mappings allow for easy use of CAPRI’s geometry querying libraries and tools.

Additional functionality is supported to obtain design variables from the CAD and relate the changes in each of

those variables to every vertex on the Surface Mesh. Also supported is the updating of a CAD model and the

transformation of the associated Surface Mesh as that model changes.

The pairing of existing design software available to the SimCenter and these new technologies involving CAPRI

resulted in a successful implementation of a deterministic design cycle. The cycle was iterated over four times and

the resulting geometric parameters, the changes in derivatives, and the final CAD model were presented.

Using CAD parameters for design optimization is still in its early stages of development at the SimCenter. It is

not a substitution for current methods nor is it necessarily superior. However, CAD parameterization and integrating

CAD geometry information into the design cycle does have great potential. It offers the user control over the design

variables along with a result that is ready for continued analysis and manufacturing. With continued development

this methodology has significant potential to be a valuable resource for computational design.

Future work in this area should involve steps to improve the robustness of the design application. Current

implementation only allows one BRep to be used during the design cycle, where this is not feasible in a real-world

engineering scenario. More complex, multi-volume, models need to be created and tested within this process to

ensure a usable application.

Page 13: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

13

VII. ACKNOWLEDGEMENTS

The authors wish to express their gratitude to the Office of Naval Research for partial funding of this effort

References

1 Haimes, R. and Follen, G., “Computational Analysis Programming Interface”, Proceedings of the 6th International

Conference on Numerical Grid Generation in Computational Field Simulations, Cross, Eiserman, Hauser, Soni and

Thompson, July 1998.

2 Solidworks, Dassault Systèmes, http://www.solidworks.com/.

3 Anderson, W. K., and Bonhaus, D. L., “Airfoil Design on Unstructured Grids for Turbulent Flows,” AIAA Journal,

Vol. 37, No. 2, 1999, pp. 18-191. doi: 10.2514/2.712

4 Fudge, D. M., and Zingg, D. W., “A CAD-Free and a CAD-Based Geometry Control System for Aerodynamic

Shape Optimization,” AIAA Paper 2005-0451, 2005.

5 Samareh, J. A., “A Novel Shape Parameterization Approach,” NASA TM/TM-1999-290116, May 1999.

6 Jameson, A., “Aerodynamic Design via Control Theory,” Journal of Scientific Computing, Vol. 3, 1988, pp.233-

260.

7Jameson, A., Alonso, J. J., Reuther, J., Martinelli, L., and Vassberg, J. C., “Aerodynamic Shape Optimization

Techniques Based on Control Theory,” AIAA Paper 98-2538, 1998.

8Kim, H., Koc, S., and Nakahashi, K., “Surface Modification Method for Aerodynamic Design Optimization,”

AIAA Journal, Vol. 42, No. 4, April 2005, pp. 727-740. doi: 10.2514/1.11181

9 Samareh, J. A., “A Survey of Shape Parameterization Techniques for High-Fidelity Multidisciplinary Shape

Optimization,” AIAA Journal, Vol. 39, May 2001, pp. 877-884. doi: 10.2514/2.1391

10 Anderson, W. K., Karman, S. L., and Burdyshaw, C., “Geometry Parameterization Method for Multidisciplinary

Applications,” AIAA Journal, Vol. 47, No. 6, 2009, pp. 1568-1578. doi: 10.2514/1.41101

11 Jones, W. T., Lazarra, D., and Haimes, R., “Evolution of Geometric Sensitivity Derivatives from Computer

Aided Design Models,” AIAA, Vol. 2010-816099, September 2010.

12 Pointwise, Pointwise, Inc., http://www.pointwise.com/.

13 S. Karman Jr., "Unstructured Viscous Layer Insertion Using Linear-Elastic Smoothing," AIAA Journal, Volume

45, Number 1, pp. 168-180, January 2007.

14 Anderson, W.K., Karman, S.L., and Burdyshaw, C., “Geometry Parameterization Method for Multidisciplinary

Applications,” AIAA Journal, Vol. 47, No. 6, June 2009.

15 http://www.bell-labs.com/project/PORT/

16 Wrenn, G., “An indirect method for numerical optimization using the Kreisselmeier–Steinhauser function,”

Contractor Report NASA CR-4220, NASA Langley Research Center, Hampton, VA. 1989.

17 https://software.sandia.gov/opt++/

18 Sreenivas, K., Hyams, D. G., Nichols, D. S., Mitchell, B., Taylor, L. K., Briley, W. R., and Whitfield, D. L.,

"Development of an Unstructured Parallel Flow Solver for Arbitrary Mach Numbers," AIAA 2005-0325, 43rd

Aerospace Sciences Meeting and Exhibit, Reno, NV, January 2005.

19 Burdyshaw, C. E., "Achieving Automatic Concurrency Between Computational Field Solvers and Adjoint

Sensitivity Codes," Ph.D. Dissertation, University of Tennessee at Chattanooga, May 2006.

20 Dannenhoffer, J. F. and Haimes, R., “Quilts: A Technique for Improving Boundary Representations for CFD,”

AIAA, Vol. 4131, June 2003, pp. 1–9. 16

21 UIUC Airfoil Coordinates Database,” 2011, http://www.ae.illinois.edu/m-selig/ ads/coord_database.html.

Page 14: Adjoint-Based Design Optimization Using CAD ...highorder.berkeley.edu/proceedings/aiaa-annual-2012/paper0086.pdfsections defined using a NACA 2412 airfoil. ... One aspect of this control

AIAA-2012-****

American Institute of Aeronautics and Astronautics

14