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 21) Advection-Diffusion Equations
2. (Due Sept 28) Boundary Conditions
3. (Due Oct 8) Implicit Temporal Integrators
4. (Due Oct 26) Advection-Diffusion Equations Revisited
5. (Due Nov 30) Pseudospectral Solver for
Final ProjectsFor 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 equationsDevelop 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 flowsDevelop 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 MethodDevelop 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.