MATH-GA 2011.001 / CSCI-GA 2945.001

Advanced Topics in Numerical Analysis:

Computational Fluid Dynamics

Warren Weaver Hall, room 512, Thursdays, 9:00-10:50am
Courant Institute of Mathematical Sciences
New York University
  Fall Semester, 2016


Aleksandar Donev, 909 Warren Weaver Hall
Phone: (212) 992-7315

Office hours: 3 to 5 pm Tuesdays or by appointment

Course description

This course will cover advanced numerical techniques for solving PDEs, with a particular focus on fluid dynamics. This includes advection-diffusion-reaction equations, compressible and incompressible Navier-Stokes equations, and fluid-structure coupling. Basic familiarity with temporal integrators for ODEs (multistep, Runge-Kutta), methods for solving PDEs (finite difference, finite volume, finite elements for parabolic and elliptic problems), iterative solvers for linear systems, and the Navier-Stokes equations will be assumed. Topics covered will include:
  • higher-order spatio-temporal discretizations for advection-diffusion equations
  • artificial dissipation and dispersion
  • compressible flow (conservation laws, limiters, shock-capturing methods, boundary layers, turbulence)
  • incompressible flow (projection methods, Stokes solvers, spectral methods)
  • fluid-structure coupling (boundary-integral formulations, immersed boundary methods)
  • geo-physical dynamics (shallow water, wave equations, turbulent flows)
3 points per term

Communication will be handled via NYU Classes messages.

Reading Materials

There is no textbook for this course, but much of my Lectures will be based on this book that you can access electronically at Courant:
Hundsdorfer, W., & Verwer, J.G. (2003). Springer Series in Computational Mathematics [Series, Vol. 33]. Numerical Solution of Time-Dependent Advection-Diffusion-Reaction Equations. New York, NY: Springer-Verlag.

We will mostly use review articles and sometimes chapters from books. Under the Lectures tab I will post links to the corresponding PDFs, which will either be available on the open web, or accessible via the NYU/Courant library. Depending on your background you may need to supplement / substitute the recommended readings. The schedule for the lectures is flexible and will be created as we go along, depending on students' background and interests.


Foundations of methods for solving ODEs and PDEs will be assumed:
  • Forward and backward Euler method for ODEs, accuracy, stability, stiffness.
  • Basic multistep and Runge-Kutta schemes for ODEs.
  • Basic elliptic problems: Finite difference and finite element methods for the Poisson equations. Iterative methods for linear systems.
  • Basic parabolic problems: Heat equation, spatial discretization, explicit and implicit temporal discretization methods. von Neumann (Fourier mode) stability analysis, CFL numbers.
  • Basic hyperbolic problems: Advection equation, finite volume spatial discretization, method of lines, upwinding.
For Courant students, this means having taken Numerical Methods II, for example, based on the book "Numerical Analysis of Differential Equations" by Arieh Iserles (NYU Courant library reserves QA297.I825).

Basic familiarity with fluid dynamics, and an understanding of at least the incompressible isothermal Navier-Stokes equations will be assumed. For an in-depth but accessible introduction to fluid dynamics, you may consult the book by my colleague Stephen Childress.

Assignments and grading

This is a seminar course and the focus will be on learning new things. There will be several computational assignments / exercises during the semester. Each student will be required to do a computational project on a subject of choice, due at the end of the semester. The grade will be based on the project, class attendance and participation (including homework assignments).

As a first assignment, please submit the answers to this questionnaire via email as soon as possible:
  1. Your name, degree you are working on (if any) and class/year, and thesis advisor and topic if any.
  2. Are you taking this course for credit?
  3. List your previous academic degrees or relevant educational experience.
  4. Explain in words (e.g., relevant courses, prior research) your background in CFD.
  5. Why did you choose this course, and which of the topics listed in the course description interest you most (in particular, do you know what subject you would like to present on in class)?
  6. What is your programming experience (languages, level, parallelization, HPC)?
  7. What days of the week are you not available at the usual class time (in case we need to schedule makeup lectures when I travel)?