PY 502, Computational Physics, Fall 2023

Department of Physics, Boston University

Instructor: Anders Sandvik

Lectures: Tuesday, Thursday 5 - 6:15 PM, in SCI B58
Discussion meetings, Friday 2:30-3:20 PM, in SCI B58
Office hours: Wednesdays 2 - 3 PM, Fridays 3:30 - 4:30 PM, in SCI 450A

This course introduces some of the most widely used methods of computational physics, including numerical solutions of differential equations (initial and boundary value problems) in classical and quantum mechanics, Monte Carlo simulations, and numerical diagonalization of quantum many-body Hamiltonians. Beyond providing a basic working knowledge of these particular techniques, the goal is to create the foundations for ``computational thinking''---the ability to create models of physical phenomena and devise suitable numerical methods to study their properties. The Julia programming languages will be used---the first few lectures will introduce the language. The full syllabus is available here.

Course News

Homework assignment #7 posted, due Tuesday, December 12.

Lecture Notes and Program Examples

0) Course Introduction
     Lecture slides: [Sep 5]
1) Introduction to the Julia programming language [Program examples]
     Lecture slides: [Sep 5] [Sep 7] [Sep 12] [Sep 14] [Sep 19]
2) Numerical integration and Monte Carlo integration [Notes] [Program examples]
     Lecture slides: [Sep 19] [Sep 21(anim)] [Sep 26]
3) Solving classical equations of motion [Notes] [Program examples]
     Lecture slides: [Sep 26] [Sep 28] [Oct 3]
4) Quantum mechanics: solving the Schroedinger equation [Instructor's notes] [Program examples]
     Lecture slides: [Oct 5 (anim) (anim) (anim) (anim) (anim) (anim)] [Oct 12] [Oct 17]
     [Oct 19 (anim) (anim) (anim) (anim)] [Oct 24]
5) Monte Carlo simulations in classical statistical physics [Instructor's notes] [Program examples]
     Lecture slides: [Oct 26] [Oct 31 (anim) (anim) (anim) (anim) (anim) (anim) (anim)] [Nov 2] [Nov 7]
     [Nov 9 (anim) (anim) (anim)]
6) Quantum spin systems
     [Instructor's notes] [Program examples] [QuSpin I] [QuSpin II]
     Lecture slides: [Nov 21] [Nov 23] [Nov 28]

Materials for (some) discussion meetings

[Sep 8 (qsub templates)] [Sep 15] [Sep 22] [Oct 20] [Nov 3] [Nov 10]

Homework assignments

1) Due: September 26 [Problem text] [Solutions]
2) Due: October 3 [Problem text] [Solutions]
3) Due: October 17 [Problem text] [Solutions]
4) Due: October 26 [Problem text] [Solutions]
5) Due: November 9 [Problem text] [Solutions]
6) Due: November 21 [Problem text] [Solutions]
7) Due: December 12 [Problem text][random ferromagnet code] [Solutions]

Online Julia resources

Home page of the Julia language; download, documentation
Julia Express; brief introduction to the Julia language

Other resources

[color2d.f90] 2D plot program (Fortran)