libROM  v1.0
Data-driven physical simulation library
Public Member Functions | Friends | List of all members
CAROM::IncrementalSVDBrand Class Reference

#include <IncrementalSVDBrand.h>

Inheritance diagram for CAROM::IncrementalSVDBrand:
CAROM::IncrementalSVD CAROM::SVD

Public Member Functions

 ~IncrementalSVDBrand ()
 Destructor.
 
const MatrixgetSpatialBasis () override
 Returns the basis vectors for the current time interval as a Matrix. More...
 
const MatrixgetTemporalBasis () 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 VectorgetSingularValues ()
 Returns the singular values for the current time interval. More...
 
virtual const MatrixgetSnapshotMatrix ()
 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.
 
Databased_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.
 
Matrixd_basis
 The globalized basis vectors for the current time interval. More...
 
Matrixd_basis_right
 The globalized right basis vectors for the current time interval. More...
 
Matrixd_U
 The matrix U which is large. More...
 
Matrixd_W
 The matrix U which is large. More...
 
Vectord_S
 The vector S which is small. More...
 
Matrixd_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.
 

Detailed Description

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.

Member Function Documentation

◆ getSpatialBasis()

const Matrix * CAROM::IncrementalSVDBrand::getSpatialBasis ( )
overridevirtual

Returns the basis vectors for the current time interval as a Matrix.

Returns
The basis vectors for the current time interval.

Reimplemented from CAROM::IncrementalSVD.

Definition at line 90 of file IncrementalSVDBrand.cpp.

◆ getTemporalBasis()

const Matrix * CAROM::IncrementalSVDBrand::getTemporalBasis ( )
overridevirtual

Returns the temporal basis vectors for the current time interval as a Matrix.

Returns
The temporal basis vectors for the current time interval.

Reimplemented from CAROM::IncrementalSVD.

Definition at line 99 of file IncrementalSVDBrand.cpp.


The documentation for this class was generated from the following files: