Software

Besides the traditional avenues for dissemination of research (publications and presentations), the AEOLUS team has been actively sharing the results of its research with the broader scientific community via public software releases as listed below.

OKNewton

OKNewton is a python implementation of a globally convergent modified Newton method for the direct minimization of the Ohta—Kawasaki (OK) Energy. The implementation is based on the finite element discretization in the FEniCS library and the Gaussian random field generation in the hIPPYlib library. The code is capable of generating OK model solutions in the scenario of both the unguided and chemical substrate guided self-assembly of diblock copolymers, with tutorial examples included. The implementation also allows activating iterative solvers within a particular region of the model parameter space.

OKNewton
GOFMM
Geometry Oblivious Fast Multipole method

GOFMM is an algorithm for compressing kernel matrices in arbitrary dimensions. GOFMM can also compress arbitrary symmetric positive definite matrices. GOFMM supports shared and distributed memory parallelism. To our knowledge GOFMM is the only open source software with such capabilities.

GOFMM
hIPPYlib
Inverse Problem PYthon library

hIPPYlib implements state-of-the-art scalable adjoint-based algorithms for PDE-based deterministic and Bayesian inverse problems. It builds on FEniCS for the discretization of the PDE and on PETSc for scalable and efficient linear algebra operations and solvers.

hIPPYlib
KNN-DBSCAN

KNN-DBSCAN is a shared and distributed memory parallel library for linkage-based point clustering in high-dimensions. Unlike the original DBSCAN which uses range search nearest neighbors, KNN-DBSCAN uses approximate k-nearest neighbors and results in better scalability.

KNN-DBSCAN
Operator Inference model reduction
Python implementation of Operator Inference for model reduction

This is a Python implementation of Operator Inference for learning projection-based polynomial reduced-order models of dynamical systems. The procedure is data-driven and non-intrusive, making it a viable candidate for model reduction of "glass-box" systems. The package includes various tutorial examples.

rom-operator-inference-Python3
MUQ
MIT Uncertainty Quantification Library

MUQ (MIT Uncertainty Quantification) is a C++/Python library for uncertainty quantification—in particular, for connecting complex models with UQ tools in a way that exposes model structure to the algorithms. MUQ is designed both for use by application scientists and engineers and as a platform for algorithm developers. It currently includes a wide variety of UQ capabilities: advanced Markov chain Monte Carlo algorithms for inference; approximation methods for computationally intensive likelihoods and forward models; adaptive methods (e.g., sparse polynomial approximations) for uncertainty propagation, global sensitivity analysis, and surrogate construction; and many others. MUQ optimizes UQ workflows through the use of directed acyclic graphs for dependency management. The underlying dependency graph enables structure-exploiting algorithms to cache and share information in a relatively transparent fashion. MUQ also operates seamlessly with packages such as FEniCS, libMesh, SUNDIALS, and NLopt.

MUQ
TransportMaps
MIT TransportMaps library

TransportMaps is a Python (2.7/3.x) package for the construction of deterministic multi-dimensional couplings, induced by transport maps, between distributions. These couplings can be used for robust, fast, and accurate integration with respect to the complex distributions arising in Bayesian statistical models. They can also be used for density estimation and for sequential inference in state space models (e.g., data assimilation). The transport map method allows for an effective control over the accuracy of the inference, the parallel generation of Monte Carlo samples and quadrature rules, and the design of algorithms that make use of low-dimensional structure.

TransportMaps
NR_SMOCU_SGD_GPC

This Python package provides the implementation of efficient Bayesian active learning algorithms for Gaussian Process classifiers (GPC). The acquisition function based on soft mean objective cost of uncertainty (SMOCU) can be estimated efficiently by the 1-d integral of the joint distribution of query label pairs without incrementally retraining GPC, which enables the first stochastic gradient descent (SGD) algorithm to reduce SMOCU for Bayesian query synthesis active learning algorithm.

NR_SMOCU_SGD_GPC
Sync

Sync is a Python package demonstrating the optimal experimental design (OED) framework based on the mean objective cost of uncertainty (MOCU) for complex uncertain systems described by interconnected ordinary differential equations. MOCU-based OED is applied to the design of experiments that can effectively reduce the cost of achieving robust synchronization of an uncertain Kumamoto oscillator model.

Sync
SDE-MOCU

SDE-MOCU hosts a set of Matlab code that demonstrates our implementations of robust linear filtering and experimental design for physical systems governed by stochastic differential equations (SDEs) under model uncertainty. A sequential experimental design framework is built upon SDE-based physical models based on the mean objective cost of uncertainty derived based on the prior scientific knowledge.

SDE-MOCU
Soft_MOCU

This Python package provides the implementation of efficient Bayesian active learning algorithms based on soft mean objective cost of uncertainty (Soft_MOCU). Soft_MOCU provides a strictly concave approximation of the original MOCU-based acquisition function for pool-based active learning, alleviating the myopic behavior of sequential Bayesian active learning for training optimal Bayesian classifiers (OBC).

Soft_MOCU
WMOCU_AL

This Python package provides the implementation of efficient Bayesian active learning algorithms based on weighted mean objective cost of uncertainty (WMOCU). WMOCU is a strictly concave approximation of the original MOCU-based acquisition function for pool-based active learning, alleviating the myopic behavior of sequential Bayesian active learning for training optimal Bayesian classifiers (OBC).

WMOCU_AL
BSDA

BSDA is a set of Python programs for the implementation of a generative optimal Bayesian supervised domain adaptation (BSDA) model that can integrate RNA sequencing (RNA-Seq) data from different domains along with their labels for improving prediction accuracy for subtyping in a given disease population.

BSDA