Software for Aerodynamics and Aircraft Design

W.H. Mason

Kevin T. Crofton Department of Aerospace and Ocean Engineering

Virginia Tech

This page contains programs that may prove useful to aerodynamics and design class students. These are mostly old-fashioned codes without graphical user interfaces. Originally they were all FORTRAN source code. However, I’ve recently started adding executables since the FORTRAN source files typically can’t be used by current undergraduates. In addition, some methods are given as MATLAB m-files. Important Note: Many of these programs require a text file as input. DO NOT embed tabs in these files. ALSO, the location of the input on each line is critical. The input instructions are often given as “cards”, from the days when the text files were physically a deck of computer cards. The spacing definitions use FORTRAN terminalogy. Do yourself a favor and learn what this means. For example, F10 means a real number (with a decimal point) taking 10 spaces. Study the sample input files for examples of how this works (in fact, ALWAYS run the sample case before doing anything else with these codes). For pointers on running codes, read the chapter from my Applied Computational Aerodynamics notes, Computers, Codes, and Engineering (a pdf file). In some cases I have now added links to sites located elsewhere, where key codes are available.

Note: files here may be posted in various formats. Remember that for PCs (Windows) the lines are terminated with a CR/LF, for a "classic Mac" the lines end with a CR, while for unix (and modern Macs) the lines are terminated by an LF. Recall CR means carriage return and LF means line feed. Add dealing with these variations to your computational engineering toolbox. Finally, students often have permissions issues with windows *.exe files: All .exe files are run as user; however, the default file output location is usually C: which is an administrator directory and will create an error at run time due to permissions issues. Always use a folder with user permissions to output data files to such as Documents. Finally, a student has further suggestions and tips for using the codes. 1. Do not have any spaces in the directory name, Ex. ( C:\User\Documents\VT 2016, The space between "VT" and "2016" will not be recognized by the code) 2. The input file must match the example input file exactly (The number of spaces between the columns and before the first column of numbers must match the example code) Finally, the programs and manuals change as students suggest clarifications and other improvements. And these codes are of course for educational use only.

Other useful online Java-based programs are available at www.engapplets.vt.edu.

Another source of classic aerodynamics codes is the CD sold by Ralph Carmichael, Public Domain Aeronautical Software (PDAS). These codes can now be downloaded for free!

Comments or questions? Contact me at whmason@vt.edu. Last modified: March 28, 2017.

Current Software

Aerocal Pak #1 Takeoff Distance Calculation*
stand alone NACA 1135* Landing Gear Integration
Standard atmosphere Propulsion
Airplane Design and Sizing Geometry
Lifting Line Theory Skin Friction/Form Factor Drag* friction
Induced drag Vortex Lattice Methods
Airfoil Aerodynamics Supersonic Aerodynamics
Stability and Control Cryogenic Wind Tunnel Testing
* - executable available


Aerocal Pak #1

This software is a BASIC program that implements the old Aerocal Pak #1, Basic Aerodynamic Relations. It has the NACA 1135 tables, Prandtl-Meyer angle and inverse, properties of oblique shocks, the Rayleigh/Fanno line table and the 1976 standard atmosphere. Originally written for a programmable calculator, the code is in QuickBASIC, and runs as is on a Mac with QuickBASIC. A one line change is required to run it on an IBM type PC. The file is standard ascii text.

Back to the code menu


stand alone NACA 1135

These codes compute the compressible flow functions given in NACA 1135, plus a few more useful relations. These are executables that replace the NACA 1135 portions of Aerocal Pak#1 above, which doesn't run on many computers anymore.

Back to the code menu


FOILGEN Airfoil generation: NACA 4&5 Series and 6 and 6A camber lines

This is an interactive FORTRAN program that allows the user to construct airfoils using the NACA 4 digit or modified 4 digit airfoil thickness distributions and the NACA 4 digit, 5 digit or 6- and 6A series camber lines. A variety of output options are available on the screen. It can also create a file for use as input to airfoil analysis programs. This file is in the so-called "Jameson format". The file is standard ascii text. It should run using any FORTRAN compiler.The theoretical description of the equations used is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes.

Back to the code menu

Airfoil generation: NACA 6&6A Series

