MUQ  0.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MUQ Documentation

Welcome to the MUQ (pronounced “muck”) API documentation.


For information on how to build and install MUQ, check out MUQ Installation Guide

Getting started:

MUQ contains several modules for solving Uncertainty Quantification (UQ) related problems. Most of the modules depend on constructing models (either statistical models or process models), so we recommend getting started with MUQ by familiarizing yourself with the Modelling module. With a basic understanding of constructing models, you can start investigating the tools from other modules:

  • Modelling : The modelling module defines classes and methods for constructing both process-based (e.g. physical) and statistical models. Densities, random variables, and forward models can all be defined using the tools in Modelling.
  • Inference : This module contains tools for sampling probability densities with Markov chain Monte Carlo (MCMC), computing maximum aposteriori (MAP) points, and constructiong transport maps.
  • Optimization : In this module, there are tools for solving nonlinear constrained (and unconstrained) optimization problems. There is also some functionality for robust optimization using stochastic approximation (SA) or sample average approximation (SAA). When MUQ is compiled with NLOPT support, the optimization library can call the many algorithms implemented by NLOPT.
  • Approximation : The approximation module contains a suite of tools for function approximation. Examples include polynomial chaos expansion, regression, and localized polynomial approximations.
  • PDE : The PDE module provides an interface to libMesh for defining and solving partial differential equation models.
  • Geostatistics : A smaller module than those above, geostatistics contains tools for working with covariance kernels and constructing Karhunen-Loeve decompositions.
  • Utilities : The utilities module contains general odds an ends needed by the rest of MUQ. Typical tools in the Utilities modules are random number generators, linear solvers, and functions to translate between vector types.

Getting help

MUQ has many features and we know that it can be difficult to find what you are looking for when starting out. We recommend that users start by finding an example that is similar to their problem and adapting the example to suit their needs. If an appropriate example is not available, or you need more information, questions can be posted to MUQ's Q&A site.


Many of the tools in MUQ require manually setting algorithm-specific parameters. MUQ stores these values in the boost::property_tree:ptree container. More details on all of the available parameters can be found on the Ptree-based Parameters page.