/ComputationalPhysics1

See the following link for the website of the course

Creative Commons Zero v1.0 UniversalCC0-1.0

These notes, pertaining to a course on computational physics at the Univeristy of Oslo, Norway, give an introduction to several of the most used algorithms from numerical analysis to solve problems in the Sciences. These algorithms cover topics such as advanced numerical integration using Gaussian quadrature, Monte Carlo methods with applications to random processes, Markov chains, integration of multidimensional integrals and applications to problems in statistical physics and quantum mechanics. Other methods which are presented are eigenvalue problems, from the simple Jacobi method to iterative Krylov methods. Popular methods from linear algebra such as the LU-decomposition method and spline interpolation are also discussed. A large fraction of the course is also devoted to solving ordinary differential equations with or without boundary conditions and finally methods for solving partial differential equations. The student will thus develop a familiarity with some of the most used algorithms in Science. Several examples of problems in physics and chemistry will be used in order to demonstrate various numerical methods. The examples span over several fields, from materials science to solid state physics, atomic physics, astrophysics, nuclear physics and eigenvalue problems in quantum chemistry. The course is project based and through the various projects, normally five, the participants will be exposed to fundamental research problems in these fields, where the aim of the last project is to reproduce state of the art scientific results. The students will learn to develop and structure codes for studying these systems, develop a critical understanding of the capabilities and limits of the various numerical methods, get acquainted with supercomputing facilities and parallel computing and learn to handle scientific projects. The students will have to choose between C++, Python or Fortran2003 as computing languages.