Simon Fraser University, Fall 2016
The course covers advanced numerical methods for scientific computing and provides introduction to programming in modern High Performance Computing (HPC) environment. Topics include:
- Representation of functions (cardinal vs. spectral basis, Fourier transform, orthogonal polynomials)
- Linear algebra (solving linear equations, least square fits, Cholesky and singular value decompositions)
- Root finding and optimization (bracketing and bisection, Newton’s method, steepest descent and Levenberg–Marquardt algorithm)
- Ordinary differential equations (integration methods, initial vs. boundary value problems)
- Hyperbolic partial differential equations (solution methods, numerical stability, wave equation)
- Parabolic PDEs (heat diffusion equation, numerical stability, spectral methods)
- Elliptic PDEs (boundary value problem revisited, Laplace equation, non-linear BVPs)
- Optimizing for performance; GPU acceleration and Fast Fourier Transforms revisited
- Scripting in Python (automating repeated tasks, making publication-quality plots)
- Going parallel on shared memory and MPI architectures (if time allows)
Programming environment is Fortran and Python, pre-configured Linux virtual machine will be provided. Homework and final are coding, you are expected to produce a working code that compiles, runs, and finds accurate numerical solution to the problem assigned. Bringing your own laptop is encouraged, but no technical support for Windows will be provided.