Physics 410: Computational Physics (Fall 2022)


COURSE HOME PAGE (this page): http://laplace.physics.ubc.ca/410/

Instructor: Matthew (Matt) W. Choptuik
Web page: http://laplace.physics.ubc.ca/People/matt/
Office Phone: 604-822-2412
Cell: 778-323-4887
Virtual office hours (Zoom): By appointment via e-mail
E-mail: choptuik@phas.ubc.ca
TAs: Michael Kinach (mikin@phas.ubc.ca)
         Shahriar Rahim (shahsiddiqui@phas.ubc.ca)

SCHEDULE:
  • LECTURES: MWF 11:00-12:00 -- CHEM C124
  • TUTORIALS (COMPUTER LABS)
    • T1A: FRIDAY 12:00-13:00 -- HENN 304
    • T1B: FRIDAY 10:00-11:00 -- HENN 304
  • This web site is the primary source of information for the course.  Canvas will be used for:
    • Announcements
    • Homework / Project submission
    • Grades
    • Zoom link for office hours
    • Recorded lectures from 2020 (as needed)
Prerequisites:
  • One of PHYS 312, MATH 257, MATH 316 and one of PHYS 210, EOSC 211, CPSC 110, CPSC 111, APSC 160

Mode of course instruction:

  • The course staff of our department discussed pedagogy and logistics for this and other courses and have determined that the course should be provided in-person only (i.e. no recordings, other than in exceptional circumstances).

COURSE LINKS

Course Summary

This course will provide a survey of techniques from numerical analysis and other areas of computational science with applications to problems in physics.

A list of topics is as follows (in roughly the order we will be covering them):
  • Overview/review of MATLAB
  • Floating point arithmetic and associated error analysis
  • Polynomial interpolation
  • Solution of nonlinear equations (root finding)
  • Finite difference approximation
  • Ordinary differential equations
  • Partial differential equations
  • Monte Carlo methods
  • Fast Fourier transforms

Application areas will include: classical dynamics, quantum mechanics and statistical mechanics.

Tutorial sessions will involve problem solving exercises--including programming--generally related to material from the previous week's lectures. Tutorials will be posted shortly before they are due to be worked to facilitate your preparation for them.

Text, Reference Material, Notes, 2020 Recordings & Help

There is no required or optional textbook for the course, but see HERE for a list of references, many of which provide coverage for much of what we will be discussing.  Note that full-text PDF versions of most of these references are available from the UBC library.

The PDFs for Powerpoint or equivalent notes will be posted HERE.  However, it is up to you to take notes when I present them on the board, which will be the usual mode of operation.

NOTE: If I am ill but still able to lecture, I will lecture using Zoom.  If I am unable to lecture, due to illness or some other reason, one or more recordings will be made available on Canvas.

Getting help

You can use the course Piazza to post questions, particularly those that are likely to also be of interest to one or more of your classmates.  Although I will endeavour to answer posts promptly, I encourage all students to post replies as they feel they are able.  However, please do not ask, or supply answers to, questions of the form "How do I do X in homework/project Y?".  That type of query should be minimized as much as possible, and directed to me via e-mail. Note that this does not mean that general discussions about the homework/projects are precluded from Piazza. Please do not ask the TAs for assistance; the hours they are allocated for this course are needed for grading.

You should feel free to e-mail me with questions that you feel should be kept private or, in general, that you are not comfortable in posting on Piazza.

You can arrange a virtual office visit by emailing me to set up an appointment at a mutually convenient time.  The Zoom link for such visits is available on Canvas.

Course Computer Language

The "official" computer language for this course is MATLAB.

MATLAB provides a powerful and convenient programming environment that is tailor-made for numerical calculations of the sort we will be considering.  It is an interpreted language, which makes it well suited for the type of rapid prototyping and interactive experimentation that you will be encouraged to do in the tutorials and homework assignments.

MATLAB is available for you to install on your own computers.  See HERE for details.

My previous experience with this course suggests that it is not a hardship to require that students use MATLAB for their coursework, so this is the official course policy.

Grades: Homework, Projects, Exams, Late Work Policy, Submission of Work, Group Work Policy

Your work in this course will consist of two homework assignments, two projects (which can be viewed as advanced homeworks) and a final exam. These will have the following weighting
  • Homework Assignments and Projects: 80%
    • Homework 1: 20 points
    • Project 1: 50 points
    • Homework 2: 30 points
    • Project 2: 50 points
    • Total homework/project: 150 points
  • Final Exam: 20%
You will generally have one week to complete homework assignments and two weeks to finish projects. 

Late work will generally not be accepted unless there are extenuating circumstances.  If you find yourself in the position of needing an extension you must request one from me via an e-mail message as soon as possible and definitely before the due date of the assignment/project. If in doubt about whether your circumstances are sufficiently extenuating note that I tend to be lenient in these matters: on the basis of some issue that arises, I would rather you submit late complete work than timely incomplete work.

Each homework/project submission must contain, as a PDF file, a writeup detailing how you completed the assignment, and what the results and conclusions were. This PDF file must be accompanied by the source code files that were used to complete the work.  Please ensure that your homework/project source code is submitted as basic '.m' files, not '.mlx' files.  I understand that you may feel that the latter is natural to produce a report that integrates discussion and code, but course policy is to keep source code separate from the writeup per se.  You should use text processing software such as LaTex (preferred) or Word to prepare your writeups.

When preparing and submitting a homework/project, you must:
  1. Place all of the files in your assignment in a single folder.
  2. Zip that folder and then submit the zipped folder through Canvas.
Please use the following naming conventions for your zipped folders.

   homework-<n>.zip
   project-<n>.zip

where <n> is the number of the homework or project.  For example

   homework-2.zip
   project-1.zip

Note that when creating the zip'ed folder you do not need to specify the .zip extension---that will be done automatically. Also, please minimize use of the submission comment feature in Canvas.  If you have information that you wish conveyed to the TAs, include it in your writeup.

IMPORTANT!!

You are welcome to discuss your homework assignments and projects with your fellow students.  However, the work that you submit, including any and all source code, must be your own (i.e. original to you).

Selected Dates from the Academic Calendar

  • Monday, September 19: Last day for withdrawal from this course without withdrawal standing of "W" recorded on your academic record.
  • Friday, September 30: National Day for Truth and Reconciliation. University closed.
  • Monday, October 10: Thanksgiving Day, University closed.
  • Friday, October 28: Last date for withdrawal from this course with withdrawal standing of "W" recorded on your academic record.
  • Wednesday, November 9--Friday, November 11: Mid-term break. Lectures and tutorials cancelled.
  • Friday, November 11: Remembrance Day. University closed.
  • Wednesday December 7: Last day of classes.
  • Sunday, December 11: Examinations begin.
  • Thursday, December 22: Examinations end.

See the UBC 2022/2023 Calendar and Academic Year [all year] pages for more information