This is a FORTRAN program that allows the user to obtain (approximately) the NACA 6 digit or 6A digit airfoils. The program was written at NASA by Cuyler Brooks and Charles Ladson. It appears to be considered to be in the public domain. The file is standard ascii text. It should run using any FORTRAN compiler. The theoretical description of the equations for the camber lines is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes. The thickness distribution of these airfoils is not described by a single equation.

Back to the code menu


Planform Analysis

This software includes a BASIC program that implements the old Aerocal Pak #2, Basic Geometry for Aerodynamics. I put it up for the little planform and wing analysis programs, which I find still find useful, although today it should be on a spreadsheet. It also generates the shapes for several of the classic bodies of revolution, and has the BASIC (original) version of the FORTRAN program FOILGEN given above for the NACA airfoils. Originally written for a programmable calculator, and then translated to Applesoft, the code is in QuickBASIC, and runs as is on a Mac with QuickBASIC. A one line change is required to run it on an IBM type PC. The file is standard ascii text. The theoretical description is available as a pdf file which is actually an Appendix to my Applied Computational Aerodynamics Notes. An executable of a FORTRAN program in also posted here, together with the manual, sample input and sample output.

Back to the code menu


Nicolai's sizing program(s)

I've included four files here. They implement Nicolai's aircraft sizing algorithm in QuickBASIC and more recently, REALbasic. Acsize, provides the size, while the second code, acsweep, covers a range of takeoff gross weights, showing the empty weight required and available. They should run on either Mac or IBM type PCs. In the QuickBASIC versions, data values are set in the program, with the hope that the users will look at the code and see what is going on. The files are standard ascii text. The REALbasic programs are executables for both the Mac and PC. The only modification to Nicolai's notation is a supersonic mission leg.


The OpenVSP Tools

OpenVSP is an open source vehicle design suite. VSP stands for Vehicle Sketch Pad. The origin of this work is currently NASA Langley Research Center, with work done at Cal Poly.

Back to the code menu


Dan Raymer's Design Pages

Dan Raymer has a good collection of aircraft design tools, including a description of design software.

Back to the code menu


CEASIOM

CEASIOM is a European aircraft design project. Some of the capability is free, and some requires joining the consortium.

Back to the code menu


Simple Lifting Line Theory

This is an interactive FORTRAN program that solves the classical Prandtl lifting line theory using the monoplane equation. The file is standard ascii text. It should run using any FORTRAN compiler.

Back to the code menu


Utah State Lifting Line and Analysis Codes

Utah State has a page of Aero Analysis Codes, the lifting line method is called MachUp. You need to sign up, but can then do analysis for free. Their group has been working on improved lifting line methods for many years.

Back to the code menu


Standard atmosphere routines

Originally a FORTRAN subroutine (actually TI-59 and then Applesoft), a MATLAB file is also provided. stdatmtest.m is the driving script file for the MATLAB function file. The subroutine can be used in other programs. It is the same routine used in Pak #1 above. The units are listed in the subroutine header. A sample main program is included to illustrate the use of the program, and it should run using any FORTRAN compiler, or in MATLAB. Note that the MATLAB version was originally converted from FORTRAN by Paul Buller.

The following web-based standard atmosphere calculators have been suggested by students:

Back to the code menu


Skin Friction/Form Factor Drag estimation

This program can be used to estimate the basic friction drag of an airplane. It is from Mason's Applied Computational Aerodynamics Class, and the acrobat manual is App. D.5 of the class notes. It should run using any FORTRAN compiler. Along with the manual and code, a sample input and the resulting sample output are provided. In November of 2002 an executable version has been added.

Back to the code menu


Induced Drag for a single planar wing

Computation of the induced drag of a single planar surface given the spanload distribution. You get a value of the span e as output. The coefficients of the assumed Fourier Series are computed using a Fast Fourier Transform. The program was written by Dave Ives, and used in numerous programs developed for the government by Grumman.

Back to the code menu


Induced Drag for nonplanar lifting systems

This program can be used to find the induced drag of a system of nonplanar lifting elements. It was written by Joel Grasmeyer. It has both design and analysis capabilities. This means that you either find the spanload required to obtain the minimum induced drag, or you can input a spanload and find the induced drag. The program also prints out the span efficiency factor e. This program does not give you the twist and camber required to generate the spanloads. Three FORTRAN programs are required and must be linked to run the program.

Back to the code menu


Induced Drag for simple nonplanar lifting systems, with camber line design

