PHYS 410

Computational Physics

PHYS 410 Computational Physics.

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: PHYS 312 (or MATH 316), CPSC 122 (or CPSC 126 or CPSC 152 or extensive computer experience) (3 ,0, 1):

Registration number 30369

Time:
Tue 8:30-9:30 Hebb 10

Tue 10:30-11:30 Hebb 13
Thu 10:30-11:30 Hebb 12

There is also a tutorial, but the time for this has not yet been scheduled

 

Course outline

This course provides an introduction to modern tools, techniques and applications in computational physics. The key goal of this course is to provide the student with experience and expertise in the formulation and solution of broad classes of problems from physics using appropriate computer software (perhaps custom written) and hardware. The chief overall focus of the course from the point of view of physics is the simulation of dynamical systems, although the techniques discussed can often be applied to time-independent problems.

Because the solution of realistic (or research-level) problems in computational physics often requires the synthesis of several basic methods of numerical analysis, and because such methods have often NOT been used comprehensively by the target undergraduate physics students (majors and honors), some of the course lectures and problem sets focus on basic topics in the computational analysis of physical systems. These include

  1. Discretization of equations of motion using finite difference (FD) techniques,
  2. Solution of the linear systems which typically arise in (FD) applications, and solution of linear systems in general
  3. Solution of non-linear equations (including systems) using Newton's method
  4. Solution of systems of ordinary differential equations.

In instances where coverage of the underlying theory must be kept short due to time constraints, ample pointers to the numerical analysis and mathematical literature will be provided for the interested student. In covering these topics, the homework assignments and laboratory sessions will play a crucial role. Computational physics almost always involves some level of programming, and the non-trivial process of converting the specification of an algorithm into a working, tested piece of code is a skill which requires considerable practice.

In addition to the above topics, the course will discuss techniques for the simulation of particle systems, and provide an introduction to the simulation of stochastic systems. These latter two topics will also be used for the basis of a introductory discussion of parallel computing, including a brief examination of classes of problems in physics which are particularly amenable to parallel computation. If time permits, some topics in the physics of computation, including reversibility and the thermodynamics of computation will also be covered.

A crucial component of each student's coursework will be the completion of a term project requiring the application of one or more of the techniques discussed in the course to a problem in physics of the student's own choosing. Typical term projects could include

  1. The simulation of a quantum mechanical particle moving in an arbitrary time-dependent potential, and the analysis and physical interpretation of the results for selected potentials.
  2. The simulation of soliton propagation and interaction using the KdV equation.
  3. The simulation of the dynamics of a large number of gravitationally interacting particles, with applications to topics in celestial dynamics (such as the structure of the rings of Saturn).
  4. The simulation of a number, n, of identical charges, confined to the surface of a sphere, and the analysis of the nature of the static configurations considered as a function of n.
  5. The simulation and analysis of the 2D Ising model, including a discussion of techniques for addressing the problem of "critical slowdown"

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/tutorial session, and students will also be encouraged to use the course computer lab to complete homework sets and term projects.

Marking scheme:

Homework Assignments 50%
Tests (midterms/final) 30%
Project 20%

--------------------------------------------------------------------------

Matthew W. Choptuik|Dept. of Phys. & Astronomy, UBC|6224 Agricultural Road, Vancouver BC, V6T 1Z1, Canada|Voice: (604) 822-2412|Fax: (604) 822-5324

choptuik@physics.ubc.ca http://laplace.physics.ubc.ca/Members/matt/