## PHY 433: Computational Physics

3 credits | Prerequisites: CSC 101

### Course rationale

Most of the governing equations in physics are differential equation. In some cases, mostly where there is enough symmetry, we cam solve the equation analytically. In other cases, no analytical techniques are readily available. Hence, we need numerical techniques to tackle these kinds of problems. This course will introduce the numerical techniques to solve some of the important problems in physics.

### Course content

Introduction to Python: some basics python, number type, array, conditional statements, loop, plotting with python; Numerical Linear Algebra: matrices in physics, basic matrix operation, a system of linear equations, Gaussian elimination, zeros and extrema of multivariable functions, eigenvalue problems, non-linear equations, Newton’s method, secant method, curve fitting, Spline interpolation; Numerical Calculus: numerical differentiation, numerical integration, roots of a function, extrema of a function, classical scattering; Numerical Ordinary Differential Equations: initial value problems, the Euler and Piccard method, predictor-corrector method, Runge-Kutta method; Numerical Partial Differential Equations: partial differential equations in physics, separation of variables, discretization of the equation, finite element method, and matrix method for difference equations, relaxation method, initial value problems; Numerical Classical Mechanics: simple harmonic oscillation, simple harmonic motion with damping, chaos, Kepler’s laws, stability of planetary orbits, precession of the perihelion of Mercury, three-body problem; Numerical Classical Electrodynamics: electric potentials and fields’ equation, potential and fields near electric charges, the magnetic field produced by current, magnetic field of a solenoid; The Monte Carlo method: introduction, Monte Carlo integration, Monte Carlo for the Ising model, Monte Carlo simulation of a monatomic gas, renormalization with Monte Carlo simulation, variational quantum Monte Carlo simulations, Green’s function Monte Carlo simulations, path integral Monte Carlo simulations, quantum lattice model, phase transition; Numerical Quantum Mechanics: time-independent Schrodinger equation, one dimension-shooting, and matching method, matrix approach, variational approach, time-dependent Schrodinger equation in two dimensions; High-performance Computing: the basic concepts, high-performance computer systems, parallelism, and parallel computing, data-parallel computing, distributed computing, and message passing.

### Course objectives

- Familiarize with Python programming.
- Familiarize with numerical methods.
- Use the techniques of numerical methods to compute differentiation and integrations, and differential equations.
- Apply different methods to solve physical problems from Classical Mechanics, Electrodynamics, and Quantum Mechanics.
- Learn the Monte-Carlo technique and apply different problems of interest.

### References

- Computational Physics (2nd edition) by Nicholas J. Giordano, and Hisao Nakanishi
- Computational Physics by Mark Newman
- An Introduction to Computational Physics (2nd edition) by Tao Pang
- Computational Physics (2nd edition) by Jos Thijssen
- Applied Computational Physics by Joseph F. Boudreau, and Eric S. Swanson