libROM
v1.0
Data-driven physical simulation library
lib
linalg
svd
IncrementalSVDFastUpdate.h
1
11
// Description: The concrete implementation of the incremental SVD algorithm
12
// using Matthew Brand's "fast update" method.
13
14
#ifndef included_IncrementalSVDFastUpdate_h
15
#define included_IncrementalSVDFastUpdate_h
16
17
#include "IncrementalSVD.h"
18
#include "linalg/Options.h"
19
20
namespace
CAROM
{
21
27
class
IncrementalSVDFastUpdate
:
public
IncrementalSVD
28
{
29
public
:
33
~IncrementalSVDFastUpdate
();
34
35
private
:
36
friend
class
BasisGenerator
;
37
49
IncrementalSVDFastUpdate
(
50
Options
options,
51
const
std::string& basis_file_name);
52
56
IncrementalSVDFastUpdate
();
57
61
IncrementalSVDFastUpdate
(
62
const
IncrementalSVDFastUpdate
& other);
63
67
IncrementalSVDFastUpdate
&
68
operator = (
69
const
IncrementalSVDFastUpdate
& rhs);
70
80
void
81
buildInitialSVD(
82
double
* u)
override
;
83
87
void
88
computeBasis()
override
;
89
97
void
98
addLinearlyDependentSample(
99
const
Matrix
& A,
100
const
Matrix
& W,
101
const
Matrix
& sigma);
102
111
void
112
addNewSample(
113
const
Vector
& j,
114
const
Matrix
& A,
115
const
Matrix
& W,
116
const
Matrix
& sigma);
117
122
std::unique_ptr<Matrix> d_Up;
123
127
double
d_singular_value_tol;
128
129
};
130
131
}
132
133
#endif
CAROM::BasisGenerator
Definition:
BasisGenerator.h:48
CAROM::IncrementalSVDFastUpdate
Definition:
IncrementalSVDFastUpdate.h:28
CAROM::IncrementalSVDFastUpdate::~IncrementalSVDFastUpdate
~IncrementalSVDFastUpdate()
Destructor.
Definition:
IncrementalSVDFastUpdate.cpp:59
CAROM::IncrementalSVD
Definition:
IncrementalSVD.h:28
CAROM::Matrix
Definition:
Matrix.h:33
CAROM::Options
Definition:
Options.h:27
CAROM::Vector
Definition:
Vector.h:31
CAROM
Definition:
AdaptiveDMD.cpp:20
Generated by
1.9.1