computational-physics

Welcome to Computational Physics PHY 354

This is a very hands-on course which will involve a lot of programming assignments. The main aims of the course are two fold:

  1. Learning basic methods, tools and techniques of computational physics.
  2. Developing practical computational problem solving skills.

Syllabus

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;

Textbooks

  1. Mark Newman, Computational Physics, CreateSpace Independent Publishing Platform (2013).
  2. Forman Acton, Real computing made real: Preventing Errors in Scientific and Engineering Calculations, Dover Publications.
  3. Lloyd N. Trefethen and David Bau, Numerical Linear Algebra, SIAM.
  4. William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery, Numerical Recipes 3rd Edition: The Art of Scientific Computing

Lecture Notes

  1. Lecture Note 1
  2. Lecture Note 2
  3. Lecture Note 3
  4. Lecture Note 4
  5. Lecture Note 5
  6. Lecture Note 6
  7. Lecture Note 7
  8. Lecture Note 8
  9. Lecture Note 9
  10. Lecture Note 10
  11. Lecture Note 11
  12. Lecture Note 12
  13. Lecture Note 13
  14. Lecture Note 14
  15. Lecture Note 15
  16. Lecture Note 16
  17. Lecture Note 17
  18. Lecture Note 18
  19. Lecture Note 19
  20. Lecture Note 20
  21. Lecture Note 21

There are similar lecture notes available in Prof. Prateek Sharma’s webpage and Prof. Manish Jain’s webpage.

Grading Policy

  1. No Exam !!!
  2. There will be homeworks and projet. The grading policy is 50% homework and 50% project.
  3. Project will be decided by the student in consultation with the Masters/PhD/Bachelors advisor – subject to the Instructors approval as well.
  4. Stand alone project – which you have to get working and submit a working code and report. Also, make a presentation on it at the end of the course.
  5. Projects can start right away.
  6. Fill out this form for the project details.

Homeworks

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.

  1. 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

  2. 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

  3. Homework set 3 is uploaded on 5th February, 2020 ; due on 24th February, 2020. Click here to download.

  4. Homework set 4 is uploaded on 20th February, 2020 ; due on 9th March, 2020. click here to download.

  5. Homework set 5 is uploaded on 28th February, 2020 ; due on 23rd March, 2020. click here to download.

  6. 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

  7. Homework set 6 is uploaded on 6th April, 2020 ; due on 20th April, 2020. click here to download.

Contact

  1. Prof. Prateek Sharma; Course Instructor
  2. Prof. Manish Jain; Course Instructor
  3. Sanat Gogoi; TA