#include <RandomizedSVD.h>
Friends | |
| class | BasisGenerator |
Additional Inherited Members | |
Public Member Functions inherited from CAROM::StaticSVD | |
| ~StaticSVD () | |
| virtual bool | takeSample (double *u_in, double time, 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 | getNumBasisTimeIntervals () const |
| Returns the number of time intervals on which different sets of basis vectors are defined. More... | |
| double | getBasisIntervalStartTime (int which_interval) const |
| Returns the start time for the requested time interval. More... | |
| bool | isNewTimeInterval () const |
| Returns true if the next sample will result in a new time interval. More... | |
| void | increaseTimeInterval () |
| Increase the number of time intervals by one. | |
| int | getNumSamples () const |
| Get the number of samples taken. | |
Protected Member Functions inherited from CAROM::StaticSVD | |
| StaticSVD (Options options) | |
| Constructor. More... | |
| bool | thisIntervalBasisCurrent () |
| Checks if the basis vectors for this time interval are up to date. 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 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_this_interval_basis_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 | |
| 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_samples_per_time_interval |
| The maximum number of samples to be collected for a time interval. | |
| const int | d_max_time_intervals |
| The maximum number of time intervals. | |
| 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... | |
| std::vector< double > | d_time_interval_start_times |
| The simulation time at which each time interval starts. | |
| 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 "Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions" by N. Halko, P. G. Martinsson, and J. A. Tropp
1.8.5