This course will equip students with the necessary knowledge and skills to develop fast algorithms for numerical methods in scientific computing. The course will cover finite difference and finite element methods along with direct and iterative methods to solve the resulting linear systems. Students will also learn integral formulations and methods to solve them such as boundary element methods and particle-based methods. Each class will start with a real world example of the state-of-the-art applications for each technique, before explaining the fundamental theory behind these methods.
By the end of this course, students will be able to
1. Use finite difference or finite element methods to discretize a continuum field
2. Use molecular dynamics or smooth particle hydrodynamics to simulate a particle field
3. Understand the characteristics of parabolic, hyperbolic, and elliptic PDEs and select an appropriate method
4. Choose an appropriate technique such as spectral methods and boundary element methods based on understanding of the special cases
5. Explain the significance of dense and sparse linear solvers, both direct and iterative
6. Understand advanced preconditioning techniques such as multigrid and FMM
Finite difference methods, Finite element methods, Spectral methods, Boundary element methods, Smooth particle hydrodynamics, Particle mesh, Weighted residual methods, Discretization error, Convergence, Stability, Partial differential equation, Integral equation, Initial condition, Boundary condition, Time integration, Parabolic equation, Hyperbolic equation, Elliptic equation, Sparse matrix, Dense matrix, Eigensolver, Direct methods, Multifrontal methods, Iterative methods, Krylov subspace methods, Pre- conditioning, Multigrid, Fast multipole method
|✔ Specialist skills||Intercultural skills||Communication skills||Critical thinking skills||✔ Practical and/or problem-solving skills|
Two-thirds of a class is devoted to fundamentals and the rest to advanced contents or applications.
|Course schedule||Required learning|
|Class 1||Discretizing differential equations||Discretize differential equations using forward, backward, and central difference, with high order, and evaluate the discretization error.|
|Class 2||Finite difference methods||Understand stability of low and high order time integration, and use it to solve convection, diffusion, and wave equations.|
|Class 3||Finite element methods||Understand the concepts of Galerkin methods, test functions, isoparametric elements, and use it to solve elasticity equations.|
|Class 4||Spectral methods||Explain the advantages of orthogonal basis functions such as Fourier, Chebyshev, Legendre, and Bessel.|
|Class 5||Boundary element methods||Understand the relation between inverse matrices, δ functions and Green’s functions, and solve boundary integral equations.|
|Class 6||Molecular dynamics||Understand the significance of symplectic time integrators and thermostats, and solve the dynamics of interacting molecules.|
|Class 7||Smooth particle hydrodynamics (SPH)||Evaluate the conservation and dissipation properties of differential operators formed from radial basis functions.|
|Class 8||Particle mesh methods||How to conserve higher order moments for interpolations schemes when both particle and mesh-based discretizations are used.|
|Class 9||Dense direct solvers||Understand the principle of LU decomposition and the optimization and parallelization techniques that lead to the LINPACK benchmark.|
|Class 10||Dense eigensolvers||Determine eigenvalues and eigenvectors and understand the fast algorithms for diagonalization and orthonormalization.|
|Class 11||Sparse direct solvers||Understand reordering in AMD and nested dissection, and fast algorithms such as skyline and multifrontal methods.|
|Class 12||Sparse iterative solvers||Understand the notion of positive definiteness, condition number, and the difference between Jacobi, CG, and GMRES.|
|Class 13||Preconditioners||Understand how preconditioning affects the condition number and spectral radius, and how that affects the CG method.|
|Class 14||Multigrid methods||Understand the role of smoothers, restriction, and prolongation in the V-cycle.|
|Class 15||Fast multipole methods, H-matrices||Understand the concept of multipole expansion and low-rank approximation, and the role of the tree structure.|
“Computational Science and Engineering”, G. Strang, Wellesley-Cambridge Press, 2007.
Evaluation is based on written reports (40%) and final report (60%).