Overview
Introductory lecture material
Programming
Basic numerical methods
Methods and Algorithms
Monte Carlo methods
Quantum Monte Carlo methods
Continuous Time Quantum Monte Carlo
HartreeFock method
Density functional theory
Molecular Dynamics


Left: Simulation of a bacteria growth by DLA method, Right: Molecular dynamics simulation of a small system of atoms
Simulation codes is available to download in lecture material.
This course introduces logarithmic concepts and familiarizes
students with the basic conputational tools which are essential
for graduate students in computational physics and related
areas.
In this course, students work toward mastering computational
skills, needed to work in classical and quantum physics using
the computer. Examples will be drawn from various areas of
physics.
As the programing language, we will use mostly Python and
its scientific library scipy & numpy.
To speed up parts of the code, we will also
use C++ and fortran90 for short examples, which will be used
through the Python interface.
This course has no prerequsites except for familiarity with some
programming language. It is designed for the student who wishes to
broaden his/her knowledge of applications and develop
techniques.
To follow the course more efficiently, and perform the hands on
training, it is desired that students bring their own laptops to
the class.
Class Time: Online (you should get Zoom link) 5pm6:20pm Monday and Wednesday
Instructor: 
Kristjan Haule
Office: Serin E267
email: haule@physics.rutgers.edu
Phone: 4453881
Office hours: after lecture

Student's survey link
QR code for survey
Codes available at https://github.com/haulek/CompPhysics
Youtube video available at:
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
Preliminary Course Outline and Tentative List of Topics include
A)Introduction:
System and Python instalation including libraries and environment,
Comparison of modern programing languages, speed up the code with numba, f2py, pybind11, parallelization with openMP,
roundoff error & recursion,...
B) Learning high level programming with examples in Python:
Modern Scientific Computing using Python, SciPy, Numpy, Pylab
Literature for Pythons:
 Software carpentry

How to Think Like a Computer Scientist: Learning with Python
 Python for beginners
 Python documentation
 Python regular expressions
C) Computational methods and algorithms:
 Random numbers, Monte Carlo methods and Simulated Annealing
 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
 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)
D) Basic numerical methods:
 Numeric integration (source code)
 Interpolation, Splines and Fourier transformation (source code)
 Differential equations (source code)
 Parallel programming with MPI ( source code)
Literature:
Numerical Recipes online from http://www.nrbook.com/b/bookcpdf.php
Students with Disabilities
