Course syllabus

Course syllabus

TIF330 / FYM330 Computational continuum physics lp4 VT20 (7.5 hp)

The course is offered by the department of Physics

Contact details

Lecturers and examiners:

  • Arkady Gonoskov, arkady.gonoskov@physics.gu.se, +46702085694, visiting address: Origovägen 6 B, floor 3, room 3046
  • Christophe Demaziere, demaz@chalmers.se, +46317723082

Teaching assistant:

  • Mathias Hoppe, hoppe@chalmers.se, visiting address: Origovägen 6 B, floor 3, room 3035

Course purpose

The aim of the course is to outline modern computational methods to describe the properties and dynamics of continuum systems, such as fluids and gases, electromagnetic fields, and plasmas. The aim is furthermore to exemplify how such methods can be used to calculate the properties of such systems, of importance for a wide range of applications. Furthermore, the course provides a tool box for computational physics applicable to a broad set of problems, of interest both in basic and applied research and development. The course provides practice in using Python, C and elements of C++ for solving problems of computational physics.

Schedule

TimeEdit

Course literature

The main course literature is provided through the course lecture notes.

Further recommended material includes:

Programming practice:

  • Introduction to Numerical Programming, A Practical Guide for Scientists and Engineers Using Python and C/C++, Titus Adrian Beu
  • A Primer on Scientific Programming with Python by Langtangen, Hans Petter
  • The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie
  • C++ Primer by Stanley B. Lippman  (Author), Josée Lajoie  (Author), Barbara E. Moo

Finite difference methods:

  • Computational physics, Richard Fitzpatrick
  • Computational Physics, Mark Newman

Spectral methods:

  • Spectral methods and their applications, Guo Ben-Yu
  • Chebyshev and Fourier Spectral Methods, John P. Boyd

Advanced methods for continuum systems:

  • Computational physics, J. M. Thijssen
  • Plasma Physics via computer simulation, C. K. Birdsall, A. B. Langdon
  • Computational physics, Richard Fitzpatrick

Course design

Basic theory and methods are covered by a series of lectures. The students get training by applying the theory and methods in exercises and homework problems. An important part consists of practical training of carrying out computations using a set of given problems within projects throughout the course. The projects are accounted for in written reports. It is expected that the projects normally are performed in teams of two.

Plan for lectures and exercises:

  • Practice in using Python, C and elements of  C++ as a programming tool.
  • Finite difference and related techniques.
  • Spectral methods.
  • Examples of continuum systems. 

The exercises will include programming practice in Python, C++ and Matlab. The guidance for arranging workflows will be given during the course. The communication with teachers will be arranged via Canvas and e-mails.

Learning objectives and syllabus

Learning objectives:

  • Able to construct discretize equations governing a physical process with respect to the variables involved
  • Explain basic time-integration methods
  • Explain how to implement initial and boundary conditions
  • Explain how to solve stationary problems, such as the Poisson equation
  • Explain how to solve such equations in a reliable manner
  • Explain how to treat multi-physics problems
  • Able to discuss common computational methods and tools in computational continuum systems
  • Use methods such as finite-difference time-domain, finite-element, plane-wave expansion, methods of moments
  • Use methods such as finite-volume, spectral, pseudo-spectral
  • Use methods such as CFL condition, explicit and implicit integration, operator splitting, geometric integration, stability preserving integration schemes
  • Identifying and mitigating numerical artefacts and effects.
  • Identify and explain conservation properties, such as particle number/mass conservation, energy conservation, phase-space incompressibility, positivity preserving schemes, and know how to test schemes for conservation properties
  • Identify and evaluate classical test problems, checking convergence properties, method of manufactured solutions
  • Write technical reports where computational results are presented and explained
  • Communicate results and conclusions in a clear way.

Examination form

The course contains coding assignments, computing-lab assignments, theory assignments contained within projects worked on throughout the course. The examination is through a hand-in report for each set of assignments. The sets of assignments will be issued during the course together with due date for submission. All examination parts will be graded in order to achieve the final grade.

The final grade is determined according to the following table:

percent of points ECTS scale Chalmers scale GU scale
LaTeX: \ge80 A 5 VG
70 - 79 B 4 VG
60 - 69 C 4 G
50 - 59 D 3 G
40 - 49 E 3 G
< 40 F U U

Links to the course page on student portals