M578 - Fall 2017
Numerical Methods for Conservation Laws
TR 5:05-6:20   Ayres 112   (CRN 46875)

Unified treatment of physical meaning, mathematical properties, and (Finite Volume) numerical methods for Conservation Laws.
Parallelization for distributed computing via domain decomposition and MPI.
Recent advances in shock-capturing higher order schemes.
Prerequisites: PDE (M435); Programming ( Fortran or C/C++ for parallelization); or consent of instructor.
Office Hours: TR 2:30-3:15 and by arrangement
• Attendance is mandatory.
• Work and Grading:   No exams!
8-10 Lab/Homework assignments: 80% , Parallelization Project : 20%
• Do not hesitate to came talk to me if you are facing difficulties.

• All incidents of academic misconduct will be reported to the Student Judicial Affairs office.
• If you need an accommodation based on the impact of a disability, please contact me privately.
Contact the Office of Disability Services (2227 Dunford Hall, 974-6087) to coordinate reasonable accommodations for documented disabilities.

Content
I. Parallelization for distributed computing
- types of parallelism
- speedup, strong and weak scaling
- domain decomposition
- Message Passing Interface (MPI) library
- implementation issues and methods
Note: For parallelization, code must be in Fortran or C/C++ (or possibly Python, using mpi4py, batchOpenMPI).

II. The basic conservation law:   $\frac{\partial u}{\partial t} + \nabla \cdot {\vec F} = S$
    Model problems:  heat conduction, mass diffusion, air pollution,
traffic flow, gas dynamics, porous media flow, ...
- derivation from first principles, integral and differential forms
- conservation of species
- continuity equation
- conservation of energy - heat conduction
- finite volume discretization in 1-D, 2-D, 3-D
- explicit / implicit time stepping
- consistency-stability-convergence
- method of lines / ODE time integrators

III. Parabolic Problems
Model problem: the above without advection
- diffusion ( F = −D∇u ) - parabolic PDEs - boundary conditions
- explicit scheme - CFL condition
- super-time-stepping acceleration
- advection-diffusion ( F = uV - Du_x )
- explicit scheme - CFL condition
- effect of small/large Peclet number
- parallelization via domain decomposition

IV. Basic ODE integrators

V.  First Order Hyperbolic Conservation Laws
Model problem: the above without diffusion/viscosity/dispersion
- wave propagation - 1st order PDEs - method of characteristics
- linear advection ( F = uV ) - explicit upwind scheme
- CFL condition - implementation
- nonlinear advection ( F = a(u) ) - Burgers equation - shock formation
- monotonicity - flux limiters - slope limiters
- Lax-Wendroff - Godunov - TVD - ENO - WENO schemes
- Max Principle Satisfying schemes

VI.  Elliptic Problems (...if there is time...)
Model problem: steady-state versions of the above
( electrostatic potential )
- Laplace equation - elliptic PDEs - boundary conditions
- finite volume discretization
- numerical solution of AU = b  (a couple of methods only)
- direct methods for banded systems
- fast Poisson solvers


------------ Some comments from happy students -----------
• "It was a real privilege to be in your class. I learned a lot and really enjoyed learning the parallelization with MPI. It was very useful.
I also appreciate your constant words of encouragement all along the semester. You really encouraged me to work harder."
• "This course was amazing! Thanks for teaching us!"
• "completely enjoyed every bit of the course. You made it very interesting and had us looking forward to each lecture!"
• "Parallelizing was a real challenge but it felt great when I got the code to run. I got a lot out of Math578 and I hope to do some programming on my dissertation."
• "It was great learning experience. I definitely gained a lot from this course."
• "Though I found the experience very difficult, I enjoyed learning about MPI in the context of finite volume methods. Thank you for teaching this course."