# 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

## 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 Eigenvalue problems
- 2.3 \(H(curl)\) and \(H(div)\) function spaces
- 2.4 Maxwell’s Equations
- 2.5 Mixed formulation for second order equations
- 2.6 Stokes equation
- 2.7 Facet spaces and hybrid methods
- 2.8 Discontinuous Galerkin Methods
- 2.9 Fourth order equations