Physics 410: Computational Physics (Fall 2024)


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

Instructor: Matthew (Matt) W. Choptuik
Web page: https://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: Musaab Al-Bakry (musaab@phas.ubc.ca)
         Howard Hong (xili@phas.ubc.ca)

SCHEDULE:
  • LECTURES: MWF 11:00-12:00 -- HEBB 114
  • TUTORIALS (COMPUTER LABS)
    • T1A: FRIDAY 12:00-13:00 -- HEBB 114
    • T1B: FRIDAY 10:00-11:00 -- HEBB 116
  • This web site is the primary source of information for the course.  Canvas will be used for:
    • Announcements
    • Homework / Project due dates and submission
    • Grades
    • Zoom link for office hours
    • Recorded lectures
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 primary mode of instruction for this course is in-person lecturing.  However, all lectures will be recorded and made available on Canvas

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, Recordings, Help & Chat GPT etc.

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 HEREHowever, it is up to you to take notes when I present them on the board, which will be the usual mode of operation.

Lectures will be recorded and made available via Canvas.

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.

Use of generative AI

The emergence of generative AI tools such as Chat GPT promises to have a profound impact on the manner in which programmers carry out their craft.  Since your coursework in PHYS 410 requires a significant amount of programming it is clear that we need a clear and fair policy for the use of this technology in the course.

That policy is this:
  • You are free to use tools such as Chat GPT as a form of "enhanced googling", to retrieve specific and targeted information about how to perform some (limited) function in MATLAB (the course language). Some examples include
    • How do I solve a tridiagonal system in MATLAB using spdiags?
    • How do I take the transpose of a matrix in MATLAB?
  • You may not use generative AI to write entire MATLAB functions or scripts that you then use as some or all of an assignment that you hand in.
  • Each writeup that you compose to accompany your code submissions should contain a brief statement concerning how, if at all, you used generative AI in completing the corresponding assignment (i.e. even if you didn't use Chat GPT etc., you should still include a statement to that effect.)

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.  Approximate due dates for the four assignments are listed on the Homework page, and are also available on Canvas.

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.

See the Homework page for guidelines concerning 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 the names of the top-level folders that you create:

   homework-<n>
   project-<n>

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

   homework-2
   project-1

After zipping the top-level folder you should have a zipped file such as

  homework-2.zip
  project-1.zip

which you will then submit.  The unzipping operation must create the top-level folder, and that folder must contain your writeup and all source code files associated with the assignment. You should check that this is the case.

Note that when creating the zipped folder you usually will not need to specify the .zip extension---that will be done automatically.

Finally, 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.  Also note that if you need to resubmit your assignment for any reason, Canvas will probably force you to use a distinct name for the submission. This is fine.

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 16: Last day for withdrawal from this course without withdrawal standing of "W" recorded on your academic record.
  • Monday September 30: National Day for Truth and Reconciliation. University closed.
  • Monday, October 14: Thanksgiving Day, University closed.
  • Friday, October 25: Last date for withdrawal from this course with withdrawal standing of "W" recorded on your academic record.
  • Monday, November 11--Wednesday, November 13: Mid-term break. Lectures and tutorials cancelled.
  • Friday, December 6: Last day of classes.
  • Tuesday, December 10: Examinations begin.
  • Saturday, December 21: Examinations end.

See the UBC 2024/2025 Calendar and Academic Year [all months] pages for more information.