Spring 2019 - PHYS 395 D100

Computational Physics (3)

Class Number: 7853

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 3 – Apr 8, 2019: Tue, 1:30–2:20 p.m.
    Burnaby

  • Exam Times + Location:

    Apr 23, 2019
    Tue, 8:30–11:30 a.m.
    Burnaby

  • Prerequisites:

    MATH 310, PHYS 255, CMPT 102, 120, or equivalent, with a minimum grade of C-. Recommended: PHYS 344 or equivalent.

Description

CALENDAR DESCRIPTION:

Computer-based approaches to solving complex physical problems. Includes topics such as Monte-Carlo and molecular dynamics techniques applied to thermal properties of materials; dynamical behavior of systems, including chaotic motion; methods for ground state determination and optimization, including Newton-Raphson, simulated annealing, neural nets, and genetic algorithms: symplectic methods; and analysis of numerical data. Quantitative.

COURSE DETAILS:

 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.

Grading

  • Assignments 60%
  • Final 40%

Materials

MATERIALS + SUPPLIES:

Required text:

Numerical Recipes in Fortran 77: The Art of Scientific Computing W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling 2nd Edition;
ISBN-13: 978-0521430647 ISBN-10: 052143064X
It is available online from the authors: http://apps.nrbook.com/fortran/index.html Hardcopy is optional.

Department Undergraduate Notes:

Students who cannot write their exam during the course's scheduled exam time must request accommodation from their instructor in writing, clearly stating the reason for this request, before the end of the first week of classes.

Registrar Notes:

SFU’s Academic Integrity web site http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating.  Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the University community.  Academic dishonesty, in whatever form, is ultimately destructive of the values of the University. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the University. http://www.sfu.ca/policies/gazette/student/s10-01.html

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS