Graduate CompPhys
Undergrad CompPhys
Advanced Grad CompPhys
Many body physics
Quantum Mechanics
Advanced Solid State
E&M


Left: Simulation of a bacteria growth by DLA method, Right: Molecular dynamics simulation of a small system of atoms.
This course introduces algorithmic concepts and familiarizes
students with basic computational tools essential for graduate
students in computational physics. These tools are also highly
beneficial to most graduate students in STEM and related fields,
as well as those planning to pursue careers in the IT industry.
In this course, students will work toward mastering computational
skills and basic algorithms relevant to classical and quantum physics.
However, the course is not limited to these fields. For example, largescale minimization problems,
highdimensional integration problems, and solving partial differential equations make up the bulk of the course.
These same algorithms are also widely applicable across all STEM fields and are used by quantitative analysts
in major banks. While the examples are primarily drawn from quantum physics, their applicability extends
far beyond this specific subfield.
The primary programming language for this course will be Python, along with its scientific libraries,
SciPy and NumPy. To optimize certain parts of the code, we will also use C++ (with pybind11) and Fortran90 (f2py)
for brief examples, which will be accessed through the Python interface.
This course has no prerequisites other than familiarity with a programming language.
It is designed for students who wish to broaden their knowledge of applications and
develop new techniques. To complete the homework and participate in handson training,
students are encouraged to use their own laptops and bring them to class (for inperson sessions).
Class Time: ARC 107 10:20pm11:40pm Monday and Thursday
Instructor: 
Kristjan Haule
Office: Serin E267
email: haule@physics.rutgers.edu
Phone: 4453881
Office hours: after lecture

Classes that need to be rescheduled: Sept 9, Spet 12, Oct 28, Oct 31.
Could be reschedules at the following dates: Dec 12, Dec 16, Dec 19.
Youtube videos from 2021:
Lecture 1,
Lecture 2,
Lecture 3,
Lecture 4,
Lecture 5,
Lecture 6,
Lecture 7,
Lecture 8,
Lecture 9,
Lecture 10,
Lecture 11,
Lecture 12,
Lecture 13,
Lecture 14,
Lecture 15,
Lecture 16,
Lecture 17,
Lecture 18,
Lecture 19,
Lecture 20,
Lecture 21,
Lecture 22,
Lecture 23,
Lecture 24,
Lecture 25,
Lecture 26
Course Outline and Tentative List of Topics
A) Introduction to computation
 Installation and Mandelbrot set, jupyter nb: Introduction_to_Comp_Phys_509.ipynb
 Interactive Mandelbrot & selfsimilarity, jupyter nb: Interactive MandelbrotSet.ipynb, python script: manp_dynamic.py
 Logistic map and fractals, Lyapunov exponent and chaos, jupyter nb: Logistic map.ipynb
 parallelization with openMP, pi_examp.cc
 Numerical error accumulation and Miller's algorithm, jupyter nb: Numerical_Error.ipynb
B) Learning Python programming (Numpy, SciPy, Pylab)
 Jupyter introduction, jupyter nb: 00_Introduction.ipynb
 Python syntax, jupyter nb: 01_Basic_Python.ipynb
 Numpy, jupyter nb: 02_Numpy.ipynb
 Scipy, jupyter nb: 03_Scipy.ipynb
 Hydrogen atom & scipy, jupyter nb: 04_Scipy_Hydrogen_atom.ipynb
 Atom with LDA, jupyter nb: 05_Atom_in_LDA.ipynb
This lectures are adopted from https://github.com/jrjohansson/scientificpythonlectures
Homeworks:
Homework 3,
Numerov algorithm
Homework 4,
Script for XC potential: excor.py
Total energies from NIST (Energies are given in Hartree's)
More literature on Learning Python:
Software carpentry
How to Think Like a Computer Scientist: Learning with Python
Python for beginners
Python documentation
Python regular expressions
C) Monte Carlo and Simulated Annealing
 Random numbers, multidimensional Vegas integration
(Vegas_code, jupyter nb: Vegas_2021.ipynb)
 Classical Monte Carlo & Simulated Annealing
 HighDimensional integration by Metropolis, jupyter nb: highd_int.ipynb,
mweight.py
Homework for highD integration by Metropolis
Alternative implementation of Ising: online Ising model simulation
Other Source Codes:
C version of HighD integration
Diffusion limited aggregation
Other MC codes
D) Machine Learning
 Linear regression, pdf ( jupyter notebook, NucleousEnergy.dat)
 Logistic regression, pdf ( jupyter notebook)
 Deep Learning, pdf (jupyter notebook,NNfig.pdf,or_xor.pdf,NN_digits.pdf)
E) Parallel Programing
 Parallel programming with MPI ( source code)
F) Basic numerical methods:
 Numeric integration (source code)
 Interpolation, Splines and Fourier transformation (source code)
 Differential equations (source code)
Literature:
Numerical Recipes online
G) More advanced topics in Computational Condensed Matter physics:
 HartreeFock method
 Density functional theory
 Quantum Monte Carlo methods
 Continuous Time Quantum Monte Carlo method
 Molecular dynamics simulation
Literature:
 Computational Physics by J.M. Thijssen
 An introduction to Computer Simulation Methods by H. Gould, J Tobocnik and W. Christian
 Electronic Structure, Basic Theory and Practical Methods by Richard M. Martin(Very good book for the Density functional part of the course)
 An Introduction to Computational Physics by Tao Pang
 Computational Physics by Rubin H. Landau and Manuel J. Paez(More elementary but good book)
Students with Disabilities
