Table Of Contents

Previous topic

Phys 234 : Introductory Computational Physics

Next topic

Introduction

Phys 420/580 : (Advanced Topics in) Computational Physics

Class website

Details of the course, including meeting times for the lectures and labs, exam dates, and grading criteria, are available on the class web site:

Source code and instructions for the assignments and labs will be posted there during the term.

Computing platform

This course will emphasize standard open-source tools available under GNU/Linux. Linux is a popular (and free) variant of the Unix operating system that is widely used in the scientific community. Students will be expected to achieve basic proficiency with the BASH shell, emacs, make, gnuplot, and the GNU Compiler Collection (GCC). The language of instruction will be C++, a superset of C that includes object-oriented features and libraries for generic programming. Despite these choices, much of the material we’ll cover will be language- and platform-agnostic.

Students will be expected to compose their labs, assignments, and (for 580 students) term projects in C++. It should be straightforward for students to pick up the small portion of the language we will be using, especially if they are already familiar with C or Fortran 95. There will be some language instruction during the lectures. Nonetheless, students will be primarily responsible for picking up C++ on their own. To that end, these notes provide an extensive tutorial along with a number of useful examples and exercises.

Book list

There are innumerable books on the C++ programming language. Here are four introductory titles and a more advanced book written by Bjarne Stroustroup, the inventor of C++:

  1. Practical C++, R. W. McGregor, Que (1999) ISBN-10:0789721449
  2. A First Book of C++: From Here to There, G. J. Bronson, 2nd Ed., Books/Cole (2000) ISBN-10:0534368018
  3. C++ Primer, S. Lippman, J. Lajoie, and B. Moo, 4th Ed., Addison-Wesley (2005). ISBN-10:0201721481
  4. C++ Primer Plus, S. Prata, 6th Ed., Addison-Wesley Professional (2011) ISBN-10:0321776402
  5. The C++ Programming Language, B. Stroustrup, 3rd Ed., Addison-Wesley (2000).

You can find many other recommendations at http://www.cprogramming.com/books.html.

Here are some of the standard computational physics texts in wide use:

  1. Computational Physics, T. Pang, 2nd Ed., Cambridge University Press (2010) ISBN-10:0521532760
  2. Introductory Computational Physics, A. Klein and A. Godunov, Cambridge University Press (2006) ISBN-10:0521828627
  3. Practical Guide to Computer Simulations, A. K. Hartmann, World Scientific (2009) ISBN-10:981283415X
  4. An Introduction to Computer Simulation Methods: Applications to Physical Systems, H. Gould and J. Tobochnik, 2nd Ed. (TrueBasic), Addison-Wesley (1995). ISBN-10:0201506041; 3rd Ed. (Java), Addison-Wesley (2006) ISBN-10:0805377581
  5. Computational Physics, N. J. Giordano and H. Nakanishi, Pearson Prentice Hall (2006) ISBN-10:0131469908
  6. Computational Physics: Fortran Version, S. E. Koonin and D. Meredith, Westview Press (1998) ISBN-10:0201386232
  7. Computational Physics, J. M. Thijssen, Cambridge University Press (1999) ISBN-10:0521575885

And here are some good books related to scientific computation more generally:

  1. A First Course in Numerical Analysis, A. Ralston and P. Rabinowitz, 2nd Ed., Dover Publications (2001) ISBN-10:048641454X
  2. Numerical Recipes: The Art of Scientic Computing, W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, 3rd Ed., Cambridge University Press (2007) ISBN-10:0521880688
  3. Mathematics and Physics for Programmers, D. Kodicek, Cengage Learning (2005) ISBN-10:1584503300
  4. Introduction to Algorithms, T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, 3rd Ed., The MIT Press (2009) ISBN-10:0262033844