PHYS 302? Computational Physics: Proposed Syllabus
Context
- MATH 152 (3) Linear Systems
- MATH 210 (3) Introduction to Mathematical Computing
- MATH 405 (3) Numerical Methods for Differential Equations
- CPSC 302 (3) Numerical Computation for Algebraic Problems
- CPSC 303 (3) Numerical Approximation and Discretization
- CPSC 402 (3) Numerical Linear Algebra
- CPSC 403 (3) Numerical Solution of Ordinary Differential Equations
- CPSC 405 (3) Modelling and Simulation
- ATSC 409 (3) Numerical Techniques for Ocean, Atmosphere and Earth Scientists
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
- Week 1: Overview, Unix basics (filesystems, commands, standard I/O, X-interface ...)
- Week 2: Basic shell programming and Web authoring.
Scientfic Programming using Maple: 2.5 weeks
- Week 2: Introduction, command-line and GUI interfaces, basic
commands and interactive problem solving.
- Week 3: Basic Maple programming.
- Week 4: Intermediate Maple programming with applications.
Scientific Programming using a General Purpose Programming Language: 3 weeks
- Week 5: Use of target language (Fortran 77/90, C, C++, Java, ...) in Unix
environment (compilation, linking, make, RCS ...), basic programming elements
(variables, basic statement types, control structures ...)
- Week 6: Modularization (functions/subroutines), arrays and other
data structures useful in scientific programming.
- Week 7: Integration and interaction of programs with other
tools (plotting packages, visualization packages, Maple ...),
porting and testing codes on different architectures/machines.
Solution of Linear Systems: 1 week
- Week 8: The LU decomposition algorithm, using "canned" software for solving
full linear systems, applications (circuit analysis ...)
Elementary Finite Difference Methods: 2 weeks
- Week 9: The nature of discrete equations derived from continuum systems,
expected behaviour of FD approximations (convergence & accuracy),
polynomial interpolation.
- Week 10: Numerical differentiation and numerical integration, applications
Non-linear Equations (Root Finding): 1 week
- Week 11: Bisection (binary search), Newton's method, Newton's method for systems of
non-linear equations.
Solution of ODEs: 1 week
- Week 12: Using "canned" software to solve ODEs and simple systems of
ODEs.
Random Numbers, Monte Carlo and Stochastic Methods: 1 week
- Week 13: Random number generators, generating non-uniformly distributed
random numbers, simple Monte Carlo simulations (diffusion limited
aggregation ...).
Created/maintained by
M.W. Choptuik:
[mail]
[URL].
Supported by
CIAR,
NSERC
and
NSF.