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 https://pressio.github.io/rom-tools-and-workflows-demos for demos and tutorials
License
#
# ************************************************************************
#
# ROM Tools and Workflows
# Copyright 2019 National Technology & Engineering Solutions of Sandia,LLC
# (NTESS)
#
# Under the terms of Contract DE-NA0003525 with NTESS, the
# U.S. Government retains certain rights in this software.
#
# ROM Tools and Workflows is licensed under BSD-3-Clause terms of use:
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Questions? Contact Eric Parish (ejparis@sandia.gov)
#
# ************************************************************************
#
1# 2# ************************************************************************ 3# 4# ROM Tools and Workflows 5# Copyright 2019 National Technology & Engineering Solutions of Sandia,LLC 6# (NTESS) 7# 8# Under the terms of Contract DE-NA0003525 with NTESS, the 9# U.S. Government retains certain rights in this software. 10# 11# ROM Tools and Workflows is licensed under BSD-3-Clause terms of use: 12# 13# Redistribution and use in source and binary forms, with or without 14# modification, are permitted provided that the following conditions 15# are met: 16# 17# 1. Redistributions of source code must retain the above copyright 18# notice, this list of conditions and the following disclaimer. 19# 20# 2. Redistributions in binary form must reproduce the above copyright 21# notice, this list of conditions and the following disclaimer in the 22# documentation and/or other materials provided with the distribution. 23# 24# 3. Neither the name of the copyright holder nor the names of its 25# contributors may be used to endorse or promote products derived 26# from this software without specific prior written permission. 27# 28# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 38# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 39# POSSIBILITY OF SUCH DAMAGE. 40# 41# Questions? Contact Eric Parish (ejparis@sandia.gov) 42# 43# ************************************************************************ 44# 45 46''' 47# Scope, Design and Philosophy 48 49The ROM tools and workflows Python library comprises a set of algorithms for 50constructing and exploiting ROMs. 51The library is designed internally in terms of *abstract base classes* that encapsulate 52all the information needed to run a given algorithm. 53The philosophy is that, for any given application, the user "simply" needs to create 54a class that meets the required API of the abstract base class. 55Once this class is complete, the user gains access to all of our existing algorithms. 56 57# Content 58 59The Python library, called `romtools`, contains abstract interfaces and functions required for, e.g., 60 61- Constructing parameter spaces 62 63- Constructing vector subspaces 64 - Reduced-basis methods 65 - Proper orthogonal decomposition 66 - Algorithms are all compatible with basis scaling, basis splitting for multistate problems, and orthogonalization 67 in different inner products 68 69- Constructing and exploiting ROMs via outer loop workflows 70 71 - ROM construction via reduced-basis greedy (RB-Greedy) 72 - ROM/FOM exploitation via sampling 73 - ROM/FOM exploitation via Dakota-driven sampling 74 75# Demos/tutorials 76 77Please see https://pressio.github.io/rom-tools-and-workflows-demos for demos and tutorials 78 79# License 80```plaintext 81.. include:: ../LICENSE 82``` 83''' 84 85__all__ = ['vector_space', 'workflows', 'hyper_reduction','composite_vector_space'] 86 87__docformat__ = "restructuredtext" # required to generate the license 88 89from romtools.vector_space import * 90from romtools.hyper_reduction import * 91from romtools.workflows import * 92from romtools.composite_vector_space import * 93from romtools.rom import *