Numerical Simulation


Prerequisites:

Numerical Analysis, Partial Differential Equations, and basic programming proficiency


Course description:

This course offers a systematic introduction to the numerical discretization and simulation of physical systems governed by partial differential equations (PDEs). This course covers the basics of finite difference schemes, finite volume schemes, and finite element methods. In addition, we will cover some advanced topics such as discontinuous Galerkin, integral equation methods, spectral methods, and material point method. We will provide background for many of the computational and mathematical concepts in the course. You do not need to be an expert in PDEs or in coding. But you should have a course in numerical analysis, be comfortable with differential equations, and have some coding experience. The course involves several homework and one final project.


Learning objectives:

By the end of this course, students will be able to:

Understand the fundamentals of numerical schemes for PDEs such as finite difference, finite volume, and finite element.

Understand and analyze important concepts such as numerical stability, convergence, and error analysis.

Choose and implement an appropriate numerical scheme from scratch to solve a specific PDE.

Build intuition and proficiency in advanced schemes to simulate challenging problems involving large deformations and complex geometries.

Execute a comprehensive final project, benchmarking the results, and analyzing the performance of the implementation.


Detailed topics covered:

1. Classification of PDEs, finite difference approximation, truncation error estimates

2. Finite difference methods for time-dependent problems

3. Finite volume methods for hyperbolic conservation laws

4. Finite element methods for elliptic problems

5. Discontinuous Galerkin methods for hyperbolic problems

6. Integral equation methods, from differential to integral representations

7. Chebyshev series and the FFT

8. Material point methods: Lagrangian and Eulerian dual representation