We will use these libraries for the hands-on interactive learning exercises that complement the morning lectures:

• hIPPYlib (Inverse Problems with Python libraries) implements state-of-the-art scalable algorithms for PDE-based deterministic and Bayesian inverse problems. It builds on FEniCS (a parallel finite element element library) for the discretization of the PDEs and on PETSc for scalable and efficient linear algebra operations and solvers.

• MUQ (MIT Uncertainty Quantification) provides tools for exact sampling of non-Gaussian posteriors, approximating computationally intensive forward models, implementing integral covariance operators, characterizing predictive uncertainties, and defining the Bayesian models required for these tasks.

Here are a few important logistics:

• We will use cloud-based interactive tutorials that mix instruction and theory with editable and runnable code. You can run the codes presented in the hands-on workshop through your web browser. This will allow anyone to test our software and experiment with inverse problem algorithms quite easily, without running into installation issues or version discrepancies. In the first hand-on session, you will be provided with an ip address, user name and password and will be able to access the codes via ipython notebooks. Please do not exchange the user info.

• If you are not familiar with FEniCS, the fastest way to start learning this tool is to download and read the first chapter of the FEniCS book from here. Note the updated/new FEniCS tutorial version here. For more detailed instructions, please check out the ‘‘Getting started with FEniCS’’ document available here.

• A Docker image with all the lab session material and software (hIPPYlib, MUQ, FEniCS and their dependencies) preinstalled is available here. The username is user1 and password Breckenridge1_g2s3.

• Finally, you can clone the git repository of the lab session material from here.

## Lab sessions material

• Ill-posedness (Monday 06/18):
• Finite element method, calculus of variations, image denoising (Tuesday 06/19):
• Poisson2D: Finite element solution of the Poisson equation in 2D using FEniCS (.ipynb )
• Convergence rates: Convergence rates of the finite element method for the Poisson equation in 2D (.ipynb)
• Unconstrained minimization: This notebook illustrates the minimization of a non-quadratic energy functional using Netwon Method (.ipynb)
• Image denoising: This notebook illustrate the use of Tikhonov and Total Variation regularization to solve an image denoising problem (.ipynb)
• Deterministic Inversion (Thursday 06/21):
• Poisson SD: This notebook illustrates the use of hIPPYlib/fenics for solving a determinisitc inverse problem for the coefficient field of a Poisson equation, using the steepest descent method (.ipynb ). Note that SD is a poor choice of optimization method for this problem; it is provided here in order to compare with Newton’s method in the notebook below
• Poisson INCG: This notebook illustrates the use of hIPPYlib/FEniCS for solving an inverse problem for the coefficient field of a Poisson equation, using the inexact Newton CG method ( .ipynb )
• Spectrum of Hessian operator: This notebook illustrates the spectral properties of the preconditioned Hessian misfit operator (.ipynb)
• Gaussian processes, Bayesian inference for linear inverse problems (Friday 06/22):
• Sampling methods, logistic regression (Monday 06/25):
• Bayesian inference, Markov Chain Monte Carlo (Tuesday 06/26):
• Infinite dimesional Bayesian inference, Laplace Approximation, MCMC (Wednesday 06/27):
• Gaussian priors: This notebook illustrate how to construct PDE-based priors that lead to well-posed Bayesian inverse problems in infinite dimesions (.ipynb )
• Poisson Bayesian: This notebook illustrates how to solve a non-linear parameter inversion for the Poisson equation in a Bayesian setting using hIPPYlib (.ipynb )

This material is based on work partially supported by the National Science Foundation under Grants No ACI-1550487, ACI-1550547, and ACI-1550593.