Brief
Syllabus:
The course is divided
into four parts:
1. IDL - The Interactive Data Language:
2. The Matrix
Eigenvalue Problem:
- Direct Method; the power
method; transformation methods; Lanczos method.
- Application to quantum
Hamiltonian systems on a lattice.
3. Ordinary and
Partial Differential Equations:
- Simple methods
for ordinary differential equations; partial differential
equations as illustrated by the heat flow equation.
Implicit, explicit and Crank-Nicolson finite difference
techniques.
-
Applications
to fluid flow, electrical potential problems, etc.
4. Simulation
Techniques:
Assumed
Knowledge:
The
course assumes familiarity with 2nd year Computational
Physics PHYS2020, and either MATH2120 or MATH2130.
Course
Goals:
Computer
literacy is essential in virtually every branch of science. This is a practical course, assessed via exercises
and a project, which aims to give students hands-on experience
in writing clear and understandable computer code, compiling,
debugging and testing programs, and checking that the results
are sensible and correct. Lectures are of secondary importance,
but specific topics include:
- An introduction to IDL - the Interactive Data Language. IDL is a software package for data analysis and visualisation. It integrates a powerful, array-orientated mathematical language with mathematical analysis algorithms and graphical display techniques, providing great flexibility for the processing and interpretation of data.
-
A discussion of algorithms used for the solution of
ordinary and partial differential equations, as illustrated
by the heat flow equation. Techniques discussed include
implicit, explicit and finite difference
methods;
-
Application of the above to fluid flow, electric potential
problems, etc.;
-
Monte Carlo methods in molecular dynamics, and applications
to calculating the equation of state of simple fluids;
-
Approaches to the matrix eigenvalue problem: the direct
method; the simple power method; transformation methods;
and the Lanczos method;
-
Application to quantum Hamiltonian systems on a lattice.
Why
is computational physics important?
Computing skills are essential in virtually
every branch of science. In addition, these skills
are highly valued by potential employers after you graduate.
Graduates with a physics background, who can analyze a problem
objectively and scientifically, and use the computer to
obtain accurate, quantitative results and estimates, are
in demand by business and industry. "It is
widely believed in some sectors of the financial services
industry", for example, "that a Ph.D. in science
is essential for serious risk analysis." [Tony Butterfield,
Assistant Commissioner for Taxation].
Within
the discipline itself, computational physics has become
recognized as a third branch of physics, lying in between
the traditional branches of experimental and theoretical
physics:
- Monte Carlo simulations have become ubiquitous as a
means of predicting the behaviour of large and complex
systems on the basis of physical laws. These "computer
experiments" are often carried out by large teams,
rivalling experimental groups in size.
-
Finite difference or finite element algorithms are universally
used for classical problems involving differential equations,
such as the flow of gas past a wing, or predicting the
weather;
-
The eigenvalue problem is important in most areas where
vector quantities are involved, e.g. in Heisenberg's
matrix formulation of quantum mechanics, and thus in
atomic, nuclear and particle physics, as well as condensed
matter physics.
How
to succeed - Strategies for Learning
This
is a practical course: with sufficient effort and perseverance,
any student can complete the required exercises successfully.
The major problem most students will encounter is that of
"debugging" your code: identifying and removing
all the mistakes in a program. All programmers learn that
endless patience and persistence is needed for this task;
but it does become easier with practice and experience.
Students should learn to consult with each other and with
the lecturer, rather than beating their brains out against
a brick wall.
The
course has many valuable lessons to teach: writing clear
and well-annotated code; careful checking and testing of
results; writing a clear and concise report. Students who
work with care and attention to detail from the start will
find their task much easier. The final project occupies
the finalweeks at the end of the course, when students
are required to put all these lessons into practice.
There is no final
exam but students perform computer simulations in each of
the three subject areas of the course and then investigate a 'project'
computation in more detail. Lectures usually only proceed
for about 9 of the 12 weeks of Session, leaving students
time for their exercises and project. Students are encouraged
to consult the lecturers as they proceed with their work.
Assessment
- 4
assignments 70%
- 1
project 30%
- No
final exam
References
There
course textbook is:
- Computational Physics, N.J. Giordano & H. Nakanishi (Pearson)
Students may also find the following reference useful:
- Numerical Recipes, H.J. Press, S.A. Teukolsky, W.T. Vetterling & B.P. Flannery (Cambridge)
The picture shows
the solution of one of the student exercises. A solitary
wave ( or soliton) has a certain disturbance u as a function
of distance x at time zero ( curve marked with points).
The other curves show the development at several later
times.
Further Information
For more information
about PHYS3610 contact:
last updated 1st February 2011