libROM
v1.0
Data-driven physical simulation library
|
#include <IncrementalSVDBrand.h>
Public Member Functions | |
~IncrementalSVDBrand () | |
Destructor. | |
const Matrix * | getSpatialBasis () override |
Returns the basis vectors for the current time interval as a Matrix. More... | |
const Matrix * | getTemporalBasis () override |
Returns the temporal basis vectors for the current time interval as a Matrix. More... | |
Public Member Functions inherited from CAROM::IncrementalSVD | |
IncrementalSVD (Options options, const std::string &basis_file_name) | |
Constructor. More... | |
virtual | ~IncrementalSVD () |
Destructor. | |
virtual bool | takeSample (double *u_in, bool add_without_increase=false) |
Sample new state, u_in, at the given time. More... | |
virtual const Vector * | getSingularValues () |
Returns the singular values for the current time interval. More... | |
virtual const Matrix * | getSnapshotMatrix () |
Returns the snapshot matrix for the current time interval. More... | |
Public Member Functions inherited from CAROM::SVD | |
SVD (Options options) | |
Constructor. More... | |
~SVD () | |
int | getDim () const |
Returns the dimension of the system on this processor. More... | |
int | getNumSamples () const |
Get the number of samples taken. | |
int | getMaxNumSamples () const |
Get the maximum number of samples that can be taken. SVD class will return an error if the number of samples exceeds the maximum. | |
Friends | |
class | BasisGenerator |
Additional Inherited Members | |
Protected Member Functions inherited from CAROM::IncrementalSVD | |
void | constructQ (double *&Q, const Vector *l, double k) |
Construct the matrix Q whose SVD is needed. More... | |
bool | svd (double *A, Matrix *&U, Matrix *&S, Matrix *&V) |
Given a matrix, A, returns 2 of the 3 components of its singular value decomposition. The right singular vectors are not needed and therefore not returned. More... | |
int | numSamples () |
The number of samples stored. More... | |
double | checkOrthogonality (const Matrix *m) |
Computes and returns the orthogonality of m. More... | |
Protected Member Functions inherited from CAROM::SVD | |
bool | isFirstSample () const |
Returns true if the next sample will result in a new time interval. More... | |
Protected Attributes inherited from CAROM::IncrementalSVD | |
double | d_linearity_tol |
Tolerance to determine whether or not a sample is linearly dependent. | |
bool | d_skip_linearly_dependent |
Whether to skip linearly dependent samples. | |
int | d_max_basis_dimension |
The maximum basis dimension. | |
int | d_size |
The total number of processors. | |
int | d_rank |
The rank of the processor owning this object. | |
std::vector< int > | d_proc_dims |
The dimension of the system on each processor. | |
long int | d_total_dim |
The total dimension of the system. | |
bool | d_save_state |
If true the state of the SVD will be written to disk when the object is deleted. If there are multiple time intervals then the state will not be saved as restoring such a state makes no sense. | |
bool | d_update_right_SV |
Whether to update the right singular vectors. | |
Database * | d_state_database |
Pointer to the database that will hold saved state data if the state is to be saved. | |
std::string | d_state_file_name |
The name of file to which state is saved or restored from. | |
Protected Attributes inherited from CAROM::SVD | |
const int | d_dim |
Dimension of the system. | |
int | d_num_samples |
Number of samples stored for the current time interval. | |
int | d_num_rows_of_W |
Number of rows in right singular matrix. | |
const int | d_max_num_samples |
The maximum number of samples. | |
Matrix * | d_basis |
The globalized basis vectors for the current time interval. More... | |
Matrix * | d_basis_right |
The globalized right basis vectors for the current time interval. More... | |
Matrix * | d_U |
The matrix U which is large. More... | |
Matrix * | d_W |
The matrix U which is large. More... | |
Vector * | d_S |
The vector S which is small. More... | |
Matrix * | d_snapshots |
The globalized snapshot vectors for the current time interval. More... | |
bool | d_debug_algorithm |
Flag to indicate if results of algorithm should be printed for debugging purposes. | |
Static Protected Attributes inherited from CAROM::IncrementalSVD | |
static const int | COMMUNICATE_U = 666 |
MPI message tag. | |
Class IncrementalSVDBrand implements Brand's fast update incremental SVD algorithm by implementing the pure virtual methods of the IncrementalSVD base class.
Definition at line 27 of file IncrementalSVDBrand.h.
|
overridevirtual |
Returns the basis vectors for the current time interval as a Matrix.
Reimplemented from CAROM::IncrementalSVD.
Definition at line 90 of file IncrementalSVDBrand.cpp.
|
overridevirtual |
Returns the temporal basis vectors for the current time interval as a Matrix.
Reimplemented from CAROM::IncrementalSVD.
Definition at line 99 of file IncrementalSVDBrand.cpp.