Overview of course material: Computational Physics

Morten Hjorth-Jensen [1, 2]

[1] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University, USA
[2] Department of Physics, University of Oslo, Norway

The teaching material is produced in various formats for printing and on-screen reading.

Warning.

The PDF files are based on LaTeX and have seldom technical failures that cannot be easily corrected. The HTML-based files, called "HTML" and "ipynb" below, apply MathJax for rendering LaTeX formulas and sometimes this technology gives rise to unexpected failures (e.g., incorrect rendering in a web page despite correct LaTeX syntax in the formula). Consult the corresponding PDF files if you find missing or incorrectly rendered formulas in HTML or ipython notebook files.

Computational Physics Notes

Introduction to computational physics

Introduction to programming

How to write scientific reports

Matrices and linear algebra

Diagonalization and eigenvalue problems

How to optimize your code, from compiler flags to vectorization and parallelization

Object orientation

Numerical integration

Introduction to Monte Carlo methods

Brownian motion and randow walks

Statistical physics

Quantum mechanical systems

Ordinary differential equations

Partial differential equations

Summary of course

Teach yourself C++

Projects Fall 2020

Project 1, Deadline September 9

Project 2, Deadline September 30

Project 3, Deadline October 26

Project 4, Deadline November 23

Project 5 Quantum Monte Carlo, deadline December 18

Project 5 Disease Modeling, deadline December 18

Project 5 Diffusion Equation, deadline December 18

Project 5 Monte Carlo Modeling of Elections, deadline December 18

Project 5 Rossby wave and wave equation, deadline December 18

Project 5 Molecular Dynamics, deadline December 18

Project 5 Financial Modeling with Monte Carlo sampling, deadline December 18

Project 5 Option Markets and the Black-Scholes Equation, deadline December 18

Basic Syllabus

The syllabus for this course consists of the lecture notes on the webpage (chapters 2-15) and 5 compulsory projects. The last three projects are graded and count 1/3 each of the final mark.

A good text that can be used (with more math plus much material on parallelization) is Parallel Scientific Computing in C++ and MPI, of Karniadakis and Kirby III.

Additional literature

In addition we recommend highly the texts on Numerical Recipes in C++ or Fortran90 by Press et al. The C, F77 and Fortran90 can be downloaded down for free, follow the links at Numerical Recipes.

The program library in C++ and Fortran2008 used in this course is a rewritten version of the Numerical Recipes codes.

Programs in C++, Fortran and Python discussed in lecture notes

All programs are available at the github address of the course