Dr Kenneth Duru, Australian National University
Kenny Wiratama, Australian National University
Partial differential equations (PDEs) model a variety of important problems in mathematics, engineering, physical and social sciences. e.g. weather forecast, bushfire modelling, earthquake modelling, aircraft and automobile design, modelling the universe and detecting gravitational waves, predicting stock/financial markets, etc. In most cases it is impossible to use analytical techniques to solve the PDE. It becomes necessary to compute approximate solutions using advanced numerical methods and supercomputers.
This course will cover the fundamentals of the theory of modern numerical methods for time dependent PDEs in bounded domains. It will begin with theoretical analysis of wellposedness and stability theory of initial boundary value problems (IBVP) at the PDE level. It will cover standard numerical approaches such as finite difference, finite volume and finite element methods. It will also introduce advanced numerical techniques such as discontinuous Galerkin (DG) and spectral element methods. The methods considered will be formulated in the summation-by-parts (SBP) framework.
The past two decades have seen an explosion in popularity of developing provably stable numerical methods of arbitrary order with the SBP property. This is because the SBP framework offers a simple, but powerful methodology for the design and analysis of modern algorithms for PDEs. If there is an energy estimate for the continuous IBVP, then by combining the SBP principle with weak boundary procedures (eg. using the simultaneousapproximation terms -SAT technique) we can design numerical methods that mimic the continuous energy estimate at the discrete level. The most important consequence of SBP is that it naturally guides the path to stability and robustness as it mimics continuous stability analysis. The SBP concept provides a strong theoretical framework, for the analysis of existing schemes and the design of flexible high-order numerical approximations that are robust for complex multi-scale and multi-physics applications.
We will try, as much as possible, to mirror the analysis of the continuous IBVP to numerical analysis of discrete approximations. There will be special attention on the mathematical tools and techniques, like Fourier methods (including classical von Neumann analysis), energy methods, to analyse and prove numerical stability and convergence. The inter-play between pure mathematics and computational mathematics will be made apparent
Programming language: The primary programming language for the course is Python. Students will be required to submit assignments as Jupyter Notebooks which should include both texts and Python codes. Samples of Python Jupyter Notebooks will be shared with students, including several online resources. However, students are welcome to program in a preferred programming language to implement the numerical methods discussed and verify the analysis performed in the course.
Basic Scientific Computing Course: This may include topics such as: floating point numbers and arithmetic; numerical approximation of continuous functions by polynomials; numerical differentiation and integration; numerical solutions of linear and nonlinear algebraic equations; and numerical methods for ordinary differential equations.
This course is intended for advanced undergraduate and graduate level students (Honours/masters/PhD level) in Mathematics, Science and Engineering.
Your grade will be determined based on the three components detailed below. Getting zero points or omitting any of the three components results in a fail. The overall grade is determined according to the given weights below.
(may be subject to change)
Participation in all lectures and tutorials is expected.
For those completing the subject for their own knowledge/interest, evidence of at least 80% attendance at lectures and tutorials is required to receive a certificate of attendance.
Take this quiz to self-evaluate and get a measure of the key foundational knowledge required