Saturday, 1 November 2008

Indonesian Space Sciences Technology School,

Computational Methods

in Aerospace Engineering 


Prof. David Darmofal

Course Meeting Times

Three sessions / week
1 hour / session



Added & Edited

By: Arip Nurahman
Department of Physics Education, Faculty of Sciences and Mathematics
Indonesia University of Education


Follower Open Course Ware at Massachusetts Institute of Technology
Cambridge, USA
Department of Physics
Aeronautics and Astronautics Engineering

Mach 2 inviscid flow simulation over a cylinder, from Project #1. (Image courtesy of Professor Darmofal.)

Course Highlights

This course features a complete set of lecture notes and assignments, and also a variety of study materials.

Course Description

This course serves as an introduction to computational techniques arising in aerospace engineering. Applications are drawn from aerospace structures, aerodynamics, dynamics and control, and aerospace systems. Techniques include: numerical integration of systems of ordinary differential equations; finite-difference, finite-volume, and finite-element discretization of partial differential equations; numerical linear algebra; eigenvalue problems; and optimization with constraints.

Technical Requirements

Special software is required to use some of the files in this course: .m, .mat.

Study Materials

The following materials are provided for preparation for the problem sets and final exam.

Sample Problems Sets

Problem Set 1 (PDF)
Solution Set 1 (PDF)
Problem Set 2 (PDF)
Solution Set 2 (PDF)

Final Exam Preparation

Preparation Materials (PDF)


Course Objectives

Students successfully completing 16.901 should have:
  1. A conceptual understanding of computational methods commonly used for analysis and design of aerospace systems.
  2. A working knowledge of computational methods including experience implementing them for model problems drawn from aerospace engineering applications.
  3. A basic foundation in theoretical techniques to analyze the behavior of computational methods.

Measurable Outcomes

