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

#include <RandomizedSVD.h>

Inheritance diagram for CAROM::RandomizedSVD:
CAROM::StaticSVD CAROM::SVD

Friends

class BasisGenerator
 

Additional Inherited Members

- Public Member Functions inherited from CAROM::StaticSVD
 ~StaticSVD ()
 
virtual bool takeSample (double *u_in, bool add_without_increase=false)
 Collect the new sample, u_in at the supplied time. More...
 
virtual const MatrixgetSpatialBasis ()
 Returns the basis vectors for the current time interval as a Matrix. More...
 
virtual const MatrixgetTemporalBasis ()
 Returns the temporal basis vectors for the current time interval as a Matrix. 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.
 
- Protected Member Functions inherited from CAROM::StaticSVD
 StaticSVD (Options options)
 Constructor. More...
 
bool isBasisCurrent ()
 Checks if the basis vectors are computed from the current snapshot. More...
 
void get_global_info ()
 Get the system's total row dimension and where my rows sit in the matrix.
 
void delete_samples ()
 Delete the samples from ScaLAPACK.
 
void delete_factorizer ()
 Delete the factorizer from ScaLAPACK.
 
void broadcast_sample (const double *u_in)
 Broadcast the sample to all processors.
 
- 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::StaticSVD
std::unique_ptr< SLPK_Matrix > d_samples
 Current samples of the system.
 
std::unique_ptr< SVDManager > d_factorizer
 Factorization manager object used to compute the SVD.
 
bool d_basis_is_current
 Flag to indicate if the basis vectors for the current time interval are up to date.
 
int d_rank
 The rank of the process this object belongs to.
 
int d_num_procs
 The number of processors being run on.
 
std::vector< int > d_istarts
 The starting row (0-based) of the matrix that each process owns. Stored to avoid an MPI operation to get this operation every time we scatter a sample.
 
std::vector< int > d_dims
 The number of rows that each process owns. Stored to avoid an MPI operation to get this operation every time we scatter a sample.
 
int d_total_dim
 The total dimension of the system (row dimension)
 
int d_nprow
 The number of processor rows in the grid.
 
int d_npcol
 The number of processor columns in the grid.
 
int d_blocksize
 The block size used internally for computing the SVD.
 
int d_max_basis_dimension
 The max number of basis vectors to return.
 
double d_singular_value_tol
 The tolerance for singular values below which to drop vectors.
 
- 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.
 

Detailed Description

Class RandomizedSVD implements the Randomized SVD algorithm introduced in Nathan Halko, Per-Gunnar Martinsson, and Joel A. Tropp. "Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions." SIAM review 53.2 (2011): 217-288.

Definition at line 33 of file RandomizedSVD.h.


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