hIPPYlib - Inverse Problem PYthon library

CI Doc Status status DOI

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, differentiate, and discretize the PDE forward model and likelihood function

  • Large scale optimization algorithms, such as globalized inexact Newton-CG method, to solve the inverse problem

  • Randomized algorithms for trace estimation, eigenvalues and singular values decomposition.

  • Scalable sampling of Gaussian random fields

  • Linearized Bayesian inversion with low-rank based representation of the posterior covariance

  • Hessian informed MCMC algorithms to explore the posterior distribution

  • Forward propagation of uncertainty capabilities using Monte Carlo and Taylor expansion control variates

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.

Latest Release

Join us!

Dr. Villa is searching for a postdoctoral researcher interested in computational imaging and predictive sciences to join his team at the Oden Institute, The University of Texas at Austin. See here for instructions on how to apply.

Contact

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

Slack channel

The hIPPYlib slack channel is a good resource to request and receive help with using hIPPYlib. Everyone is invited to read and take part in discussions. Discussions about the development of new features in hIPPYlib also take place here. You can join our Slack community by filling in this form.

Please cite as

@article{VillaPetraGhattas21,
    author = {Villa, Umberto and Petra, Noemi and Ghattas, Omar},
    title = "{HIPPYlib: An Extensible Software Framework for Large-Scale Inverse Problems Governed by PDEs: Part I: Deterministic Inversion and Linearized Bayesian Inference}",
    year = {2021},
    issue_date = {March 2021},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    volume = {47},
    number = {2},
    issn = {0098-3500},
    url = {https://doi.org/10.1145/3428447},
    doi = {10.1145/3428447},
    journal = {ACM Trans. Math. Softw.},
    month = apr,
    articleno = {16},
    numpages = {34}
    }

@article{VillaPetraGhattas18,
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}
}

@article{VillaPetraGhattas16,
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}
}