libROM
v1.0
Data-driven physical simulation library
|
#include <RandomizedSVD.h>
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 Matrix * | getSpatialBasis () |
Returns the basis vectors for the current time interval as a Matrix. More... | |
virtual const Matrix * | getTemporalBasis () |
Returns the temporal basis vectors for the current time interval as a Matrix. 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. | |
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. | |
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. | |
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.