libROM  v1.0
Data-driven physical simulation library
IncrementalSVDStandard.h
1 
11 // Description: The concrete implementation of the incremental SVD algorithm
12 // that is equivalent to but computationally more expensive than
13 // the "fast update" method.
14 
15 #ifndef included_IncrementalSVDStandard_h
16 #define included_IncrementalSVDStandard_h
17 
18 #include "IncrementalSVD.h"
19 #include "linalg/Options.h"
20 
21 namespace CAROM {
22 
27 {
28 public:
33 
34 private:
35  friend class BasisGenerator;
36 
49  Options options,
50  const std::string& basis_file_name);
51 
56 
61  const IncrementalSVDStandard& other);
62 
67  operator = (
68  const IncrementalSVDStandard& rhs);
69 
79  virtual
80  void
81  buildInitialSVD(
82  double* u);
83 
87  virtual
88  void
89  computeBasis();
90 
101  void
102  addLinearlyDependentSample(
103  const Matrix* A,
104  const Matrix* W,
105  const Matrix* sigma);
106 
120  void
121  addNewSample(
122  const Vector* j,
123  const Matrix* A,
124  const Matrix* W,
125  Matrix* sigma);
126 };
127 
128 }
129 
130 #endif