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 ).
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