|
AVL Analysis Interface Module (AIM)
AVL Analysis Interface Module (AIM)
|
The use of lower-dimensional design tools is clearly desirable in a multidisciplinary/multi-fidelity aero design optimization setting. This is the crux of the Computational Aircraft Prototype Syntheses (CAPS) program. In many ways describing geometry appropriate for AVL (the Athena Vortex Lattice) code is more cumbersome than higher fidelity codes that require an Outer Mold Line. The goal is to make a CAPS AIM (Analysis Input Module) that directly feeds input to AVL and extracts the output quantities of interest from AVL's execution. This needs to be consistent with a build description that is hierarchical and multi-fidelity. That is, the build description that generates the geometric data at this level can be further enhanced to produce the complete OML of the aircraft design under consideration. As for the geometric description, AVL requires airfoil section data specified at the appropriate locations that describe the skeleton of the aircraft. These sections when lofted as groups and finally unioned together builds the OML. Clearly, intercepting the state of the geometry before these higher-level operations are applied provides the data appropriate for AVL. This naturally constructs a hierarchical geometric view where a design can progress into higher fidelities and feedback can be achieved where we can go back to this level of description when need be.
An outline of the AIM's inputs and outputs are provided in AIM Inputs and AIM Outputs, respectively.
Details on the use of units are outlined in AIM Units.
Geometric attribution that the AIM makes use is provided in AIM Attributes.
The AVL AIM can automatically execute avl, with details provided in AIM Execution.
To populate output data the AIM expects files, "capsTotalForce.txt", "capsStripForce.txt", "capsStatbilityDeriv.txt", "capsBodyAxisDeriv.txt", and "capsHingeMoment.txt" to exist after running AVL (see AIM Outputs for additional information).
The AVL coordinate system assumption (X – downstream, Y – out the right wing, Z – up) needs to be followed.
Within OpenCSM there are a number of airfoil generation UDPs (User Defined Primitives). These include NACA 4 series, a more general NACA 4/5/6 series generator, Sobieczky's PARSEC parameterization and Kulfan's CST parameterization. All of these UDPs generate EGADS FaceBodies where the Face's underlying Surface is planar and the bounds of the Face is a closed set of Edges whose underlying Curves contain the airfoil shape.
Important Airfoil Geometry Assumptions
Note: Additional spurious Nodes on the upper and lower Edges of the airfoil are acceptable.
The AVL Surface Sections with airfoils are automatically generated from a set of FaceBodys with the same capsGroup attributes, and the geometric details extracted from the geometry. Attempts are made to orient and sort FaceBody, but users are encouraged to check the airfoil orientation in the AVL input file when setting up a new problem. The FaceBody must contain at least two edges and two nodes, but may contain any number of Edges otherwise. If the FaceBody contains more nodes, the node with the smallest x value is used to define the leading edge, the node with the largest x defines the trailing edge. The airfoil may have a single Edge that defines a straight blunt trailing edge. Xle, Yle, and Zle, are taken from the Node associated with the Leading Edge. The Chord is computed by getting the distance between the LE and TE (if there is a blunt trainling Edge in the FaceBody the TE point is considered the mid-position on that Edge). Ainc is computed by registering the chordal direction of the FaceBody against the X-Z plane. The airfoil shapes are generated by sampling the normalized Curves and put directly in the input file via the AIRFOIL keyword, or put in separate airfoil files if the AirfoilFiles (see AIM Inputs) input is set to True.
It should be noted that general construction in either OpenCSM or even EGADS will be supported as long as the topology described above is used. But care should be taken when constructing the airfoil shape so that a discontinuity (i.e., simply C0) is not generated at the Node representing the Leading Edge. This can be done by fitting a spline through the entire shape as one and then intersecting the single Edge to place the LE Node.
AVL surfaces are also able to be constructed from a sequence of LINE WireBodies. However, the bodies must be constructed in order and are not sorted by the AIM, unless the optional sortVec surface input is specified. This method is useful for creating cruciform fuselages or nacelles.
The rest of the information and options required to fill out the AVL geometry input file ( xxx.avl) will be found in the attributes attached to the FaceBody itself. The conventions used will be described in the next section.
Also note that this first implementation is not intended to provide complete control over AVL. In particular, there is no mention above of the DESIGN AVL keywords.
An example problem using the AVL AIM may be found at AVL AIM Examples, which contains example *.csm input files and pyCAPS scripts designed to make use of the AVL AIM. These example scripts make extensive use of the AIM Attributes, AIM Inputs, and AIM Outputs.