# Interactive NGSolve Tutorial¶

## Getting started¶

• 1.1 Poisson equation

• 1.2 CoefficientFunctions

• 1.3 Dirichlet boundary conditions

• 1.4 Static condensation

• 1.5 Spaces and forms on sub-domains

• 1.6 Error estimation and refinement

• 1.7 Helmholtz equation

• 1.7.1 Perfectly matched layers (PML)

• 1.8 Exploring the mesh topology

• 2.1 Preconditioning

• 2.1.1 Available preconditioners and solvers

• 2.1.2 Programming preconditioners

• 2.1.3 Multigrid preconditioners

• 2.1.4 p-version BDDC preconditioner

• 2.2 Eigenvalue solver

• 2.3 $$H(curl)$$ and $$H(div)$$ finite element spaces

• 2.4 Solving Maxwell equations

• 2.4.1 Maxwell eigenvalue problem

• 2.5 Mixed formulations for second order equations

• 2.6 Stokes equation

• 2.7 Facet-spaces and hybrid methods

• 2.8 (Hybrid) Discontinuous Galerkin methods

• 2.9 Fourth order equations - Kirchhoff plates

• 2.10 Dual basis functions

• 2.11 Matrix-free operator application

• 2.12 Periodic Spaces

• 2.13 Interface resistivity

• 2.14 Global Spaces (plane waves)

## Time-dependent and non-linear problems¶

• 3.1 Time-stepping methods for parabolic equations

• 3.2 Time-dependent Navier-Stokes equation

• 3.3 Non-linear equations

• 3.4 Non-linear minimization problems

• 3.5 Operator applications for DG-methods

• 3.5.1 DG-method for convection (operator application)

• 3.5.2 DG-method for acoustic wave propagation (tuned operator applications)

• 3.6 Scalar HDG on surface

• 3.7 DG/HDG operator splitting methods

• 3.8 DG for hyperbolic conservation laws

## Geometric modeling and mesh generation¶

• 4.1.1 Spline geometries in 2D

• 4.1.2 CSG geometries in 2D

• 4.2 CSG geometries in 3D

• 4.3 Working with meshes

• 4.4.2 Workplanes

## MPI-parallel NGSolve and Accelerator Support¶

### NGSolve with CUDA (NEW)¶

• 5.5.1 Poisson Equation using CUDA

• 5.5.2 Explicit time-stepping for the wave equation

• 5.5.3 Solving non-linear conservation laws

some more MPI tutorials

## Various Topics¶

• 6.1 Plates and Shells

• 6.1.1 Surface meshes

• 6.1.2 Surface PDE examples

• 6.1.3 Reissner–Mindlin plate elements

• 6.1.4 Naghdi/Koiter shells

• 6.2 Contact Problems

• 6.3 Elasto-plasticity

## Shape- and Topology Optimization¶

Peter Gangl and Kevin Sturm

• 7.1 Shape Derivative Levelset
• 7.2 Shape Derivative Laplace

• 7.3 Shape Derivative SemiAuto

• 7.4 Shape Derivative Laplace SemiAuto

• 7.5 Shape Derivative Laplace FullyAuto

• 7.6 Topological Derivative Levelset

• 7.7 Topological Derivative Transmission

## Unfitted Finite Elements¶

1. Lehrenfeld and the ngsxfem authors

These units require the Add-on ngsxfem to be installed. There are further ngsxfem-tutorials here.

• 8.1 Fundamental concepts

• 8.2 Integration on level set domains

• 8.3 Unfitted FEM PDE discretizations

• 8.4 Space-time discretizations on fitted geometry

• 8.5 Space-time discretizations on unfitted geometries

• 8.6 Integration on domains described by multiple level sets

• 8.7 Unfitted FEM for domains described by multiple level sets

• 8.8 Cell and basis aggregation in ngsxfem

• 8.9 Unfitted mixed FEM with $$H(\text{div})$$ elements

## Extending by C++ programming¶

• 9.1 Implementation of Finite Elements

• 9.2 Implement our own system assembling

• 9.3 High Order Finite Elements

## NGSolve and …¶

• 10.1 Coupling with NGSpice

• 10.2 Coupling with TensorFlow

## Appendix¶

[ ]: