UM-Bridge documentation

UM-bridge_map

UM-Bridge is a universal interface that makes any numerical model accessible from any programming language or higher-level software, with a main focus on uncertainty quantification (UQ). It accelerates development from method research to applications and from prototype to supercomputer, enabling you to:

  • seamlessly link numerical models to UQ across languages and frameworks,

  • break down complexity of advanced applications into manageable components,

  • share your containerized models with collaborators,

  • benchmark your algorithms on a community-driven benchmark library, and

  • scale your applications from laptop to supercomputer or cloud with minimal effort.

UM-Bridge only assumes that a model returns an output vector for a given input, and possibly offers derivatives and configuration options. That makes UM-Bridge suitable for fields like UQ, optimization or machine learning.

UQ-Model-UM

Try out this Python example! It passes an input to a simple 1D test model running on a remote server and prints the model’s output.

import umbridge

model = umbridge.HTTPModel("http://testmodel.linusseelinger.de", "forward")
print(model([[100.0]]))

Interested? Continue with quickstart or tutorial for a guided tour. See clients for how to interact with a model from any supported language or UQ package, and models for how to add UM-Bridge support to your own model code.

In addition, UM-Bridge comes with a community-driven library of UQ benchmark problems, which you find listed on the left.

We’d like to hear about your application, so join our slack channel!

Supported languages and frameworks

Language

Client (UQ)

Server (model)

C++

MATLAB

Python

R

Julia

Framework

Client (UQ)

Server (model)

CUQIpy

emcee

MUQ

PyApprox

PyMC

QMCPy

Sparse Grids MATLAB Kit

tinyDA

TT Toolbox

UQPy

We are happy to actively support the development of new integrations!

Opinions

Person Image

I love Uncertainty Quantification. But I don’t love fiddling around with complex numerical solver routines. UM-Bridge takes the pain away from doing UQ with complex models.

Dr Mikkel Bue Lykkegaard - Data Science Lead, digiLab

Person Image

OpenGoSim develops and supports Pflotran-OGS, an open-source reservoir simulator aimed at carbon dioxide and hydrogen storage.
We build on UM-Bridge in order to couple the flow simulation to applications from fields like geomechanics and geochemistry, which proved reasonably straightforward due to the elegance of the UM-Bridge implementation. Next, we plan to use UM-Bridge with Pflotran-OGS in order to investigate the long-term effects of geological uncertainty on CO2 storage.

Dave Ponting - Lead Software Developer, OpenGoSim

Person Image

The UQ software that I develop is in Matlab, which is great for prototyping and distribution but a bit troublesome when it comes to working with engineers since most of them develop their simulators in other languages. UM-Bridge takes that problem away so I was more than happy to contribute to the project!

Dr Lorenzo Tamellini - Researcher at CNR-IMATI Pavia

Citation

Please cite: Seelinger et al., (2023). UM-Bridge: Uncertainty quantification and modeling bridge. Journal of Open Source Software, 8(83), 4748, url.

@article{UMBridge, doi = {10.21105/joss.04748}, url = {https://doi.org/10.21105/joss.04748}, year = {2023}, publisher = {The Open Journal}, volume = {8}, number = {83}, pages = {4748}, author = {Linus Seelinger and Vivian Cheng-Seelinger and Andrew Davis and Matthew Parno and Anne Reinarz}, title = {UM-Bridge: Uncertainty quantification and modeling bridge}, journal = {Journal of Open Source Software} }

Resources

This repository hosts stand-alone reference problems for benchmarking of UQ algorithms.

The documentation for the project and for the benchmark problems within is at: Documentation.

The project source code is hosted on GitHub.

Getting started

Propagation Benchmarks

Inference Benchmarks

Models

About