Changelog
Inverse Problem PYthon library
__ ______ _______ _______ __ __ __ __ __
/ | / |/ \ / \ / \ / |/ |/ |/ |
$$ |____ $$$$$$/ $$$$$$$ |$$$$$$$ |$$ \ /$$/ $$ |$$/ $$ |____
$$ \ $$ | $$ |__$$ |$$ |__$$ | $$ \/$$/ $$ |/ |$$ \
$$$$$$$ | $$ | $$ $$/ $$ $$/ $$ $$/ $$ |$$ |$$$$$$$ |
$$ | $$ | $$ | $$$$$$$/ $$$$$$$/ $$$$/ $$ |$$ |$$ | $$ |
$$ | $$ | _$$ |_ $$ | $$ | $$ | $$ |$$ |$$ |__$$ |
$$ | $$ |/ $$ |$$ | $$ | $$ | $$ |$$ |$$ $$/
$$/ $$/ $$$$$$/ $$/ $$/ $$/ $$/ $$/ $$$$$$$/
https://hippylib.github.io
Development version
Support more advanced one-step time integrators in
TimeDependentPDEVariationalProblemAdd the option to provide the test direction in the finite difference checks of
model_verify
Version 3.2.0, released on Dec 12, 2025
Introduce
SNES_TimeDependentPDEVariationalProblem, andPETScinterfaces:SNES_VariationalProblem,SNES_VariationalSolver, andOptionsManager. Extended functionality ofTimeDependentVector.Introduce
TimeDependentPDEVariationalProblem, andMisfitTDto support time-dependent problems. Extended functionality ofTimeDependentVector.Extend utilities to interpolate cartesian data (expressed as
numpy arrays) on adolfinmesh to support vector function spaceIntroduce a new
DiscreteStateObservationmisfit that takes as input a linear observation operator described byB.Deprecate
PointwiseStateObservationmisfit. User will build the observation matrixB = assemblePointwiseObservation(Vh, targets)and then construct aDiscreteStateObservationmisfit by passingBAn additional keyword argument named
componentsis introduced in the functionassemblePointwiseObservationto only observe selected component of a vector or mixed finite element function.Support for spatially varying coefficients in
BiLaplacianPriorExtend collective functionalities
Version 3.1.0, released on Dec 21, 2022
Switch to GitHub Actions for CI
Introduce a new function
BiLaplacianComputeCoefficientsto estimate the PDE coefficient based on a prescribed marginal variance and correlation lengthAllow
BiLaplacianPriorto take spatially varying coefficients as inputAdd support for non-Gaussian noise models
Introduce utilities to interpolate cartesian data (expressed as
numpy arrays) on adolfinmesh.
Version 3.0.0, released on Feb 2, 2020
Support for
FEniCS 2019.1.0Modify
PointwiseObservationso that ordering of observations targets is respected also in parallel. Setting the flagprune_and_sorttoTruerestores previous behavior.Remove unused input
tolfromModel.solveFwd,Model.solveAdj,Model.solveFwdIncremental,Model.solveAdjIncrementaland from related classes.Use
argparseto set parameters in application drivers from command lineUse
dl.XDMFFileto export solutions for visualization in Paraview in all application driversImplement accuracy enhanced SVD algorithm in
randomizedSVD.pyAdd forward UQ capabilities, using Taylor approximations as control variates
Introduce hIPPYlib’s wrappers to
petcs4py.PETSc.KSPAdd reduction operations useful when solving different PDEs concurrently on each process
Increase coverage of unit testing in CI
Version 2.3.0, released on Sept 6, 2019
Reimplement
BiLaplacianPriorandMollifiedBiLaplacianPriorusing a more general frameworkSqrtPrecisionPDE_Prior, which also supports Gaussian vector fields.Update the prior distribution in
model_subsurf.pyandtutorial/3_SubsurfaceBayesian.ipynbto use Robin boundary conditions to alleviate boundary artifacts.Update the data misfit term in
model_ad_diff.pyandtutorial/4_AdvectionDiffusionBayesian.ipynbto use discrete observations in space and time.
Version 2.2.1, released on March 28, 2019
Bug fix missing
mpi_comminTimeDependentVectorBug fix in the initialization of the global variable
parRandom
Version 2.2.0, released on Dec 12, 2018
Add new class
GaussianRealPriorthat implements a finite-dimensional Gaussian priorAdd a
callbackuser-defined function that can be called at the end of each inexact Newton CG iterationAdd a
__version__andversion_infoattribute tohIPPYlibAdd
setup.pyto (optionally) installhIPPYlibviapipAdd deprecation mechanism
Deprecate
TimeDependentVector.copy(other)in favor ofTimeDependentVector.copy()for consistency withdolfin.Vector.copyDeprecate
_BilaplacianR.inner(x,y)for consistency withdolfin.MatrixCI enhancement via build matrix
Version 2.1.1, released on Oct 23, 2018
Update
README.mdandpaperaccording to JOSS reviewers’s commentsAdd contributing guidelines
Fix some typos in notebooks (thanks to Christian Boehm)
Version 2.1.0, released on July 18, 2018
Alleviate boundary artifacts (inflation of marginal variance) in Bilaplacian-like priors using Robin boundary conditions
Allow the user to select different matplotlib colormaps in jupyter notebooks
Buxfix in the acceptance ratio of the gpCN MCMC proposal
Version 2.0.0, released on June 15, 2018
Introduce capabilities for non-Gaussian Bayesian inference using Mark Chain Monte Carlo methods. Kernels: mMALA, pCN, gpCN, IS. Note: API subject to change
Support domain-decomposition parallelization (new parallel random number generator, and new randomized eigensolvers)
The parameter, usually labeled
a, throughout the library, has been renamed tom, formodel parameter. Interface changes:PDEProblem.eval_da–>PDEProblem.evalGradientParameterModel.applyWua–>Model.applyWumModel.applyWau–>Model.applyWmuModel.applyRaa–>Model.applyWmmgda_tolerance–>gdm_tolerancein the parameter list for Newton and QuasiNewton optimizersgn_approx–>gass_newton_approxas parameter in function to compute Hessian/linearization point in classesModel,PDEProblem,Misfit,Qoi,ReducedQoi
Organize
hippylibin subpackagesAdd
sphinxdocumentation (thanks to E. Khattatov and I. Ambartsumyan)
Version 1.6.0, released on May 16, 2018
Bugfix in
PDEVariationalProblem.solveIncrementalfor non self-adjoint modelsAdd new estimator for the trace and diagonal of the prior covariance using randomized eigendecomposition
In all examples and tutorial, use enviromental variable
HIPPYLIB_BASE_DIR(if defined) to addhIPPYlibtoPYTHONPATH
Version 1.5.0, released on Jan 24, 2018
Add support for
FEniCS 2017.2
Version 1.4.0, released on Nov 8, 2017
Add support for
Python 3Enchantments in
PDEVariationalProblem: it now supports multiple Dirichlet condition and vectorial/mixed function spacesBugfix: Set the correct number of global rows, when targets points fall outside the computational domain
More extensive testing with
TravisIntegration
Version 1.3.0, released on June 28, 2017
Improve
hashdistinstallation supportSwitch license to GPL-2
Add support for
FEniCS 2017.1
Version 1.2.0, released on April 24, 2017
Update instruction to build
FEniCS:hashdistanddockerUpdate notebook to nbformat 4
Let
FEniCS 2016.2be the preferred version ofFEniCSAdd
Travisintegration
Version 1.1.0, released on Nov 28, 2016
Add partial support for
FEniCS 2016.1(Applications and Tutorial)Improve performance of the randomized eigensolvers
Version 1.0.2, released on Sep 30, 2016
Use
vector2Functionto safely convertdolfin.Vectortodolfin.FunctionOptimize the
PDEVariationalProblemto exploit the case when the forward problem is linearUpdate notebook
1_FEniCS101.ipynb
Version 1.0.1, released on Aug 25, 2016
Add support in
hippylib.Modelandhippylib.Misfitfor misfit functional with explicit dependence on the parameter
Version 1.0.0, released on Aug 8, 2016
Uploaded to https://hippylib.github.io.
Initial release under GPL-3.