Chapter 1

The aim of this tutorial is to introduce the user to the spectral/hp element framework Nektar++ and its use for global stability computations. Information on how to install the libraries, solvers, and utilities on your own computer is available on the webpage

Task: 1.1 Prepare for the tutorial. Make sure that you have:

Task: 1.2 Additionally, you should also install

Optionally, you can install the open-source mesh generator Gmsh (which can be downloaded from here) to generate the meshes for the tutorial examples yourself. However, pre-generated meshes are provided.

In this tutorial, we will cover the stability analysis of a two-dimensional channel flow, through both a splitting scheme (the Velocity Correction Scheme) and the direct inversion algorithm (also referred to as the Coupled Linearised Navier-Stokes solver). We will briefly show the application of the stability tools presented to a three-dimensional channel flow test case.

Linear stability analysis is a technique that allows us to determine the asymptotic stability of a flow. By decomposing the velocity and pressure in the Navier-Stokes equations as a summation of a base flow (U,P) and perturbation (u′,p′), such that u = U + ϵu′, p = P + ϵp′, with ϵ 1, we derive the linearised Navier-Stokes equations,

∂t + U ⋅∇u′ + u′⋅∇U = −∇p′ + -1-
Re2u′ + f′, (1.1)
∇⋅ u′ = 0. (1.2)

We will consider a parallel base flow through a 2-D channel (known as Poiseuille flow) at Reynolds number Re = 7500. The velocity has the following analytic form:

U =  (y + 1)(1− y)ex

The domain is Ω = [−π,π] × [−1,1] and it is composed by 48 quadrilateral elements as shown in figure 1.1. The problem has been made non-dimensional using the centreline velocity and the channel half-height.


Figure 1.1: 48 quadrilaterals mesh

This mesh was created using the software Gmsh and the first step is to convert it into a suitable input format so that it can be processed by the Nektar++ libraries.

The files in the $NEKTUTORIAL directory are as follows:

1.1 Mesh generation

The first step is to generate a mesh that is readable by Nektar++. The files necessary in this section can be found in $NEKTUTORIAL/geometry/. To achieve this task we use Gmsh in conjunction with the Nektar++ pre-processing utility called $NEK/NekMesh. Specifically, we first generate the mesh in figure 1.1 using Gmsh and successively we convert it into a suitable Nektar++ format using $NEK/NekMesh.

Task: 1.3 Convert the Gmsh geometry provided into the XML Nektar++ format and with two periodic boundaries

Examine the Channel.xml and Channel-al.xml files you have just created. Only the mesh and default expansions are defined at present and the only difference between the two files is the ordering of the edges in the section composite ID=3 which has been re-ordered in order to apply periodic boundary conditions correctly.

Warning: There is currently an issue when using the coupled solver and periodic edges which is being investigated. For achieving the correct channel flow stability results when using the Coupled Linearised Navier-Stokes algorithm (see section 3.2), please use the files provided in the folder $NEKTUTORIAL/stability/Coupled.