# hIPPYlib - Inverse Problem PYthon library

hIPPYlib implements state-of-the-art scalable adjoint-based algorithms for PDE-based deterministic and Bayesian inverse problems. It builds on FEniCS for the discretization of the PDE and on PETSc for scalable and efficient linear algebra operations and solvers.

## Features

• Friendly, compact, near-mathematical FEniCS notation to express the PDE and likelihood in weak form
• Automatic generation of efficient code for the discretization of weak forms using FEniCS
• Symbolic differentiation of weak forms to generate derivatives and adjoint information
• Globalized Inexact Newton-CG method to solve the inverse problem
• Low rank representation of the posterior covariace using randomized algorithms

See also our tutorial and list of related publications. 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.

The complete API reference is available here.

## Contact

Developed by the hIPPYlib team at UT Austin and UC Merced.

Please cite as

@article{VillaPetraGhattas2016,
title = "{hIPPYlib: an Extensible Software Framework for Large-scale Deterministic and Bayesian Inverse Problems}",
author = {Villa, U. and Petra, N. and Ghattas, O.},
year = {2016},
url = {http://hippylib.github.io},
doi = {10.5281/zenodo.596931}
}

@article{VillaPetraGhattas2018,
title = "{hIPPYlib: an Extensible Software Framework for Large-scale Deterministic and Bayesian Inverse Problems}",
author = {Villa, U. and Petra, N. and Ghattas, O.},
journal = {Journal of Open Source Software},
volume = {3},
number = {30},
page = {940},
doi  = {10.21105/joss.00940},
year = {2018}
}