Skip to content
Erik Schnetter edited this page Nov 30, 2018 · 17 revisions

Welcome to the wiki for my 2018 course on Computational Physics.

Computational Physics

This is an introductory course on scientific computing and computational physics. The course consists of several loosely connected modules from different fields of physics. It is aimed at graduate students with little previous training in scientific computing.

Each module will be co-taught by an expert in the respective field and will be three weeks in length. Each module will consist of introducing an exciting physics problem, presenting a suitable modern numerical method, and lab sessions in which the participants solve the problem. Team work is encouraged. The course is based on the programming language Julia.

Modules

  1. Introduction to the Julia language (computational science – Erik Schnetter)
  2. Monte Carlo sampling (astronomy – Dustin Lang)
  3. Partial differential equations (numerical relativity – Luis Lehner)
  4. Exact diagonalization (ground state of spin chains – Guifre Vidal)

Time and date

We meet twice a week at the Perimeter Institute in the Space Room. See the schedule below for exceptions.

Wed: 13:00 - 14:00 Fri: 13:00 - 15:00

Homework and projects

This course is PHYS 776 at the University of Waterloo. Please contact me if you want to take this course for credit, as you will need my permission to enrol.

If you take this course for credit, then you need to attend all four modules, and need to hand in and briefly present a mini-project for each module. Details of the format will be described in the first module of the course, and will include producing an open source package for each project. Teamwork (in small teams) is allowed and encouraged; please contact me in advanced to have me sign off on your team project if applicable.

Schedule:

  1. Introduction to the Julia language (computational science – Erik Schnetter)
  • Sep 12 (Wed): Lecture: Introduction to Julia
  • Sep 14 (Fri): Lab: Installing Julia on your laptop; first steps in Julia
  • Sep 19 (Wed): Lecture: Advanced Julia
  • Sep 21 (Fri): Lab: Workflow management: Julia packages, regression tests, Git, Github, Travis
  • Sep 26 (Wed): Lecture: Introducing some interesting Julia packages
  • Sep 28 (Fri): Lab: Data management, visualization, and plotting with Julia.
  1. Monte Carlo sampling (astronomy – Dustin Lang)
  • Oct 3 (Wed): Lecture: Statistics intro: fitting a model to Gaussian data [notes]
  • Oct 5 (Fri): Lab: Fitting a line [notes] [notebooks: pre-cooked live]
  • Oct 10 (Wed) [no lecture: mid-term study break]
  • Oct 12 (Fri) [room change: Time Room]: Lecture+Lab: Handling outliers with foreground/background models; using Julia's optimizer [notes] [notebook]
  • Oct 17 (Wed): Lecture: Markov Chain Monte Carlo (MCMC)
  • Oct 19 (Fri): Lab: MCMC: (possible content: Discovering Dark Energy & Winning the Nobel Prize)

Useful materials: https://arxiv.org/abs/1008.4686 and https://arxiv.org/abs/1205.4446

  1. Partial differential equations (numerical relativity – Luis Lehner)
  • Oct 24 (Wed). Introd to PDEs & discretization (Hyperbolic case)
  • Oct 26 (Fri). More on hyperbolic eqns, boundary conditions and examples
  • Oct 31 (Wed)
  • Nov 2 (Fri)
  • Nov 7 (Wed). [notes]
  • Nov 9 (Fri)
  1. Exact diagonalization (ground state of spin chains – Guifre Vidal)
Clone this wiki locally