# Tutorial hIPPYlib 2.3.0

These tutorials are the best place to learn about the basic features and the algorithms in `hIPPYlib`

.

For the complete API reference click here.

- FEniCS101 notebook illustrates the use of FEniCS for the solution of a linear boundary value problem.
- Poisson Deterministic notebook illustrates how to compute gradient/Hessian information and solve a non-linear parameter inversion for the Poisson equation in a deterministic setting.
- Subsurface Bayesian notebook illustrates how to solve a non-linear parameter inversion for the Poisson equation in a Bayesian setting
- Advection-Diffusion Bayesian notebook illustrates how to solve a time-dependent linear inverse problem in a Bayesian setting.
- Hessian Spectrum notebook illustrates the spectral property of the Hessian operator for a linear source inversion problem.

Tutorials 3 and 4 contain a line-by-line explanation of the model problems presented in

hIPPYlib: An Extensible Software Framework for Large-Scale Inverse Problems Governed by PDEs; Part I: Deterministic Inversion and Linearized Bayesian Inference.

## Interactive tutorials

`hIPPYlib 2.3.0`

is available as source code or prebuilt docker image.

The interactive ipython notebooks are located in the `tutorial`

folder of the `hIPPYlib`

release.

To run the notebooks follow these instructions.

- Open a FEniCS terminal and type

```
$ cd tutorial
$ jupyter notebook
```

- A new tab will open in your web-brower showing the notebooks.
- Click on the notebook you would like to use.
- To run all the code in the notebook simply click on Cell --> Run All.

For more information on installing ipython and using notebooks see here.

## Additional resources

For additional resources and tutorials please see the teaching material for the
*2018 Gene Golub SIAM Summer School* on *Inverse Problems: Systematic Integration of Data with Models under Uncertainty* available here.