# Interactive NGSolve Tutorial¶

## What are the i-tutorials ?¶

The i-tutorials are interactive tutorials to NGS-Py, the Python front-end to NGSolve. The i-tutorials are Jupyter notebooks which allow you to explore the features of NGS-Py.

The i-tutorials have been setup for the 2017 NGSolve user meeting. The authors of the sections are Jay Gopalakrishnan (Getting Started), Joachim Schöberl (Advanced Topics), Christoph Lehrenfeld (Time-dependent and non-linear problems), Christoph Wintersteiger (Geometric modeling and mesh generation). Big thanks to Matthias Hochsteger for integrating the Netgen-GUI into Jupyter.

Copyright: The i-tutorials are a part of NGSolve and are covered by the LGPL open source license. You may extend and modify them for your use, but you have to refer to the original source.

## Installation¶

To work through the i-tutorials, you first have to install

Netgen/NGSolve, see http://www.ngsolve.org/downloads

Jupyter from http://www.jupyter.org. You can use the pip package manager: "pip3 install jupyter"

download and unpack the i-tutorials from here.

Some of the tutorials require packages from scipy and matplotlib, so it is a good idea to install them as well:

pip3 install scipy

pip3 install matplotlib

### i-tutorials on Youtube¶

We have recorded the tutorial sessions from the 3rd NGSolve Usermeeting in which most of these tutorial files were presented. You can watch the presentations on the NGSolve Youtube channel.

## Starting¶

You start with the interactive tutorial by opening a terminal, go to the main folder containing the i-tutorials, and start

```
jupyter-notebook index.ipynb
```

# 1. Getting started¶

# 2. Advanced Topics¶

- 2.1.1 Preconditioners in NGSolve
- 2.1.2 Building blocks for programming preconditioners
- 2.1.3 Element-wise BDDC Preconditioner
- 2.2 Programming an eigenvalue solver
- 2.3
*H(curl)*and*H(div)*function spaces - 2.4 Maxwell’s Equations
- 2.4.1 Maxwell eigenvalue problem
- 2.5 Mixed formulation for second order equations
- 2.6 Stokes equation
- 2.7 Facet spaces and hybrid methods
- 2.8 Discontinuous Galerkin Methods
- Projected Jumps
- 2.9 Fourth order equations
- 2.10 Dual basis functions
- 2.11 Matrix free operator application

# 3. Time-dependent and non-linear problems¶

- 3.1 Parabolic model problem
- 3.2 Incompressible Navier-Stokes equations
- 3.3 Discontinuous Galerkin Discretizations for linear transport
- 3.3.1 DG for the acoustic wave equation
- 3.4 A Nonlinear conservation law: shallow water equation in 2D
- 3.5 Scalar PDE on surfaces (with HDG)
- 3.6 DG/HDG splitting
- 3.7 Nonlinear problems
- 3.8 Nonlinear minimization problems