Computational Physics - Phys 440/740

           Course Information,  Spring 2006
 
 

Aims of the Course
 

  • 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.
  • 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. 
     

     

    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
     

       Do not be too verbose.  If it was discussed in class, you may assume that I am familiar with the numerical method you are using, so there is no need to rederive it or explain it in great detail.  However, it is usually a good idea to mention the parameters you chose, or some particular way in which you implemented the algorithm.

       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
     9b       740                                          or - Neural Networks