Methods and workflow of computational physics

This course will teach you the basic methods and workflow of modern computational physics. After the course you should be able to

perform numerical work independently, analyze the results critically, and visualize them in an appropriate manner.

The Language of Choise for the course is Python 3.6+. You should have some basic programming skills in order to attend the course, but the language doesn't matter.

To access course material, register at, and email the lecturer your GitLab username and the corresponding email address. After you've been granted access, you can login using the link at the top of this page.

Course schedule

The course will be taught during periods 3 and 4 in Spring 2018. First lecture is on Monday January 8th 2018. We have no lessons on the exam week and during Easter.

Each week we will have

Check the sign-up page for more details.

Exercises and projects

Each week there will be a graded exercise set handed out on Friday afternoon. You should

  1. return your solutions to GitLab before the next week's Friday at 5 am (more details after logging in at the top of the page) and
  2. attend the exercise session on Friday at 10 am.
If you do not attend the exercise session on Friday, you get zero points for that particular week's exercise even if you had returned your solutions to GitLab. Exceptions such as illness or job interviews may be considered, but contact the lecturer beforehand if possible.

Help with the exercises is provided during Wednesdays' tutorials, but you should have made some progress before showing up at the tutorial session.

There will be two project assignments (larger exercises) during the course. More info will be provided during lectures and behind the login link at the top of this page.

Course content

Core content (grade 1) Complementary knowledge (grade 3) Specialist knowledge (grade 5)
Linux basics Working with remote servers Working with supercomputers, Vim
Visualization Perceptually uniform colormaps Publication-quality figures
Setting up your numerical experiment a.k.a.
"Good Enough Practices in Scientific Computing"
"Best Practices for Scientific Computing" Archiving and publishing your numerical experiments
Numerical calculus Multi-dimensional calculus Advanced methods
Numerical solution of ordinary differential equations Examples in classical mechanics Advanced time-stepping methods
Numerical linear algebra Multi-dimensional linear algebra,
examples in time-independent
quantum mechanics
Calculating matrix functions
Numerical solution of partial differential equations,
finite difference method,
finite element method
Examples in thermodynamics, electrostatics,
and time-dependent quantum mechanics
Advanced time-stepping methods
Correlations and spectral analysis Signal decomposition Behind the noise
Machine learning Neural networks Pitfalls and catastrophic failures