Skip to main content

FLOW-SESE Course: Nek5000 – theory, implementation and optimization 2021

DEADLINE for registration: 20210221 (this Sunday)


In this course, we discuss the theory, numerics and implementation of the various methods in Nek5000. Nek5000 is a spectral-element based solver for CFD, and is available as an open source package. The code has become popular among researchers worldwide, mainly because of its relatively high accuracy per grid point, its parallel efficiency and the wide user community and available packages (e.g. statistics, linear stability, adjoints etc.). The development of the various methods goes back to the mid 80ies, and a number of different approaches is now implemented, both when it comes to the integration of Navier-Stokes, the communication kernels and efficient single-core performance. For SESSI, Nek5000 is one of the two main codes to focus on, and in Sweden about 30 people are actively working with Nek5000. Therefore, we believe that offering an in-depth course on the internal workings of Nek5000, the relevant theory of SEM, implementations and physical models is a relevant contribution to SESE .

Intended learning outcomes:

  • Understand the basic theory of solutions to the Navier-Stokes equations and its implications to the numerical treatment
  • Understand the formulation of the pressure treatment for both PnPn and PnPn-2 methods
  • Spectral-element discretisation and necessary stabilization, time integrators
  • Workflow of Nek5000, and the various iterative solvers (including preconditioners, projections)
  • Imposition of boundary conditions and limitations
  • Implementation of meshing and metrics
  • Understanding of the basic communication kernels (GS lib)

Pre-requisites and target group

Basic knowledge in scientific computing, programming and CFD. Basic interest in fluid mechanics is recommended as most practical examples are related to fluid mechanics.

The course is aimed at researchers for academia (MSc, PhD students, researchers) and industry that use (or intend to use) Nek5000 in their work. The focus is on the underlying theory and implementation, and not on running Nek5000 for specific cases. Of course, support to install and get started with Nek5000 can be provided if necessary.  

Course schedule

The course will start with 4 lectures during week 10 2021. Until the summer (June 2021), depending on the number of participants, about 6 additional meetings will be organised for which the students will work on selected topics together with the tutors, and will present and discuss their work during the meetings. The final outcome of the course is a LaTeX based description of the various parts, which can then be combined into a document of the relevant developer material for Nek5000.

Lectures during week 10:

  • Introduction and scope
  • Spectral methods using Fourier and Chebyshev methods, homework
  • Fortran 77

If necessary, a tutorial/training on how to run Nek5000 can be provided.

Recommended book

Deville, Fischer, Mund, High-Order Methods for Incompressible Fluid Flow, Cambridge University Press, 2002

Link to Nek5000:  


Responsible: Saleh Rezaeiravesh ( ) and Philipp Schlatter (

Involved teachers: Niclas Jansson, Adam Peplinski, Saleh Rezaeiravesh, Jon Vincent, Stefano Markidis, Philipp Schlatter