Physics 3800: Computational Physics

3800 Computational Physics is a project-based course that trains students to become functional in computational methods by writing and compiling computer code (C/Fortran) in a Unix environment to solve problems from different areas of physics. Students complete one or more projects that introduce students to a particular class of numerical methods. Lectures and tutorials cover the theory that underlies the computational methods and background for code development and the application of the required numerical methods.

LH: 2
PR: Computer Science 1510 (or equivalent), PHYS 2820, Mathematics 2260 (or 3260), Mathematics 3202

Computational Physics is the study of problems in physics using a computer. It is a combination of computer science, physics, applied mathematics and other sciences, used to develop numerical solutions to complex scientific (and engineering) problems. Computational Physics is used extensively by theorists and also by experimentalists. It is used in scientific research to study a diverse range of phenomena, such as the electronic structure of atoms, molecules and solids, protein folding in biophysics, atmospheric and oceanographic sciences, aerodynamic design and testing, material science, and in many other areas. Although the mathematical equations used to model physics problems are typically be well defined, their solutions are not. Analytic techniques can often be used to obtain very approximate, qualitative predictions of the behavior of physical systems but detailed quantitative solutions almost always require a numerical approach. Computational Physics deals with the numerical algorithms that provide the solutions, such as the discretization of a differential equation. Knowledge of Computational Physics will help you to solve problems in practically every area of science and engineering.

Tutorials are a major component of the course. Initially, students are presented with hands-on learning of basic Unix commands and scripting. This component later evolves into help sessions where students get assistance while working on projects. Evaluation is achieved through assignments (which typically have programming components) as well as two major programming projects, with write-ups using Latex. There is no final exam. The course syllabus typically includes ODEs, PDEs, Matrices and Stochastic Methods (e.g., Monte Carlo). Possible textbooks include Computational Physics: An Introduction (F. Vesely, Kluwer 2001) and Introductory Computational Physics, by A. Klein and A. Godunov (Cambridge University Press, 2006) and course material is supplemented by online resources.