John Lamar's design program, modified to find the span e for two nonplanar lifting surfaces given the spanload on each surface. This is a more capable version of LIDRAG. This code also finds the wing camber and twist required to obtain this spanload at subsonic speeds. The code will also do an optimization analysis, finding the minimum trimmed drag and spanload required to achieve it. Three samples are included. The first is the sample case in the NASA TN, the second is an isolated wing with an aspect ratio of 10, taper ratio of 0.5, and a sweep of 30 degrees. Both of those cases neglect airfoil contributions. The third case is for a wing canard and includes airfoil properties in the optimization.

Back to the code menu


Minimum drag and area distribution

MinDrag computes the minimum value of the supersonic wave drag, and the area distribution required to attain this value for a given length, XL, volume, nose area [Snose] and base area [Sbase], and with another area specified at a given location along the body [XSgiven, Sgiven]. It uses the formulas published by W.T. Lord and E. Eminton in “Slender Bodies of Minimum Wave Drag,” Journal of the Aeronautical Sciences, August, 1954, pages 569-570.

Back to the code menu


Harris Wave Drag computation

(manual and data sets only)

AWAVE is a version of the Harris Wave Drag code. You can get a copy from the PDAS site described above. We have put the manual (essentially a description of the Craiden geometry data set), and a sample input and output here.

Back to the code menu


Control Power Assessment

This is a collection of codes that may be useful in aircraft conceptual design. There are two main components, a vortex lattice code to provide at least a rough estimate of the stability and control derivatives, and a spreadsheet to evaluate a design using specified aircraft characteristics. We also have codes that implement the methods of NASA TP 2907 to find the best way to trim the aircraft when you have multiple possibilities. This includes three surfaces, and two surfaces with thrust vectoring.

For the executable of JKayVLM, use these files:

The rest of the material is available below:

Back to the code menu


Lateral/Directional estimates and Engine Out

These are codes that can be used to estimate some of the key lateral directional analysis, including stability and control derivatives for use in estimating aircraft characteristics. LDstab is basically an implementation of the DATCOM method, with adjustments to match published B747 data. It should be used in place of lateral-directional estimates from Jacob Kay's code given above, which are on shakey theoretical grounds. This code was developed by Joel Grasmeyer for the truss-braced wing project. The report covers an engine out analysis, but the program doesn't provides the complete analysis. Use VMCA below to do the engine out analysis.

Back to the code menu


DigitalDATCOM stability and control estimation

(sample input files only)

Digital DATCOM is a code that can be used to estimate stability and control derivatives. It is an industrial strength code that has a non-trivial learning curve. However, it has the capability to estimate stability and control characteristics at supersonic speeds. This information is not available in Roskam's volumes, so we needed to add it to our computing library.

Back to the code menu


Single engine minimum control speed, VMCA

VMCA is a MATLAB file to calculate the single engine minimum control speed of a jet powered airplane. It was written by Mike Cavanaugh and uses the stability and control derivatives estimated from the lateral/direction program by Joel Grassmeyer, listed above.

Back to the code menu


Vortex lattice design to get a 2D camber line for a given chordload

The camber line required to produce a specified chord load distribution is computed using the quasi-vortex lattice method by Prof. Lan of the University of Kansas. The method is valid for two dimensional incompressible flow, and is an original (and very simple) program. Thanks to Tom Zeiller for improvements and bug fixes.

Back to the code menu


Vortex lattice analysis and design: VLMpc

John Lamar's two surface vortex lattice program, developed at NASA Langley. The program treats two lifting surfaces using up to 200 panels. Vortex flows are estimated using the leading edge suction analogy. This program was typed in from the NASA TN D, which contained the listing, by students in Applied Computational Aerodynamics nearly 10 years ago. John Lamar didn't have a copy of the code anymore. It has been modified to run in WATFOR, and to produce 80 column output. Now it runs in Compaq Visual Fortran. In November 2002 an executable has been added. The source now includes PC directory code specific to PCs.

Back to the code menu


Vortex lattice analysis and design: VLM 4.997 manual

VLM 4.997 is a NASA Langley Vortex Lattice Program which can handle four planforms and up to 400 panels. It is an extension and improvement of the two surface code discussed above. This is an Acrobat Manual only. If you want the code you need to contact NASA Langley. Our version is available for student use in the design lab.

Back to the code menu


Vortex lattice analysis code in MATLAB: Tornado

