This appendix collects a few useful sources of information. Special thanks to Philippe-Andre Tetrault for adding the actual links to the information sources. We include general numerical analysis programs, sources of aerodynamics codes, and places to look on the net for additional information.
A number of sources of numerical analysis subroutines are available at reasonable prices. Some are even free. Other numerical methods subroutines are expensive.
The standard source for numerical algorithms is netlib. The following information should help you get started using this resource:
Finding Numerical Analysis Software on the Web (from Tony Giunta)
The Netlib software repository is maintained by the Department of Energy's Oak Ride National Lab and the University of Tennessee at Knoxville. The software libraries in Netlib, provide computational tools, in the form of subroutines, to perform various mathematical and numerical analysis operations. Some of the packages of particular interest to engineers are LAPACK (linear algebra) and EISPACK (eigenvalue, eigenvector analysis). The software libraries come in a variety of languages. For example, LAPACK and CLAPACK libraries contain the same linear algebra routines in FORTRAN and C, respectively. Also, there are a number of libraries for C++, High-Performance FORTRAN (HPF), and FORTRAN90 subroutines, as well as parallel processing routines such as PVM and MPI.
The web site for Netlib provides a useful search tool which is the second item listed on the Netlib homepage. The directions on this home page indicate how to search for items of interest.
Note: Often, a particular subroutine uses a number of other Netlib routines in its calculations. Netlib gives the user the choice of downloading only the single subroutine or the subroutine and its dependencies. Usually it is a good idea to download all of the files unless the user is sure that only the single routine is needed.
Numerical Methods and Software, by David Kahaner, Cleve Moler and Stephen Nash, Prentice Hall, Englewood Cliffs, 1989.
This book comes with a disk containing a good collection of subroutines. These are actually comprehensive commercial grade subroutines that come from the standard public domain libraries. They are much larger routines than those in the Numerical Recipes book. Because they are much more comprehensive, I've found them to be slightly harder to use because they rely on numerous other subroutines, and collecting them sometimes takes more time. However, they also work very well. Because they are based on public domain programs, as far as I can tell, they can be distributed with your own programs without getting permission.
Numerical Recipes in FORTRAN, The Art of Scientific Computing, Second Edition by William H. Press, Saul A Teukolsky, William T. Vetterling, and Brian P. Flannery, Cambridge University Press, Cambridge, 1992.
This is the book most students use. It is available online in PostScript or Adobe Acrobat format. It contains listings of subroutines implementing the methods (recipes). The routines are brief, intended to illustrate the methods, and are not necessarily meant to be general purpose subroutines. However, my experience with them is good. Professional numerical analysts don't approve of using these routines, so be careful. Also, you cannot use them in codes you distribute. This is probably because the authors know the routines are not really a professional programming product. A disk with the programs is available for an additional cost, as is a small paperback book containing examples of the use of the programs. An edition of the book with the routines in the C language is also available, as well as an example book and disk. I have found these sources to be easy to use.
Elementary Numerical Analysis, by S.D. Conte and Carl de Boor, McGraw-Hill, New York, 2nd Ed., 1972.
This book has a number of good computer routines, including root finding, solution of equations, systems of linear algebraic equations, ordinary differential equations, quadrature and interpolation (splines).
SLATEC
This is a library of programs available electronically that are public domain. The authors of Numerical Recipes recommend the use of these routines for distribution. Once again, all the public domain libraries are closely related. However, there are not directly interchangeable, and you must be careful to not get them mixed up. SLATEC is very large.
>From the Numerical Recipes people: "If you are looking for public domain numerical software that can be redistributed freely (as Numerical Recipes *cannot*), you should look at the collections that can be obtained from NETLIB. We also recommend SLATEC as a good alternative to the commercial, and therefore restrictively licensed IMSL and NAG libraries."
The SLATEC library, a comprehensive collection of over 1400 mathematical and statistical routines, may be of particular interest.t
Also from the Numerical Recipes gopher site, by W. Press:
The SLATEC Common Mathematical Library is an extensive public-domain FORTRAN source code library consisting of 1400 routines and 300,000 lines of code and documentation. It is developed and maintained by a consortium of Department of Energy and Department of Defense national laboratories. Version 4.0 of the library was released in December, 1992. It incorporates within itself several other public domain packages, including EISPACK, FFTPACK, QUADPACK, FNLIB, BSPLINE, SLAP, and others. It is distributed by
National Energy Software Center
9700 Cass Ave
Argonne, Illinois 60439
All questions about the library should be directed there.
SLATEC's size is a problem. The routines are interconnected. To use a single routine, between 6 and 20 subsidiary routines may be required. As a public service, Numerical Recipes has put together a multiply cross-linked gopher tree. The tree allows the routines and their documentation to be located using gopher, either by subject or name. Most importantly, it allows a routine and its required subsidiary routines to be efficiently downloaded in source code form.
Once in SLATEC, there are several things to remember: (1) Almost all the routines require at least several of the subroutines that have been collected in the file on the top level of the SLATEC directory called "slatec-util.f". Be sure to download this file, compile and link it with any other routines. (2) Documentation for each file (each .f file) is in a similarly-named .hdr file, in the same subject classified subdirectory of the tree. In the SLATEC library as released, the documentation is embedded in each FORTRAN file. (3) When a routine requires additional subsidiary routines, there are links to these routines in a dependencies directory, visible at the same level as the .f file. Example: to use the routine CBESJ (Bessel function of complex argument), you must download the files slatec-util.f (from the top directory), cbesj.f and cbesj.hdr (from the subject directory C10A4), and all the routines in "cbesj_dependencies" (also in C10A4).
See a software review for general codes useful in aerodynamics.
I also have a small set of codes available online.
Many text books contain listings illustrating the methods. They can be a valuable learning tool, although many of the codes were not written by computer scientists, and do not reflect good programming practice (remember they are included with the cost of the book, and thus are essentially free - remember you get what you pay for). In some cases graduate or even undergraduates wrote the programs. Textbooks with code listings:
Joseph A. Schetz, Boundary Layer Analysis, Prentice Hall, Englewood Cliffs, 1993.
Tuncer Cebeci and Peter Bradshaw, Momentum Transfer in Boundary Layers, Hemisphere Publishing Corp, New York, McGraw-Hill Book Company, 1977.
This book contains FORTRAN programs for:
Tuncer Cebeci and Peter Bradshaw, Physical and Computational Aspects of Convective Heat Transfer, Springer-Verlag, New York, 1984
There is also a paperback book which provides supplemental comments on these programs, as well as solutions obtained using them:
Tuncer Cebeci, Solutions Manual and Computer Programs for Physical and Computational Aspects of Convective Heat Transfer by Tuncer Cebeci and Peter Bradshaw, Springer-Verlag, New York, 1989
Jack Moran, An Introduction to Theoretical and Computational Aerodynamics, John Wiley & Sons, New York, 1984.
Joseph Katz and Allen Plotkin, Low-Speed Aerodynamics: From Wing Theory to Panel Methods, McGraw-Hill, Inc., 1991 Fourteen programs are in an appendix:
Two-dimensional panel methods
Two-dimensional panel methods based on Neumann BC
Two-dimensional panel methods based on Dirichlet BC
Three-dimensional programs
Time Dependent Programs:
C.B. Stribling, BASIC aerodynamics, Butterworths, London, 1984.
This book has listings of programs in BASIC, from the days way when BASIC was the primary language available on personal computers.
Joe F. Thompson, Z.U.A. Warsi, and C. Wayne Mastin, Numerical Grid Generation: Foundations and Applications, Elsevier Science Publishing Co., New York, 1985.
Model programs are included for:
Patrick Knupp and Stanly Steinberg, Fundamentals of Grid Generation, CRC Press, Boca Raton, 1993.
This book comes with a disk containing examples of the methods covered in the book.
C.A.J. Fletcher, Computational Techniques for Fluid Dynamics, Springer-Verlag, Berlin, 1988.
Volume I, Fundamental and General Techniques
Volume II, Specific Techniques for Different Flow Categories
Arnold M. Kuethe and Chuen-Yen Chow, Foundations of Aerodynamics, John Wiley & Sons, New York, Fourth Edition, 1986. The fourth edition of this book has two listings of programs, in FORTRAN.
R.I. Lewis, Vortex Element Methods for Fluid Dynamic Analysis of Engineering Systems, Cambridge University Press, Cambridge. These routines are in Pascal:
This is a short list of vendors. Future versions of this appendix will contain more listings. Students should realize that some of these codes are not student programs and are (very) expensive by student standards.
AeroSoft, Inc.
1872 Pratt Drive, Suite 1275
Blacksburg, VA 24060-6363
Phone (540) 231-6125, FAX (540) 231-6137
AeroSoft sells GASP (General Aerodynamic Simulation Program), a general purpose flow solver. Primarily developed for hypersonic analysis, a particular strength is the capability to handle finite rate chemistry. However, the code can treat steady and unsteady flows across the Mach range.
Analytical Methods, Inc.
2133 - 152nd Avenue N.E.
Redmond, WA, 98052
Phone (206) 643-9090, FAX (206) 746-1299
AMI sells a number of codes. They include
Desktop Aeronautics
P.O. Box 9937
Stanford, CA 94305
Phone (415) 424-8588
These are the codes by Ilan Kroo. Currently they run on Macintosh computers, but some are available for IBM PCs. Programs currently available include:
Public Domain Aeronautical Software
300 Potrero St.
Santa Cruz, CA 95060
(408) 454-9754
e-mail: ralph@pdas.com
Ralph Carmichael, who was there at the beginning as a NASA Engineer, is selling a number of programs developed under NASA funding on a CD rom. They are ready to run under MS-DOS or Windows, and come with complete source codes, descriptions, and sample cases (both input and output. The latest release is version 2.0, and sells for $150. I have used version 1.0, and had no problem running the codes on a Mac. This is a very good deal. The Applied Computational Aerodynamics Text discusses the basic theory used in these programs. Version 2.0 contains:
AeroLogic
1613 Altivo Way
Los Angeles, CA 90026
(213) 665-1397
(213) 953-8378 fax
AeroLogic sells the Personal Skunk Works system of codes. There are three principal components, Loftsman/P, Cmarc, and Postmarc. Loftsman is the lofting program used to develop the geometry. Cmarc is a low order panel method. It is based on the NASA Ames program PMARK, but re-written in C and setup for use on PCs. Postmark is the graphics postprocessor for Cmarc (or PMARC). This system is designed for professional use, but educational rates are available.
DARcorporation
120 East 9th Street, Suite 2
Lawrence, KS 66044
1-800-327-7144
(913) 832-0524
(913) 832-0524 fax
Although Professor Roskam's company is mainly known for aircraft design and stability and control materials, they are now selling a number of aerodynamics oriented programs, including stability and control derivative estimation software, and drag estination software. These codes are available for the Windows operating system. I have not run these codes personally, but I have seen their aircraft design code, AAA, demonstrated on unix systems, and it suggests that these codes would be good.
CFD Research Corporation
3325 Triana Blvd
Huntsville, AL 35805
Phone (205) 536-6576, FAX (205) 536-6590
Several books are available online: