Computational Methods in Many-Body Physics (PH2264)

Lecturers: Michael Knap, Frank Pollmann
Teaching Assistant: Marco Lastres, Anton Romen, Raul Morral Yepes, Philip Zechmann

Lectures: Tue 16:00-17:30
Practicals: Fri 14:00-18:00

This course provides an introduction to numerical techniques used for solving quantum many-body problems. It covers (Quantum) Monte Carlo, Exact Diagonalization, Matrix Product States, Tensor Networks, and Non-Equilibrium Quantum Field Theory. This course is highly interactive. It consists of two hours lectures per week accompanied by four hours of practicals in which the newly acquired techniques will be applied to problems that directly touch upon current research in our groups.

The course will be offered this semester at the announced times and will be based on web conferencing. Further details will be sent by email to all participants registered in campus online. Please sign up online to be able to receive the latest information.


I. Introduction
Lattice models

II. Classical Monte Carlo simulations
Metropolis algorithm
Critical slowing down: cluster and loops algorithm

III. Finite size scaling analysis

IV. Exact diagonalization
Exact diagonalization
Sparse matrices and the Lanczos method 
Dynamical properties

V. Entanglement and matrix product states
Area law 
Scaling in critical systems 
AKLT model
Canonical form 

VI Matrix product state based algorithms
Time Evolving Block Decimation 
Density Matrix Renormalization Group 

VII. Tensor product states
Tensor Renormalization
Boundary theories

VIII. Machine Learning
Neural networks
Deep learning


Exercises and solutions will be provided on Moodle.

You will be given time to solve the exercises during the Friday tutorials.

To get a bonus for the final exam, show up to the Friday tutorials or send some codes/plots to a TA to prove that you worked on the exercises.


Introduction to Python,
Lecture Notes by Anders W. Sandvik,
Lecture Notes by Johannes Hauschild, Frank Pollmann,

Review on DMRG by Ulrich Schollwoeck,

Online book by Michael Nielsen,


We will give out numerical projects, which are extensions of the tutorials.
Students, who want to take the exam, need to choose and work on one of these projects.
In the oral exam, the students are asked to give a 10 minutes presentation on the basic ideas and results of the project, followed by 15 minutes of questions, which can be both about the project itself as well as general questions regarding other topics of the course.