What is MUQ?

In a nutshell, MUQ is a collection of tools for constructing models and a collection of uncertainty quantification (UQ)–focused algorithms for working on those models. Our goal is to provide an easy and clean way to set up and efficiently solve UQ problems. On the modelling side, we have a suite of tools for:

  • Combining many simple model components into a single sophisticated model.
  • Propagating derivative information through sophisticated models.
  • Solving systems of partial differential equations (via LibMesh)
  • Integrating ordinary differential equations and differential algebraic equations (via Sundials)

Furthermore, on the algorithmic side, we have tools for

  • Performing Markov chain Monte Carlo (MCMC) sampling
  • Constructing polynomial chaos expansions (PCE)
  • Computing Karhunen-Loeve expansions
  • Building optimal transport maps
  • Solving nonlinear constrained optimization problems (both internally and through NLOPT)
  • Solving robust optimization problems
  • Regression (including Gaussian process regression)


Getting the source

The first step is to download and install MUQ. Currently, the best way to get started is by checking our our git repository from this bitbucket site. Go to the folder you where you want to keep the MUQ source code, and use:

git clone https://bitbucket.org/mituq/muq.git

If you want the latest (but possibly unstable) version of MUQ, you can clone our develop branch:

git clone -b develop https://bitbucket.org/mituq/muq.git

Compiling the source

Now that you have the source, you need to compile and install MUQ. In a very basic installation of MUQ, all you need to do is specify an installation prefix. To keep all of the installed MUQ files together, we suggest using something other than /usr/local for the prefix. A typically choice may be ~/MUQ_INSTALL. For this basic installation of MUQ, change into muq/MUQ/build/ and type:

cmake -DCMAKE_INSTALL_PREFIX=/your/install/directory ../

For more information on installing MUQ, see our installation guide. During this command, cmake will generate a make file, which can now be run as usual:

make -j4 install

The -j4 is an option specifying that make can use 4 threads for parallel compilation.

How can I learn how to use MUQ?

  • Look at the examples listed on our examples page.
  • Try out some of our examples by launching a temporary interactive MUQ session. No installation necessary!
  • Check out the doxygen documentation here.
  • Post a question to fellow users in our Q&A site.
Test Status
  • Develop Branch
    OS Compiler
    OSX Clang Test Status
    Ubuntu Clang Test Status
    Ubuntu g++ 4.7 Test Status
    Ubuntu g++ 4.8 Test Status
    Ubuntu g++ 4.9 Test Status
NSF Logo This material is based upon work supported by the National Science Foundation under Grant No. 1550487.

DOE Logo This work was supported by the DOE Office of Science through the QUEST SciDAC Institute.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.