Introduction

Welcome to the tutorial on solving the Helmholtz problem using the Advection-Diffusion-Reaction
(ADR) Solver in the *Nektar++* framework. This tutorial is aimed to show the main features of
the ADR solver in a simple manner. If you have not already downloaded and installed
*Nektar++*, please do so by visiting http://www.nektar.info, where you can also find the
User-Guide with the instructions to install the library.

This tutorial requires:

*Nektar++*ADRSolver and pre- and post-processing tools,- the open-source mesh generator Gmsh,
- the visualisation tool Paraview or VisIt

After the completion of this tutorial, you will be familiar with:

- the generation of a simple mesh in Gmsh and its conversion into a
*Nektar++*-compatible format; - the visualisation of the mesh in Paraview or VisIt
- the setup of the initial and boundary conditions, the parameters and the solver settings;
- running a simulation with the ADR solver; and
- the post-processing of the data for a convergence plot and the visualisation of the results in Paraview or VisIt.

- Installed and tested
*Nektar++*v5.3.0from a binary package, or compiled it from source. By default binary packages will install all executables in`/usr/bin`

. If you compile from source they will be in the sub-directory`dist/bin`

of the`build`

directory you created in the*Nektar++*source tree. We will refer to the directory containing the executables as`$NEK`

for the remainder of the tutorial. - Downloaded the tutorial files: basics-helmholtz.tar.gz

Unpack it using`tar -xzvf basics-helmholtz.tar.gz`

to produce a directory`basics-helmholtz`

with subdirectories called`tutorial`

and`complete`

.We will refer to the

`tutorial`

directory as`$NEKTUTORIAL`

.The tutorial folder contains:

- a Gmsh file to generate the mesh,
`Helm_mesh.geo`

; - a .msh file containing the mesh in Gmsh format,
`Helm_mesh.msh`

;

- a Gmsh file to generate the mesh,

The ADR solver can solve various problems, including the unsteady advection, unsteady diffusion, unsteady advection diffusion equation, etc. For a more detailed description of this solver, please refer to the User-Guide.

In this tutorial we focus on the Helmholtz equation

| (1.1) |

where u is the independent variable. The Helmholtz equation can be solved in one, two and three spatial dimensions. We will here consider a two-dimensional problem.

The problem we want to solve consists of known boundary conditions and forcing function which depend on x and y. To model this problem we create a computational domain also referred to as mesh or grid (see section 2) on which we apply the following two-dimensional function with Dirichlet and Neumann boundary conditions.

| (1.2) |

where x_{b} and y_{b} represent the boundaries of the computational domain (see section 2.1) and λ
is a positive constant.

We will set the boundary conditions and forcing function for this solver (see section 2.1) then, after running the solver (see section 3) we will post-process the data in order to visualise the results (see section 4).