PHY832 - International Course on Computational Physics (ICCP)
The dutch students are visiting during the week of Feb. 6th.
During
this week we work on the first ICCP project, and you should spend
as much time as possible on the course and also some time socializing
with the dutch students while they are in East Lansing.
Instructor Phil Duxbury (BPS 4260, duxbury at pa.msu.edu)
TA Connor Glosser
Regular class time Tuesday 3-5pm BPS1240
Other times lab is open Tuesday and Thursday 10:20-11:40am
The course is in collaboration with
Technical University Delft, in Delft the Netherlands. In the ICCP
coding may be done in either C++ or Fortran 90, the choice being made by
each group of students. Here are
more details about the course structure.
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.
Warm up project
MC methods I and Outline of the first project
MC methods II
In the ICCP 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.
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
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