Course Code:                         MATH 6193
Course Title:                          Numerical Methods for Partial Differential Equations

Course
Type:                                      Elective

No. of Credits:                       4
Prerequisites:                        None

Course Rationale

Partial differential equations (PDEs) are widely utilized for the description of physical processes taking place in space and time, like flow and transport in continua, charge distribution in semiconductors, and the deformation of rigid bodies. The solution of PDEs that arise in real-world applications is by no means a trivial matter, as they are often highly nonlinear and may comprise of several parameters that vary with time. One way to approximate the solution of such equations is via numerical simulations. As such, a comprehensive knowledge of numerical methods and the ability to design and implement novel algorithms is a basic need for researchers in the modern applied sciences. No longer is it sufficient to learn analytical methods, as often the system at hand does not lend itself to direct theoretical treatment without first making drastic simplifications to the model equations. Such adjustments often compromise the accuracy of the model, and yield unrealistic results. The ability to combine theoretical knowledge with numerical computer simulation and empirical evidence is rapidly becoming essential for all areas of research in science and technology.

The course will therefore serve as a solid basis for students interested in working on final MSc projects in the field of applied mathematics. It will also be of interest for MPhil and PhD students from the department of Mathematics and Computer Science, as well as for research students of applied science and engineering.

Course Description

This course will cover the basic concepts and techniques relating to numerical solutions of partial differential equations using finite differences.  Other numerical methods such as finite element method and spectral method will also be briefly discussed. Mathematical theory, practical implementation and applications will be emphasized equally. The errors that may be introduced via the use of numerical algorithms for solving PDEs will be addressed. Special attention will be placed on problems that may arise when ill-suited algorithms are selected. The most commonly used algorithms will be presented and illustrated by practical. Students will be given the opportunity to practice these techniques in the coursework assignments during the semester.

Students taking this course must have a thorough understanding of calculus and ordinary differential equations. Prior knowledge of elementary real analysis is required. A solid foundation in matrix algebra will also be assumed. As students will be required to implement the algorithms on a computer, prior knowledge of a programming language will be an asset, but is not a pre-requisite for the course. Computer literacy is expected, as well as prior knowledge of the more common numerical analysis algorithms used for solving ordinary differential equations. Algorithms will be presented during lectures in pseudo code format to facilitate the creation of well-structured programs in a variety of programming languages. Prior knowledge of mathematical packages designed for numerical analysis such as Matlab will be a definite asset. The numerical software package Matlab will be the chosen programming tool for in-course assignments. An introductory tutorial will be organized at the beginning of the course for students with no prior knowledge of Matlab.

Learning Outcomes

On successful completion of this course, students will be able to:

• identify the types of PDEs (hyperbolic, parabolic or elliptic), analyse their properties, and determine the numerical method that would be best suited for solving them
• implement on a computer the most commonly used numerical algorithms with the programming language of their choice or numerical packages such as MATLAB
• combine theoretical knowledge with numerical computer simulation and empirical evidence to design efficient algorithms for solving partial differential equations
• determine the error associated with a particular numerical method
• use a computer to analyse the consistency, convergence and stability of any given numerical scheme
• perform numerical simulations on a computer for mathematical models comprised of  nonlinear differential systems of equations
• design numerical algorithms for general problems in engineering, industry and integrated science
• solve problems computationally for graduate research projects in the field of applied mathematics

Content

• Preliminaries: classification of partial differential equations
• Well-posedness
• Spatial differences: central differences; Fourier analysis; Higher order difference approximations; One-sided differencing;
• Temporal errors: Concepts of stability and accuracy; analysis of dispersive and dissipative error
• Mostly explicit difference schemes: Forward Euler in time, Central difference in space; Lax-Friedrichs; Leap-frog (2-2) and (2-4); Concept of artificial dissipation; Lax-Wendroff; MacCormack’s scheme; Runge-Kutta time stepping
• Systems of equations: Decoupling; disparate speeds.
• Implicit schemes: Backward Euler; Crank-Nicholson; compact 4th order approximation for spatial derivatives; implicit schemes for systems
• Semi-implicit schemes: Adams-Bashforth multi-step method
• Parabolic equations and methods for their numerical solution
• Numerical approximation of boundary conditions (for parabolic and hyperbolic equations): Extrapolating boundary conditions; one sided differences; linear systems
• Two-dimensional problems: Operator splitting; Alternating directions implicit method; Anisotropic errors, 2-D boundary conditions

Teaching Methodology

Lectures: Three (3) lectures each week (50 minutes each).

Tutorial: One (1) weekly tutorial session (50 minutes).

Assessment

Coursework (4 detailed computer lab exercises: implementation and testing of numerical algorithms based on theory covered during lectures) – 40%

Final Examination (one 3-hour written paper) – 60%

Course Calendar

 Week Lecture subjects Lab Lab Assignments 1 Preliminaries: classification of partial differential equations. Well-posedness - - 2 Spatial differences: central differences; Fourier analysis; Higher order difference approximations; One-sided differencing Work on Lab1 Lab 1 Given 3 Temporal errors: Concepts of stability and accuracy; analysis of dispersive and dissipative error Work on Lab1 Lab 1 due 4 Mostly explicit difference schemes: Forward Euler in time, Central difference in space; Lax-Friedrichs; Leap-frog (2-2) and (2-4) Work on Lab2 Lab 2 Given 5 Mostly explicit difference schemes: Concept of artificial dissipation; Lax-Wendroff; MacCormack’s scheme; Runge-Kutta time stepping Work on Lab2 Lab 2 due 6 Systems of equations: Decoupling; disparate speeds - - 7 Implicit schemes: Backward Euler; Crank-Nicholson; compact 4th order approximation for spatial derivatives; implicit schemes for system Work on Lab3 Lab 3 Given 8 Implicit schemes for systems. Semi-implicit schemes: Adams-Bashforth multi-step method Work on Lab3 Lab 3 due 9 Parabolic equations and methods for their numerical solution Work on Lab4 Lab 4 Given 10 Numerical approximation of boundary conditions (for parabolic and hyperbolic equations): Extrapolating boundary conditions; one sided differences; linear systems Work on Lab4 Lab 4 Due 11 Two-dimensional problems: Operator splitting; Alternating directions implicit method - - 12 Two-dimensional problems: Anisotropic errors, 2-D boundary conditions - - 13 revision - -