romtools#
# Scope, Design and Philosophy
The ROM tools and workflows Python library comprises a set of algorithms for constructing and exploiting ROMs. The library is designed internally in terms of abstract base classes that encapsulate all the information needed to run a given algorithm. The philosophy is that, for any given application, the user “simply” needs to create a class that meets the required API of the abstract base class. Once this class is complete, the user gains access to all of our existing algorithms.
# Content
The Python library, called romtools, contains abstract interfaces and functions required for, e.g.,
Constructing parameter spaces
Constructing vector subspaces - Reduced-basis methods - Proper orthogonal decomposition
Algorithms are all compatible with basis scaling, basis splitting for multistate problems, and orthogonalization in different inner products
Constructing and exploiting ROMs via outer loop workflows
ROM construction via reduced-basis greedy (RB-Greedy)
ROM/FOM exploitation via sampling
ROM/FOM exploitation via Dakota-driven sampling
# Demos/tutorials
Please see the Demos section of the documentation for demos and tutorials.
# License
`plaintext
.. include:: ../LICENSE
`
Modules
The hyper-reduction library comprises a set of routines for hyper-reduction. |
|
This module defines the linear algebra functions used throughout the romtools library. |
|
This module defines the API to work with a vector subspace. |
|
The workflows module contains all of our "outerloop" workflows used for ROM construction and ROM exploitation. We currently support: - Greedy sampling for construction of reduced-basis ROMs - Random sampling for model exploitation - Coupling classes to Dakota for - Random sampling. |