PHYS 302? Computational Physics: Proposed Syllabus

Context

Possible Overlaps

Course Description

This course provides an introduction to modern tools and techniques in computational physics. Although a considerable variety of topics are covered, this is a depth-first course; students will become familiar with the details of (1) formulating problems in a fashion suitable for computation (2) formulating and applying algorithms to solve such problems and (3) performing error analysis of problem solutions. A key goal of the course is to provide students with the skills needed to effectively solve new problems computationally. Students will be assumed to be proficient in some programming language, and, although there will be a significant programming component to the course, this is not a course in programming per se. Modern software tools and environments will be used throughout the course, and students will become proficient in their use, extension and interconnection. The course will include a weekly one-hour computer lab session, and students will also be encouraged to use the course computer lab to complete homework sets and term projects.

Calendar Entry

Scientific programming with applications to problems in physics. Fundamentals of numerical analysis for continuum problems. Solution of linear and non-linear algebraic systems, ordinary differential equations and stochastic problems. Pre-requisites: MATH 215 (or MATH 255), MATH 221 (or MATH 152 or MATH 223), PHYS 216 (or 206), CPSC 122 (or CPSC 124 or CPSC 152 or extensive computer experience) [3-1-0].

Course Assessment

Students will be evaluated using their performance on (1) periodic homework assignments (5 throughout the term) (50%), (2) midterm and final exams (30%), and (3) a term project (20%). The homework assignments form the crucial core of the course, successful completion will require mastery of concepts and techniques covered in the lectures. Examinations will test knowledge of essential factual material, as well as the student's ability to formulate computational solutions of new problems. Wherever possible, the term project will be in an area of computational physics (or related discipline) of the student's own choosing, and is expected to require roughly as much time as 2-3 homework assignments.

Budgetary Requirements

Students will require access to appropriate computational facilities for the labs and for the completion of homework assignments. Assuming an initial enrollment of 30, split into two lab sections of 15, the course will require 15 "workstations"; that is 15 seats, screens and keyboards providing, in some way, networked access to course software and hardware. For pedagogical reasons, it is essential that these workstations be in a common room. Currently, viable options for these workstations include (1) X-terminals connected to a central compute server, or (2) Networked Pentium II-class (or better PCs) running Linux. Option (1) will allow us to run the course using existing "workstations", but option (2) is arguably a better route for a variety of reasons, including better load distribution. Additionally, the purchase of some commercial software will be necessary in order that the students have exposure to state-of-the art tools whereever possible. Such software might include commerical compilers and programming environments (Portland Group, Absoft, NAG etc.) and visualization/analysis suites (IRIX Explorer, LabView etc.), as well as widely used, low-cost packages such as Matlab, Supermongo, Xmgr etc. For these reasons, and assuming that the Physics & Astronomy department converts the X-term undergrad lab to a PC-based lab on the time scale of three years or less, it is expected that a budget of approximately $5,000 per yr for at least three years will be required (entirely for software). If the lab is not so converted, then there is the possibility that the budgetary requirements will be significantly higher: the cost for 15 PCs suitable for the course is of order $30,000.

Unix: 1.5 weeks

Scientfic Programming using Maple: 2.5 weeks

Scientific Programming using a General Purpose Programming Language: 3 weeks

Solution of Linear Systems: 1 week

Elementary Finite Difference Methods: 2 weeks

Non-linear Equations (Root Finding): 1 week

Solution of ODEs: 1 week

Random Numbers, Monte Carlo and Stochastic Methods: 1 week


Created/maintained by M.W. Choptuik: [mail] [URL]. 
Supported by CIAR, NSERC and NSF.