MATH-GA 2012.002 / CSCI-GA 2945.002

Advanced Topics in Numerical Analysis:

Computational Fluid Dynamics

Warren Weaver Hall, room 201, Mondays, 1:25 - 3:15 pm
Courant Institute of Mathematical Sciences
New York University
  Fall Semester, 2014

Homework Assignments

Homework assignments will involve computing. You can do all assignments using MATLAB easily, but I encourage you to use a compiled language (C++, Fortran) or Python also to prepare yourself for the final project.

Submit assigments via email as a tar or zip archive (if there are multiple files) or simple attachment. Submit a PDF file with a brief writeup of your solution, including any figures with results. Do not cut and paste code in the PDF, attach the script or source code directly. Make sure to name your files sensibly so I can unpack all of your homeworks without overwriting previous files.

1. (Due Sept 21st) Advection-Diffusion Equations

2. (Due Sept 21st) Boundary Conditions

3. (Due ?) Implicit Temporal Integrators

3+. (Due ?) Addendum to HW3

Redo problem 3 in the previous homework Implicit Temporal Integrators but this time use periodic boundaries and FFTs to solve the linear system. Use the same type of discretization you used before, just change the linear solver (you should get the same result as before!).

4. (Due ?) Pseudospectral Solver for 2D NS

Final Projects

For the final projects, you have some freedom in selecting what you want to do. This would preferably be related to the subject of your Ph.D. research and be something you are interested in. The goal is to do something more "real-world" than the homeworks. In particular, the hope is that you will develop a larger-scale (2D or even better 3D) code in a programming language other than MATLAB. It would be even better if you learn how to parallelize your code (I can help with this also), either using more traditional approaches like MPI or OpenMP, or emerging platforms such as GPUs. However, it is OK to use MATLAB if your focus is more on numerical analysis and less on computing.

Here are some possible projects that I am familiar with and could help you with. But please feel free to suggest your own:

1. Multigrid solver for Helmholtz equations

Develop a multigrid solver for 2D and 3D Helmholtz/Poisson equation. Use it to construct an approximate projection method preconditioner for solving the time-dependent incompressible equations on a MAC grid, either with (Navier-Stokes) or without (Stokes) the advective terms.

2. Pseudo-spectral solver for low Re number flows

Develop a 3D spectral code for solving the time-dependent Stokes equations with applied forcing in two and three dimensions in periodic domains. Then add advection using a pseudo-spectral approach to solve the Navier-Stokes equations.

3. Immersed Boundary Method

Develop an implementation of the immersed boundary method in two and three dimensions, using a fluid solver of your choice. You may restrict to Stokes flow for simplicity.

4. High-Resolution Methods

Implement a higher order high-resolution schock-capturing advection method, such as PPM or MUSCL or (W)ENO for the compressible isentropic Euler equations (or compressible Navier-Stokes equations).

5. Shallow Water Equations

Develop a solver for the shallow water equations.