The subject is divided into four sections:
  • Integration of Systems of Ordinary Differential Equations (ODE's)
  • Finite Volume and Finite Difference Methods for Partial Differential Equations (PDE's)
  • Finite Element Methods for Partial Differential Equations
  • Probabilistic Simulation Techniques
For each of these sections, the measurable outcomes are described below. Specifically, a student successfully completing 16.901 will be able to:

Integration Methods for ODE's

  1. (a) Describe the Adams-Bashforth, Adams-Moulton, and Backwards Differentiation families of multi-step methods;
    (b) Describe the form of the Runge-Kutta family of multi-stage methods; and
    (c) Explain the relative computational costs of multi-step versus multi-stage methods.
  2. (a) Explain the concept of stiffness of a system of equations, and
    (b) Describe how it impacts the choice of numerical method for solving the equations.
  3. (a) Explain the differences and relative advantages between explicit and implicit methods to integrate systems of ordinary differential equations; and
    (b) For nonlinear systems of equations, explain how a Newton-Raphson can be used in the solution of an implicit method.
  4. (a) Define a convergent method;
    (b) Define a consistent method;
    (c) Explain what (zero) stability is; and
    (d) Demonstrate an understanding of the Dahlquist Equivalence Theorem by describing the relationship between a convergent method, consistency, and stability.
  5. Determine if a multi-step method is stable and consistent.
  6. (a) Define global and local order of accuracy for an ODE integration method,
    (b) Describe the relationship between global and local order of accuracy, and
    (c) Calculate the local order of accuracy for a given method using a Taylor series analysis.
  7. (a) Define eigenvalue stability, and
    (b) Determine the stability boundary for a multi-step or multi-stage method applied to a linear system of ODE's.
  8. Recommend an appropriate ODE integration method based on the features of the problem being solved.
  9. Implement multi-step and multi-stage methods to solve a representative system of ODE's from an engineering application.

Finite Difference and Finite Volume Methods for PDE's

  1. (a) Define the physical domain of dependence for a problem,
    (b) Define and determine the numerical domain of dependence for a discretization, and
    (c) Explain the CFL condition and determine the timestep constraints resulting from the CFL conditions.
  2. Determine the local truncation error for a finite difference approximation of a PDE using a Taylor series analysis.
  3. Explain the difference between a centered and a one-sided (e.g. upwind) discretization.
  4. Describe the Godunov finite volume discretization of two-dimensional convection on an unstructured mesh.
  5. Perform an eigenvalue stability analysis of a finite difference approximation of a PDE using either Von Neumann analysis or a semi-discrete (method of lines) analysis.
  6. Implement a finite difference or finite volume discretization to solve a representative PDE (or set of PDE's) from an engineering application.

Finite Element Methods for PDE's

  1. (a) Describe how the Method of Weighted Residuals (MWR) can be used to calculate an approximate solution to a PDE,
    (b) Describe the differences between MWR, the collocation method, and the least-squares method for approximating a PDE, and
    (c) Describe what a Galerkin MWR is.
  2. (a) Describe the choice of approximate solutions (i.e. the test functions or interpolants) used in the Finite Element Method, and
    (b) Give examples of a basis for the approximate solutions in particular including a nodal basis for at least linear and quadratic solutions.
  3. (a) Describe how integrals are performed using a reference element,
    (b) Explain how Gaussian quadrature rules are derived, and
    (c) Describe how Gaussian quadrature is used to approximate an integral in the reference element.
  4. Explain how Dirichlet and Neumann boundary conditions are implemented for Laplace's equation discretized by FEM.
  5. (a) Describe how the FEM discretization results in a system of discrete equations and, for linear problems, gives rises to the stiffness matrix; and
    (b) Describe the meaning of the entries (rows and columns) of the stiffness matrix and of the right-hand side vector for linear problems.

Probabilistic Methods

Note: all students are expected to have a thorough understanding of probability, random variables, PDF's, CDF's, mean (expectation), variance, standard deviation, percentiles, uniform distributions, normal distributions, and x2-distributions from the prerequisite coursework.
  1. Describe how Monte Carlo sampling from multivariable, uniform distributions works.
  2. Describe how to modify Monte Carlo sampling from uniform distributions to general distributions.
  3. (a) Describe what an unbiased estimator is;
    (b) State unbiased estimators for mean, variance, and probability; and
    (c) State the distributions of these unbiased estimators.
  4. (a) Define standard error;
    (b) Give standard errors for mean, variance and probability;
    (c) Place confidence intervals for estimates of the mean, variance, and probability; and
    (d) Demonstrate the dependence of Monte Carlo convergence on the number of random inputs and the number of samples using the above error estimates.
  5. (a) Describe stratified sampling for single input and multiple inputs,
    (b) Describe Latin Hypercube Sampling (LHS), and
    (c) Describe the benefits of LHS for nearly linear outputs in terms of the standard error convergence of the mean with the number of samples.
  6. (a) Describe the Response Surface Method (RSM);
    (b) Describe the construction of a response surface through Taylor series, Design of Experiments with the least-square regression, and random sampling with least-squares regression; and
    (c) Describe the R2 -metric, its use in measuring the quality of a response surface, and its potential problems.

Homework Problems

A homework problem will be given at the end of most regular lectures and will be due at the beginning of the next class. These homework problems are intended to take 1-2 hours to complete. The individual homework sets will be graded on the following scale:
3: A complete solution demonstrating an excellent understanding of the concepts.
2: A complete solution demonstrating an adequate understanding of the concepts, though some minor mistakes may have been made.
1: A complete or nearly-complete solution demonstrating some understanding of the concepts, though major mistakes may have been made.
0: A largely incomplete solution or no solution at all.
Note: the individual homework grades will only be integer values. At the end of the semester, the highest 2/3's of the grades received in the homeworks will be averaged to determine an overall homework letter grade. Roughly, the following ranges will be used. A: 2.5-3; B: 2-2.5; C: 1.5-2; D: 1-1.5; F: 0-1.


Currently, three programming projects are planned for this semester (one for each section of the course except the ODE section). The projects will focus on applying numerical algorithms to aerospace applications. The programming is highly recommended to be done in Matlab®. The expected due dates for the projects are as follows.

Project 1 Lecture 16
Project 2 Lecture 30
Project 3 Lecture 38

The project assignments will be distributed at least one week prior to the due dates. No homeworks will be given during the week the projects are due. Each project will be assigned a letter grade based on the standard MIT letter grade descriptions (see Course Grade).

Homework and Project Collaboration

While discussion of the homework and projects is encouraged among students, the work submitted for grading must represent your understanding of the subject matter. Significant help from other sources should be noted.

Oral Exams

There will be a mid-term and final oral exam. The mid-term oral exam will be held between Lecture 20 and Lecture 21. The final oral exam will be held during Final Exam Week. I will schedule the mid-term oral exam by the end of February based on preferences from each student. I will schedule the final oral exam once the final exam schedule for the institute has been published. Each oral exam will be assigned a letter grade based on the standard MIT letter grade descriptions (see Course Grade).

Course Grade

The subject total grade will be based on the letter grades from the homework, projects, and oral exams. Roughly, the weighting of the individual letters grade is as follows:

Homework Letter Grades 1/8 of the Subject Total Grade
Project Letter Grades Each Project is 1/8 of the Total Grade
Oral Exam Letter Grades Each Exam is 1/4 of the Total Grade

For the subject letter grade, I adhere to the MIT grading guidelines which give the following description of the letter grades:
A: Exceptionally good performance demonstrating a superior understanding of the subject matter, a foundation of extensive knowledge, and a skillful use of concepts and/or materials.
B: Good performance demonstrating capacity to use the appropriate concepts, a good understanding of the subject matter, and an ability to handle the problems and materials encountered in the subject.
C: Adequate performance demonstrating an adequate understanding of the subject matter, an ability to handle relatively simple problems, and adequate preparation for moving on to more advanced work in the field.
D: Minimally acceptable performance demonstrating at least partial familiarity with the subject matter and some capacity to deal with relatively simple problems, but also demonstrating deficiencies serious enough to make it inadvisable to proceed further in the field without additional work.


Notes will be distributed. Reference texts will be recommended for specific topics as needed.

Citable URI:


Special software is required to use some of the files in this section: .m, .mat.
There are three programming projects for the class, one for each section of the course except the ODE section. They focus on applying numerical algorithms to aerospace applications.

Projects Supporting Files Solutions
Project 1 (PDF) CalcForces.m (M)

cyl_adaptmesh.m (M)

cyl_initmesh.m (M)

cylgeom.mat (MAT)

eulerflux.m (M)

FVM.m (M)

SetRefineList.m (M)

SetupEdgeList.m (M)

SetupMesh.m (M)

wallflux.m (M)
(PDF - 1.4 MB)
Project 2 (PDF) bladeheat.m (M)

bladeplot.m (M)

hpblade_coarse.mat (MAT)

hpblade_fine.mat (MAT)

hpblade_medium.mat (MAT)

findloc.m (M)

Thgas.m (M)

p2_matlabsol.txt (TXT)
Project 3 (PDF) calcblade.m (M)

DesignIntent.m (M)

hpblade_coarse.mat (MAT)

loadblade.m (M)

MCdriver.m (M)

Screen.m (M)

Thgas.m (M)

trirnd.m (M)

See also


  1. ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990, quoted at the beginning of Chapter 1: Introduction to the guide "Guide to the Software Engineering Body of Knowledge" (February 6, 2004). Retrieved on 2008-02-21.
  2. ^ Pecht, Michael (1995). Product Reliability, Maintainability, and Supportability Handbook. CRC Press. ISBN 0-8493-9457-0.
  3. ^ Pehrson, Ronald J. (January 1996). "Software Development for the Boeing 777". CrossTalk: the Journal of Defense Software Engineering. , "The 2.5 million lines of newly developed software were approximately six times more than any previous Boeing commercial airplane development program. Including commercial-off-the-shelf (COTS) and optional software, the total size is more than 4 million lines of code."
  4. ^ Randell, Brian (10 Aug 2001). "The 1968/69 NATO Software Engineering Reports". Brian Randell's University Homepage. The School of Computer Sciences, Newcastle University. Retrieved on 2008-10-11. "The idea for the first NATO Software Engineering Conference, and in particular that of adopting the then practically unknown term "software engineering" as its (deliberately provocative) title, I believe came originally from Professor Fritz Bauer."
  5. ^ Table 1 in Chapter 1,"Guide to the Software Engineering Body of Knowledge" (February 6, 2004). Retrieved on 2008-02-21.
  6. ^ Ian Sommerville (2004). Software Engineering. 7th edition. Chapter 1. Bezien 20 Okt 2008.
  7. ^ Table 2 in Chapter 1,"Guide to the Software Engineering Body of Knowledge" (February 6, 2004). Retrieved on 2008-02-21.
  8. ^ Bureau of Labor Statistics, U.S. Department of Labor, USDL 05-2145: Occupational Employment and Wages, November 2004, Table 1.
  9. ^ "Software Engineering". Retrieved on 2008-02-01.
  10. ^ Cowling, A. J. 1999. The first decade of an undergraduate degree programme in software engineering. Ann. Softw. Eng. 6, 1-4 (Apr. 1999), 61-90.
  11. ^ "ABET Accredited Engineering Programs" (April 3, 2007). Retrieved on 2007-04-03.
  12. ^ McConnell, Steve (July 10, 2003. Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers. ISBN 978-0321193674.
  13. ^ Actually the ACM made an explicit decision not to continue with certification. 1
  14. ^ IEEE Computer Society. "2006 IEEE computer societe report to the IFIP General Assembly". Retrieved on 2007-04-10.
  15. ^ Canadian Information Processing Society. "I.S.P. Designation". Retrieved on 2007-03-15.
  16. ^ As outsourcing gathers steam, computer science interest wanes
  17. ^ Computer Programmers
  18. ^ Software developer growth slows in North America | InfoWorld | News | 2007-03-13 | By Robert Mullins, IDG News Service
  19. ^ Hot Skills, Cold Skills
  20. ^ Dual Roles: The Changing Face of IT

Further reading

External links