This is a very hands-on course which will involve a lot of programming assignments. The main aims of the course are two fold:
The syllabus can be downloaded from here.
**1. Introduction to computational physics, computer architecture overview, tools of computational physics (3 hours)**
What is computational physics? Why do we need it?; Computer hardware: basic computer architecture, hierarchical memory,
cache, latency and bandwidth; Moore’s law, power bottleneck; Software: compiled (Fortran, C) vs. interpreted languages
(MATLAB, python); software management.; Parallelization: MPI; OpenMP; CUDA.
**2. Machine representation, precision and errors (1.5 hours)**
Representation on a computer: Integer representation; floating-point representation; Machine precision; Errors: round-off;
approximation errors; random errors; errors of the third kind; Quadratic equations; Power series; Delicate numerical expressions;
Dangerous subtractions; Preserving small numbers; Partial Fractions; Cubic equations; Sketching functions;
**3. Quadrature and Derivatives (6 hours)**
Direct fit polynomials; Quadrature methods on equal subintervals; Newton-Cotes formula; Romberg Extrapolation; Gaussian
quadrature; Adaptive step size; Special cases;
**4. Solutions of linear and non-linear equations (9 hours)**
Simultaneous linear equations: Gauss elimination (pivoting, scaling); LU factorization; Calculating inverse; Tri-diagonal
systems; Eigenvalues and Eigenvectors: QR Factorization; Gram-Schmidt Orthogonalization; Real roots of single variable function;
Relaxation method; qualitative behavior of the function; Closed domain methods (bracketing): Bisection; False
position method; Open domain methods: Newton-Raphson, Secant method; Complications; Roots of polynomials; Roots of non-linear equations;
**5. Fourier methods (3 hours)**
Fast Fourier transform; Convolution; Correlation; Power spectrum;
**6. Random numbers and Monte-Carlo (6 hours)**
Random number generators; Monte-Carlo integration; Non-uniform distribution; Random Walk; Metropolis algorithm;
**7. Ordinary differential equations (9 hours)**
Initial value problems: First order Euler method; Second order single point methods; RungeKutta methods; Multipoint methods;
Boundary value problems: Shooting method; equilibrium boundary value method;
**8. Partial differential equations (6 hours)**
Types of partial differential equations: Hyperbolic, parabolic and elliptic; Boundary value problems: Overrelaxation; Gauss-
Siedel Method; Initial value problems: FTCS method; Numerical stability; Implicit and Crank-Nicolson methods; Spectral methods;
There are similar lecture notes available in Prof. Prateek Sharma’s webpage and Prof. Manish Jain’s webpage.
50%
homework and 50%
project.Homeworks will be uploaded here periodically. There will be decent amount of time to submit the homeworks in time.
There is a penalty for the late submission of the homeworks.
For every day you are late (unless informed prior to submission) 25%
of the marks will be deducted. After 4 days there wont’t be any credit for the homework.
Homework set 1 is uploaded on 8th January, 2020 ; due on 20th January, 2020. Click here to download.
Additional files: millikan.txt, stm.txt, sunspots.txt
Homework set 2 is uploaded on 26th January, 2020 ; due on 10th February, 2020. Click here to download.
Additional files: altitude.txt, stm.txt, gaussxw.py, velocities.txt
Homework set 3 is uploaded on 5th February, 2020 ; due on 24th February, 2020. Click here to download.
Homework set 4 is uploaded on 20th February, 2020 ; due on 9th March, 2020. click here to download.
Homework set 5 is uploaded on 28th February, 2020 ; due on 23rd March, 2020. click here to download.
Homework set 6 is uploaded on 12th March, 2020 ; due on 1st April, 2020. click here to download.
Note: A. Question 5 has been modified slightly. (Updated on Mar 26th) B. Updated on 29th March
Additional file: dcst.py
Homework set 6 is uploaded on 6th April, 2020 ; due on 20th April, 2020. click here to download.