Computational Physics - Phys 440/740
Course Information, Spring 2006
Aims of the Course
There will be an introduction to some of the basic concepts of statistical mechanics. The lecture course will also cover elements of computer science from the physics point of view, including: transistors, digital logic circuits, Turing machines, and quantum computation. If time permits, I will in addition discuss some statistical aspects of data analysis.To expose you to some new and active areas of physics research, which have only become accessible relatively recently thanks to the speed of modern computers. Among the topics to be discussed will be nonlinear dynamics or ``chaos'' theory, Monte Carlo simulation of statistical systems and quantum field theories, the protein folding problem, spin glasses, and neural networks. We will also cover computer applications to traditional areas, e.g. electromagnetism and quantum mechanics.
To help you gain confidence, experience, and sophistication in applying computers to help solve problems of interest to physicists.
To introduce a few common numerical methods, which are of particular use in engineering and the physical sciences. These include methods for solving ordinary differential equations (including initial value, and boundary/eigenvalue problems), certain partial differential equations, and the Monte Carlo method. Note, however, that this course is not primarily a ``Numerical Methods'' course. The wide availability of numerical software packages (NAG, IMSL, SLATEC, Cernlib, to name a few) as well as the reference Numerical Recipes by Press et al., have made the life of the working physicist much easier, and also made it less necessary for us all to become great experts in numerical analysis.
Course Requirements
First of all, you
must know how to program a computer, in either Fortran 77, C , or C++.
This is essential, so you must have either completed CSC 210, or else have
my approval of an equivalent background. You must also have completed
a semester of Modern Physics (PHYS 320), and either one semester of quantum
mechanics (PHYS 430), or two semesters of electromagnetism
(PHYS 360 and 460).
Meeting times
| Tuesday | Lecture | 5:00 - 6:15 | TH326 |
| Thursday | Lab | 2:10 - 4:55 | TH123 |
| Thursday | Lecture | 5:00 - 6:15 | TH326 |
Text
Computational Physics
by Giordano and Nakanishi.
Lab Sections and Grading
You will be assigned a set of projects to complete in the course of the semester, and these are to be done both in and, if necessary, out of the lab section. All grading is based on your project reports. There are no exams in this course, either in-class or take home.
Each project sets you a series of computational tasks. The way to get an A in the course is to complete these tasks on time, and comment knowledgably on the results.
A 3-hour lab section is held every Thursday
in TH123. This will give you a chance to get partly (or completely) through
each project, with me hanging around to give advice.
440/740 Differences
Students who take this course for
graduate credit (PHYS 740) will be expected to tackle, in addition to the
"core" 440 projects, a number of additional projects. These projects
are more advanced conceptually, and more demanding to implement, than the
basic set required for undergraduate credit. The 740 projects are
noted in the Project Schedule below.
Languages and Packages
You are free to use C, C++, or Fortran 77. If you are familiar with the Matlab or IDL packages, it is also OK to use those. We will be using the Linux workstations, but you don't have to be proficient in Linux to take this course (I'm no expert myself).
You will be given an introduction to both Latex and Gnuplot, which are installed on our Linux system, and which are freely available for Macs and PC's. Latex is specifically designed for mathematical text-processing, and has become the standard in both physics and mathematics. All project reports are to be written in Latex. Microsoft Word, or the like, is not to be used. Gnuplot is a very easy-to-use plotting package which produces high-quality output, but I do not insist on its use. If you are comfortable with Matlab or IDL, you are free to use their built-in plotting capabilities.
Mathematica, because of its great popularity,
requires some special comment. This software is a wonderful tool for many
problems; in particular symbolic manipulation, simple integration, special
functions and the like. However, I discourage its use for Computational
Physics. For one thing, Mathematica is slow because it is an interpreted
language (like Basic). It will choke on some of the problems to be
solved in this course. Mathematica also gives the unfortunate impression
that almost any numerical computation (an integration, an ordinary differential
equation, even a partial differential equation!) can be solved in one line
of code. This is highly misleading, and in my experience it is not unusual
for that package to simply hand you the wrong answer to a complicated question.
I also think it has crummy graphics.
Project Reports
Project reports are much like lab reports.
I will not prescribe a rigid format, but your report should include
Commentary is important. After each graph or set of graphs, try to indicate (at least briefly) what your results tell you, or what can be learned from them. Do the results agree with some analytic formula, or could they only be produced graphically? Are your results meaningless? If so, do you think that this indicates a program error, or else some inadequacy of the numerical method?
You are encouraged to explore further on your own, if you feel so inclined, and report the results. Try other parameter ranges, related equations, and so on.
Finally, at the end of your report, you should
attach all of your program listings (including gnuplot load files).
Project Schedule
| Week | Area | Problem or System | Method |
| 0 | Introduction | ||
| 1 | Chaos | logistic map | |
| 2 740 | Chaos | pendulum | Runga-Kutta |
| 3 | Quantum Mechanics | energy eigenvalues | shooting & matching |
| 4 | Potentials | Laplace/Poisson equations | Over-relaxation |
| 5 | Waves | hyperbolic PDE's | Discretization |
| 6 740 | Quantum Mechanics | parabolic PDE | Crank-Nicholson method |
| 7 | Statistical Mechanics | D=1 Ising model | Monte Carlo |
| 8 740 | Statistical Mechanics | random matrices | Matlab |
| 9a 740 | Statistical Mechanics | D=2 Ising model | Monte Carlo |