Daniele Bigoni – Uncertainty Quantification Library

Important : All projects are available on LauchPad. Questions and bugs need to be reported there.

This library is a collection of tools for Uncertainty Quantification. The main features are:

  • Spectral Methods

  • Generalized Polynomial Chaos

  • Sampling (Monte Carlo, Latin Hypercube, Quasi-Monte Carlo)

  • High Dimensional Model Representation

  • Global Sensitivity

  • Tensor Decomposition

The library is written in Python and is composed by 4 building blocks. Depending on the personal need one can install only some them, even if some dependences exist. The installation of the library is straightforward, but I reccomend to always work in a virtual environment – e.g. virtualenv –, with Numpy and Scipy installed (optionally Matplotlib and mpi4py)

Reference - link

Bigoni, D & Engsig-Karup, AP 2015, Uncertainty Quantification with Applications to Engineering Problems. Ph.D. thesis, Technical University of Denmark, Kgs. Lyngby. DTU Compute PHD-2014, no. 359

bibtex/biber

@phdthesis{Bigoni2014PhD,
title = “Uncertainty Quantification with Applications to Engineering Problems”,
publisher = “Technical University of Denmark”,
author = “Daniele Bigoni and Engsig-Karup, {Allan Peter}”,
year = “2015”,
series = “DTU Compute PHD-2014”,
}


PyORTHPOL

Python (and C) porting of the Fortran package “orthpol”, written by W. Gautschi [1].

Installation:

$ pip install orthpol

Source code and tracker : LaunchPad
Licence: GNU LGPL v3
Binary: PyPI

[1] Gautschi, W. (1994). Algorithm 726: ORTHPOL–a package of routines for generating orthogonal polynomials and Gauss-type quadrature rules. ACM Transactions on Mathematical Software (TOMS), 20(1), 21–62. doi:10.1145/174603.174605


SpectralToolbox

Features:

  • Lagrange, Legendre, Hermite, Laguerre polynomials and quadrature rules

  • Construction of orthogonal polynomials with respect to prescribed weight functions

  • Tools for Spectral methods in 1-D

  • Tools for Spectral methods in N-D

  • Sparse Grid Integration

Requirements: Non-standard polynomials are constructed using the package PyORTHPOL.

Installation:

$ pip install SpectralToolbox

Source code and tracker : BitBucket
Licence: GNU LGPL v3
Binary: PyPI
Documentation: PythonHosted


TensorToolbox

Features:

  • Tensor-train decomposition (TT-SVD, TT-rounding)

  • Tensor-train cross (construction from black-box)

  • Tensor-train DMRG (construction from black-box)

  • Tensor-train linear algebra

  • Iterative solvers for linear systems in TT format (Steepest descent, CG and GMRES)

  • Quantics TT format

  • Cached function wrapper for parametric scalar tensor fields.

  • Spectral tensor-train construction

  • Construction of surrogates of scalars and scalar fields under uncertainty

Requirements: the SpectralToolbox is needed for the construction of the surrogates.

Installation:

$ pip install TensorToolbox

Source code and tracker : BitBucket
Licence: GNU LGPL v3
Binary: PyPI
Documentation: PythonHosted


UQToolbox

Features:

  • Sampling methods (Monte Carlo, Latin Hypercube, Quasi Monte Carlo) with MPI support

  • Tools for Generalized Polynomial Chaos

  • Probabilistic Collocation Method

  • Multi-element Probabilistic Collocation Method

  • High Dimensional Model Representation

  • ANOVA

  • Global Sensitivity (Total Sensitivity Indices)

Requirements: some parts of the software require the SpectralToolbox.

Installation:

$ pip install UQToolbox

Source code and tracker : BitBucket
Licence: GNU LGPL v3
Binary: PyPI
Documentation: PythonHosted


mpi_map

This package uses mpi4py and marshal to spawn processes and execute them.

Installation:

$ pip install mpi_map

Source code and tracker : BitBucket
Licence: GNU LGPL v3
Binary: PyPI
Documentation: ReadTheDocs


phantom_scheduler

Phantom scheduler used to administer the job submission to clusters.

This program runs a scheduler and a number of children that keep submitting jobs to a cluster queue.

It is particularly useful when one has many short jobs which cannot be submitted all at once. This permits not to lose the priority in the queue.

With great power comes great responsibility” – Uncle Ben

Installation:

$ pip install phantom_scheduler

Source code and tracker : LaunchPad
Licence: GNU LGPL v3
Binary: PyPI