# Computational Fluid Dynamics

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

## 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.

## Final Projects

Due Sunday 12/18

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.

### 3. Method of Regularized Stokeslets

Develop an implementation of the e method of regularized Stokeslets (for two-dimensions, see this article) in two and three dimensions, and study its accuracy and computational efficiency.

### 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).

Or do something simpler like advection using the  BDS algorithm by May, Nonaka, Almgren, and Bell but add diffusion into the picture.

### 5. Shallow Water Equations

Develop a solver for the shallow water equations.

### 6. Higher-order equations

Explore numerically higher-order (complicated) transport equations such as the Kuramoto-Sivashinsky equation, or the Korteweg de Vries Burgers equation (or just KdV), or the Cahn-Hilliard equation. These often combine diffusion, hyperbolics (waves), and some nonlinear terms to obtain interesting (and physically-relevant) equation.