Tornado is a Vortex Lattice Program, written in MATLAB. It comes from KTH, the Royal Institute of Technology, in Stockholm, Sweden. Tomas Melin wrote the program, and Professor Arthur Rizzi was his advisor. It is a very flexible program, and can handle a wide range of geometries. Also, it is still being developed, so check the site for updated versions.

Back to the code menu


An extended vortex lattice code from Prof. Drela at MIT and Harold Youngren: AVL

AVLis a very general Vortex Lattice Program. It comes from MIT, and is by the author of the widely used XFOIL airfoil analysis and design code. It is a very flexible program, and can handle a wide range of geometries.

Back to the code menu


Subsonic Airfoil Analysis and Design: XFOIL 6.9

XFOIL is an airfoil analysis and design program from Prof. Mark Drela at MIT. It is for essentially incompressible single element airfoils. However, it includes viscous effects, and can be used in an inverse mode, where the pressure distribution is input and the required geometry found. It runs on workstations and win32 PC systems. Some very good airfoil work has been done by design class students with this code.

Back to the code menu


Subsonic Airfoil Analysis and Design: Pablo

Pablo is a subsonic airfoil analysis and design program. It comes from KTH, the Royal Institute of Technology, in Stockholm, Sweden. Christian Wauquiez wrote the program, and Professor Arthur Rizzi was his advisor. Pablo stands for "Potential flow around Airfoils with Boundary Layer coupled One-way". It is a MATLAB code, so you need to have MATLAB to run it. Eventually, this url will go away, and when it does, Prof. Rizzi has given us permission to put this up on our site at Virginia Tech.

Back to the code menu

Subsonic Airfoil Analysis and Design: JavaFoil

JavaFoil is a subsonic airfoil analysis and design program. It comes from Germany, and is by Martin Hepperle. It does a panel method solution and a boundary layer calculation. Our students like this program.

Back to the code menu


Transonic airfoil analysis: TSFOIL2

TSFOIL2 provides a finite difference solution of the transonic small disturbance equation. It will run on my Mac with no problem. The source code is provided as standard ascii text. The code was written by Earll Murman and co-workers, and includes wind tunnel wall effects. It originated at NASA Ames. It’s very old, but appears to be in the public domain. The listing was included in a NASA CR which is referenced in the mini-manual provided here as a pdf file. The NASA CR (3064) is also now available as a pdf file from the NASA Technical Reports Server.

Back to the code menu


Wind Tunnel Testing

Wind tunnel testing, especially at transonic speeds and cryogenic temperatures requires some planning. Information and a spreadsheet calculator are provided here (for educational purposes). This allows you to find the test Reynolds number and dynamic pressure.

Back to the code menu


Supersonic aerodynamics of arrow wings

Arrow is a code to compute the linear theory lift curve slope, aerodynamic center and drag due to lift of arrow wings at supersonic speed.

Back to the code menu


Supersonic cone at zero angle of attack

This is a link to a JAVA code that finds the pressure on a circular cone at supersonic speed at zero angle of attack. I checked it with the famous Sims Table (NASA SP-3004). It doesn't give the pressure coefficient, but you can find Cp from the simple relation between pressure and pressure coefficient.

Sims also made tables for circular cones at small angle of attack, see NASA SP 3007.

Back to the code menu


Propulsion

The best source of propulsion information and software is the site by Professor Jack Mattingly. He is a co-author of the AIAA Aircraft Engine Design book, and the software that goes with it. Various codes are available from him.

Back to the code menu


Landing Gear Integration Codes

These programs allow the designer to assess the configuration against the landing gear requirements, and also the pavement thickness requirements. Finally, there is a code that will estimate the landing gear weight. The report and codes are available on a separate page that is accessible by looking at the html cover page for the report and software for MAD 96-09-01, "Landing Gear Integration in Aircraft Conceptual Design."

Back to the code menu


Takeoff Distance Calculation

This program computes the takeoff distance, including the balanced field length. The program uses the method of Krenkel and Salzman. Two versions are available. The original FORTRAN program was written by Sean Lynn as an undergraduate research project. After some initial experience, a few improvements to the numerics were made by Pete MacMillin, who felt compelled to convert the code to c. For the test case, there is very little difference between the answers from the two different codes. The input files are also slightly different between the FORTRAN and c verisons. The basic theory is contained in Sean's, final report, which is available as a pdf file.

Back to the code menu

direct comments and questions to W.H. Mason, whmason@vt.edu

Return