A set of Jupyter notebooks that constitute an active-learning or self-directed curriculum for UVM Physics 256: Computational Physics.
The main focus of this course will be to provide an introduction to modern numerical techniques with the goal of either simulating or solving real physical systems. We will study examples from classical mechanics, electricity and magnetism, chaos, quantum mechanics and statistical mechanics with an emphasis on the graphical representation of results. We will use Python as the main programming language with libraries such as Matplotlib, Scipy and Numpy being employed where appropriate. A rough breakdown of topics includes:
- Introduction to the python language
- Errors and uncertainties in computation
- Finite difference methods (dissipation in classical mechanics, chaos, three-body problems and Laplace's equation in electricity and magnetism)
- Quadrature (1d integration and Monte Carlo methods for higher dimensional integrals)
- Interpolation, splines and Fourier Transforms (curve fitting and analysis of experimental or simulation data)
- Random systems (diffusion, percolation and fractals)
- Statistical mechanics (classical many body problem via Monte Carlo and molecular dynamics)
- Linear algebra (quantum mechanics and spin systems)
The creation of these curricular materials was supported in part by the National Science Foundation under Award No. DMR-1553991.