Statistical Mechanics: Algorithms and Computations

In this course you will learn a whole lot of modern physics (classical and quantum) from basic computer programs that you will download, generalize, or write from scratch, discuss, and then hand in. Join in if you are curious (but not necessarily knowledgeable) about algorithms, and about the deep insights into science that you can obtain by the algorithmic approach.

About The Course

This course discusses the computational approach in modern physics in a clear yet accessible way. Individual modules contain in-depth discussions of algorithms ranging from basic enumeration methods to cutting-edge Markov-chain techniques. Emphasis will be put on applications in classical and quantum physics. The focus will be on subjects such as Monte Carlo sampling, molecular dynamics, transition phases in hard-sphere liquids, simulated annealing for solving geometrical constraints, perfect sampling of classical spin models, to aspects of quantum Monte Carlo algorithms, Bose-Einstein condensation, and many-body physics with fermions. The emphasis is on orientation. Discussion of implementation details will be kept to a minimum.

The course is entirely self-contained. It heavily relies on concise algorithms  (each with between 10 and  50 lines of Python code). Modules lead from elementary discussions to the rich and difficult problems in contemporary physics, and are of interest to a wide range of students in the natural sciences.

Recommended Background

 Understanding of basic calculus and linear algebra will be assumed, as well as some familiarity with College  physics or chemistry. No prior exposure to programming is required: Expertise in the Python language will be acquired during the course.