Various uncertainty quantification software tools

softwareLogo

As mentioned in the short introduction to uncertainty quantification, there are many mature uncertainty quantification (UQ) software packages already around. They are available in most of the scientific programming languages (MATLAB, Python, R, C++, etc.) and for all standard operating systems (Windows, Linux, and Mac). Thus it generally does not make sense to try and write your own UQ solving routines from scratch! Would you start by writing your own word processing tool when you need to type some text?

In the table below we provide a selection of freely available UQ software tools developed by key players in the field. Note that this is not an exhaustive list[1] and we did not test all of the packages by ourselves (well, except UQLab :slight_smile:).

Even if you plan to develop your own UQ methods, many of the listed software can be a good starting point. Some of these packages are open frameworks (e.g., UQLab, OpenTurns, OpenCossan), where new methods can be added and integrated with the other built-in functionalities of the software.

Name Language Main Features License Cross-platform
Dakota C/C++[2] General purpose: uncertainty propagation, surrogate modeling, sensitivity analysis, model calibration, reliability analysis, risk analysis, external code wrapping LGPL Yes
DiceDesign R Construction of experimental designs GPLv3 Yes
DiceKriging R GP (Kriging) metamodeling GPLv3 Yes
DiceOptim R GP (Kriging)-based optimization GPLv3 Yes
FERUM MATLAB Reliability analysis (FORM, SORM, Subset simulation, etc.), reliability-based design optimization (RBDO), and global sensitivity analysis GPLv3 Yes
mistral R Reliability analysis library (FORM, Importance Sampling, Subset Simulation, etc.) CeCILLv2 Yes
MUQ C++/Python General purpose: surrogate modeling (PCE, GP), constrained optimization, Bayesian inversion) GPLv2 Yes
OpenCossan MATLAB General purpose: uncertainty propagation, surrogate modeling, sensitivity analysis, reliability, robust optimization LGPL Yes
OpenTURNS C++/Python General purpose: uncertainty propagation, surrogate modeling, sensitivity analysis, reliability, optimization LGPL Yes
sensitivity R Sensitivity analysis (Sobol’ indices, FAST, PCC, etc.) with support for multidimensional outputs GPLv2 Yes
SIMLab - GUI-based sensitivity analysis (Sobol’ indices, FAST, Morris, etc.) Freeware No (Windows)
SUMO Toolbox MATLAB Surrogate modeling (GP, SVM, neural networks, etc.) and surrogate-based optimization AGPLv3 Yes
UQLab MATLAB General purpose: uncertainty propagation, surrogate modeling, sensitivity analysis, reliability analysis, Bayesian inversion, robust optimization, external code wrapping 3-Clause BSD Yes
UQpy Python Uncertainty propagation, stochastic processes MIT Yes
UQ Toolkit (UQTk) C++/Python Uncertainty propagation, surrogate modelling, sensitivity analysis, Bayesian inversion, external code wrapping LGPL Yes

Back to the Chair’s Blog index

Notes


  1. A more comprehensive list can be found here. ↩︎

  2. Interfaces are available either with a command-line interface (including Python and MATLAB) and Java-based graphical user interface. ↩︎

5 Likes