# Numerical Methods for Partial Differential Equations

## CS555 :: Spring 2021

**Class Time/Place**: Asynchonous Recorded Lectures MediaSpace, cs555_s20**Class Time/Place**: Wednesday/Friday 11:00am-12:15pm Catalog, Q&A Sessions (zoom)**Class URL**: https://relate.cs.illinois.edu/course/cs555-s21/**Instructor**: Paul Fischer

## About the course

This course covers the basics of finite difference schemes, finite volume schemes, and finite element methods (majority). In addition, we'll cover some advanced topics such as reduced order methods and spectral methods.

One of the goals of this course is to build intuition for these methods. We'll be using Python and will be providing background for many of the computational and mathematical concepts in the course. As such, you do not need to be an expert in PDEs or in coding. But you should have a course in numerical analysis as your background (CS450 or equivalent), be comfortable with differential equations, and have *some* coding experience.

The course is divided in roughly two parts: advection and elliptic. This is of course a generalization, but it does allow us to focus on finite difference/finite volume methods for one part of the course and finite elements for another part. In addition to model problems we'll look at Stokes and other equations in order to develop a full understanding of the methods.

The course involves quizzes, homeworks (usually bi-weekly) and a final project.

## Quiz

- Quiz 1 Due Friday, January 29 at 5 p.m.
- Quiz 2 Due Tuesday, February 2 at 5 p.m.
- Quiz 3 Due Tuesday, February 9 at midnight.
- Quiz 4 Due Friday, February 12 at midnight.
- Quiz 5 Due Tuesday, February 16 at midnight.
- Quiz 6 Due Tuesday, February 23 at midnight.
- Quiz 7 Due Friday, February 26 at midnight.
- Quiz 8 Due Wednesday, March 17 at midnight.
- Quiz 9 Due Tuesday, March 23 at midnight.
- Quiz 10 Due Friday, April 9 at midnight.
- Quiz 11 Due Wednesday, April 14 at midnight.
- Quiz 12 Due Tuesday, April 27 at midnight.
- Quiz 13 Due Monday, May 17 at 11 AM.

## Grading Policies

Grading is based on quizzes, team homeworks (roughly bi-weekly) and a final project. The grade breakdown is:

```
- Homeworks (50)
- Projects (25)
- Participation/ Quizzes (25)
```

## Computing

We will be using Python with the libraries numpy, scipy and matplotlib for assignments. No other languages are permitted. Python has a very gentle learning curve, so you should feel at home even if you've never done any work in Python.

## Python and Numpy Help

- Python tutorial
- Facts and myths about Python names and values
- Dive into Python 3
- Project Euler (Lots of practice problems)
- Introduction to Python for Science
- The SciPy lectures
- The Numpy MedKit by StÃ©fan van der Walt
- The Numpy User Guide by Travis Oliphant
- Numpy/Scipy documentation
- More in this reddit thread
- Spyder (a Python IDE, like Matlab) is installed in the virtual machine. (Applications Menu > Development > Spyder)
- An introduction to Numpy and SciPy
- 100 Numpy exercises

## Homework

- Homework 1 Due Friday, February 12 at 6 p.m. Example starting code: .ipynb, .py
- Homework 2 Due Wednesday, March 3 at 11:59 p.m.
- Homework 3 Due Wednesday, March 31 at 11:59 p.m.
- Homework 4 Due Friday, April 23 at 11:59 p.m.