We will use these libraries for the handson interactive learning exercises that complement the morning lectures:

hIPPYlib (Inverse Problems with Python libraries) implements stateoftheart scalable algorithms for PDEbased 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 nonGaussian 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 cloudbased interactive tutorials that mix instruction and theory with editable and runnable code. You can run the codes presented in the handson 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 handon 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.
Lab sessions material
 Illposedness (Monday 06/18):
 Inverse problem prototype: An illustrative example of an illposed inverse problem ( .ipynb )
 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 nonquadratic 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 PDEbased priors that lead to wellposed Bayesian inverse problems in infinite dimesions (.ipynb )
 Poisson Bayesian: This notebook illustrates how to solve a nonlinear 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 ACI1550487, ACI1550547, and ACI1550593.