PHY480 - Computational Physics

Instructor Phil Duxbury (BPS 4260, duxbury at pa.msu.edu)
TA Connor Glosser
Regular class times 10:20-11:40am, Tuesday and Thursday
Additional Laboratory times Tuesday 3-5pm BPS1240

International option
  • The international option is in collaboration with Technical University Delft, in Delft the Netherlands. In the international option coding may be done in either C++ or Fortran 90, the choice being made by each group of students.
  • Co-instructor for the International option: Prof. Jos Thijssen.

    Course Outline
    This course involves developing Fortran (or C++ for the international option) code and using it to simulate several different systems of broad interest in physics. The main projects are based on the following methods / problems which form the basis of computational physics:
  • Monte Carlo Methods.
  • Molecular Dynamics Methods
  • Eigenvalue problems
  • Differential equations

    The projects

    Getting to know Fortran:
    To get started do the first two worksheets in the introduction to fortran course. There you will find a summary of Fortran syntax, some examples and a more comprehensive introduction to Fortran 90. A summary of linux commands is also there.

    First Project - PHY480
    MC methods I and Outline of the first project
    MC methods II
    You should write your report in latex with the figures embedded in the text. Here is a template to use. mclectures1.tex This contains a figure and is called in such a way that the figure needs to be in the same directory as the .tex file. Here is the figure. harding2.jpeg. To create a .pdf file from the .tex file you only need to enter "pdflatex mclecture1.tex" to create a file called mclecture1.pdf. There are many good online introductions to latex. One aspect not required for the first project report is the use of a bibliography file. That will be introduced in the second project report. Send a .pdf of your report and a copy of your code by email, due Thursday March 1st. Note that during the week of Feb. 6th, we will work on a project involving MD simulations jointly with the dutch Dutch students.

    First project: ICCP - MD for Argon
    The report Each person may write their own report, using the same data as their partners. Alternatively a joint report with the dutch partners is acceptable, provided you understand and participate in writing all parts of the report. The report should be written in .tex. Please send a copy of your report (.pdf) and a copy of your code by email, the due date is March TBA. Here is some background that you might find useful.
    mdlecture1.pdf
  • Introduction to MD and outline of the second project.
    twoparticles.f90
  • A fortran 90 code for MD simulation of two particles in LJ potential
    fcc.f90
  • A fortran 90 code to generate an fcc lattice
    fcc.nb
  • A Mathematica code to visualize the fcc lattice
    mdlecture2.pdf
  • More information on the MD project and some useful coding tricks.


    Second Project - ICCP: Due April 16
    Advanced Monte Carlo Methods:
    The three options are outlined in the lecture notes ICCPProject2.pdf
    More detailed background to the three options will be posted soon.
  • Background to the polymer MC project (Option 1) is given in the
    Polymer physics and algorithms Review
  • Background to the Ising cluster Algorithm project (Option 2) is given in the
    Ising MC paper
  • Background to the Quantum Monte Carlo project (Option 3) is given in the
    Variational QMC lecture notes. Original Scanned Version (large file)


    Third Project, ICCP: Due one day before laboratory exam:
    Here are the two options for the
    third project
  • Details of the
    tight binding project (Option 1);
    and a paper on tight binding for graphene.
    a paper on localization in quantum percolation.
    A paper on localization in the Anderson model. a review of localization
  • Details of the
    charge injection project (Option 2) 1D device model paper of Koster et al.
    Another useful reference describes modeling of solar cells in higher dimensions.

    Course evaluation

    For each project you will write a report, which contains the objective of the calculations, your code, and the results you generated using your code. These reports constitute 75% of the grade. There will be a 1 hour final lab exam based on your projects. . These meetings will be held in BPS1240. During your "final" meeting we will discuss your project reports and codes that you hand in, and you will be asked to run your algorithms to illustrate some issues. In addition you will be asked to make relatively minor modifications of your codes to calculate new things.

    Reference materials

  • PHY201 - introduction to fortran. This is the introductory Fortran course. The worksheets have some sample programs.
  • Fortran 90 reference card
  • Here is a more complete summary of Fortran 90 which we shall refer to during the course. It comes from the www site
  • Here is a list of useful unix commands and an introduction to Linux Computing in BPS1240.
  • The worksheets for the PHY201 might be also useful

    Recommended text

  • Computational phyiscs, J.M. Thijssen (Cambridge University Press,1999)

    Other useful books

  • Introduction to computer simulations methods, Second Edition. H. Gould and J. Tobochnik (Addison-Wesley,1996)
  • Molecular modeling for beginners, A Hinchcliffe (Wiley,2003)
  • "An introduction to Fortran 90 for scientific computing", by James M. Ortega.
  • A more advanced book is
    "Fortran 90/95 explained" second edition. by Michael Metcalf and John Reid. Oxford University Press, 1999.
  • A nice (free) online book containing Fortran 77, Fortran 90 and C++ codes for a wide range of useful procedures is Numerical recipes online . They are charging for later editions.

    Some other useful links

    Fortran tutorial
  • Python reference card
  • C++ reference card
    Michael Feig's Lecture notes on biomolecular simulations using CHARMM. Read this to learn how to define the energy functions.
    Review of Monte Carlo Methods for proteins (.pdf file). Read this to learn how to choose the Monte Carlo moves.
    The rational behind force fields
    The CHARMM22 force field for proteins
    Review of simulation methods for macromolecules by Kurt Kremer (.pdf file)

    c++ or f90 - you make the call
    C++ is better for scientific computing
    f90 is better, including efficiency comparisons