|
44 | 44 | #
|
45 | 45 |
|
46 | 46 | '''
|
47 |
| -# Scope and Motivation |
| 47 | +# Scope, Design and Philosophy |
48 | 48 |
|
49 | 49 | The ROM tools and workflows Python library comprises a set of algorithms for
|
50 | 50 | constructing and exploiting ROMs.
|
51 |
| -
|
52 |
| -# Design and Philosophy |
53 |
| -
|
54 | 51 | The library is designed internally in terms of *abstract base classes* that encapsulate
|
55 | 52 | all the information needed to run a given algorithm.
|
56 | 53 | The philosophy is that, for any given application, the user "simply" needs to create
|
57 | 54 | a class that meets the required API of the abstract base class.
|
58 | 55 | Once this class is complete, the user gains access to all of our existing algorithms.
|
59 | 56 |
|
60 |
| -# What does this library contain? |
| 57 | +# Content |
61 | 58 |
|
62 | 59 | The Python library, called `romtools`, contains abstract interfaces and functions required for, e.g.,
|
63 | 60 |
|
64 | 61 | - Constructing parameter spaces
|
65 |
| -- Constructing trial spaces |
66 |
| -- Constructing and exploiting ROMs via outer loop workflows |
67 | 62 |
|
68 |
| -## Algorithms |
69 |
| -
|
70 |
| -- Trial space computation: |
| 63 | +- Constructing trial spaces |
71 | 64 | - Reduced-basis methods
|
72 | 65 | - Proper orthogonal decomposition
|
73 | 66 | - Algorithms are all compatible with basis scaling, basis splitting for multistate problems, and orthogonalization
|
74 | 67 | in different inner products
|
75 |
| -- Workflows for ROM construction and ROM exploitation: |
| 68 | +
|
| 69 | +- Constructing and exploiting ROMs via outer loop workflows |
| 70 | +
|
76 | 71 | - ROM construction via reduced-basis greedy (RB-Greedy)
|
77 | 72 | - ROM/FOM exploitation via sampling
|
78 | 73 | - ROM/FOM exploitation via Dakota-driven sampling
|
79 | 74 |
|
80 |
| -
|
81 |
| -## Representative abstract base classes |
82 |
| -
|
83 |
| -- `TrialSpace` |
84 |
| - - This class defines the minimum API requirements for a trial space |
85 |
| -
|
86 |
| - - Constructing a trial space relies on utilities like truncaters, orthogonalizers, etc. Abstract classes, and |
87 |
| - concrete implementations, exist for: |
88 |
| -
|
89 |
| - - orthogonalizers |
90 |
| - - scalers |
91 |
| - - shifters |
92 |
| - - splitters |
93 |
| - - truncaters |
94 |
| -
|
95 |
| -- `ParameterSpace` |
96 |
| - - This class defines the minimum API of a parameter space. These parameter spaces are used in workflows for |
97 |
| - running/building ROMs |
98 |
| -
|
99 |
| -- Abstract couplers for greedy sampling, sampling, and coupling to Dakota. |
100 |
| -
|
101 | 75 | # Demos/HOWTOs
|
102 | 76 |
|
103 | 77 | In this section, we present some demos/examples showing how to use `romtools` in practice.
|
|
110 | 84 | ```
|
111 | 85 | '''
|
112 | 86 |
|
113 |
| -__all__ = ['trial_space', 'trial_space_utils', 'workflows', 'hyper_reduction'] |
| 87 | +__all__ = ['trial_space', 'workflows', 'hyper_reduction'] |
114 | 88 |
|
115 | 89 | __docformat__ = "restructuredtext" # required to generate the license
|
116 | 90 |
|
|
0 commit comments