libROM  v1.0
Data-driven physical simulation library
 All Classes Functions Variables Enumerations
Public Member Functions | Friends | List of all members
CAROM::IncrementalSVDFastUpdate Class Reference

#include <IncrementalSVDFastUpdate.h>

Inheritance diagram for CAROM::IncrementalSVDFastUpdate:
CAROM::IncrementalSVD CAROM::SVD

Public Member Functions

 ~IncrementalSVDFastUpdate ()
 Destructor.
 
- 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, double time, bool add_without_increase=false)
 Sample new state, u_in, at the given 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 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.
 

Friends

class BasisGenerator
 

Additional Inherited Members

- Protected Member Functions inherited from CAROM::IncrementalSVD
virtual bool buildIncrementalSVD (double *u, bool add_without_increase=false)
 Adds the new sampled the state vector, u, to the system. More...
 
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...
 
void reOrthogonalize (Matrix *m)
 Reorthogonalizes m. 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
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.
 
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...
 
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.
 
- Static Protected Attributes inherited from CAROM::IncrementalSVD
static const int COMMUNICATE_U
 MPI message tag.
 

Detailed Description

Class IncrementalSVDFastUpdate implements Brand's fast update incremental SVD algorithm by implementing the pure virtual methods of the IncrementalSVD base class.


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