|
OMDc
2.0.0
created from 2320578 on deploy-documentation
|
interface to internal representation of OMD data More...
#include <DataStore.hpp>
Public Types | |
| typedef Eigen::Block< const Eigen::MatrixXd, Eigen::Dynamic, Eigen::Dynamic, true > | Block |
| short-hand for matrix block expression | |
| typedef Eigen::Block< const Eigen::Ref< const Eigen::MatrixXd >, Eigen::Dynamic, Eigen::Dynamic, true > | RefBlock |
| short-hand for referenced matrix block | |
Public Member Functions | |
| const RefBlock | X () const |
| read-access to left snaps More... | |
| const RefBlock | Y () const |
| read-access to right snaps More... | |
| const Block | LTX () const |
| read-access to projected left snaps More... | |
| const Block | LTY () const |
| read-access to projected right snaps More... | |
| DataStore (const Eigen::Ref< const Eigen::MatrixXd > S, Eigen::Index r) | |
| standard contructor from snapshots More... | |
| void | updateSystemMatrices (const Eigen::Ref< const Eigen::MatrixXd > L) |
| recomputes internal representations for given modes More... | |
| const Eigen::MatrixXd | getSystemMatrix () const |
| system matrix of linear system M = (L'YX'L) inv(L'XX'L) More... | |
| const double | getResidual () const |
| squared Frobenius residual: ||Y|| - ||(L'YX'L) inv(L'XX'L) (L'XY'L)|| More... | |
| const Eigen::MatrixXd & | getProjector () const |
| projector onto orthog. space of X'L More... | |
| const Eigen::MatrixXd & | getYstar () const |
| part of Y'L that is orthogonal to X'L as R from QR More... | |
Public Attributes | |
| const Eigen::Index | m |
| number of snapshots | |
| const Eigen::Index | r |
| rank of reduced space | |
| const Eigen::Index | n |
| number of spatial locations (n > m) | |
Protected Attributes | |
| const Eigen::Ref< const Eigen::MatrixXd > | S |
| reference to snapshots (no data is stored) | |
| Eigen::MatrixXd | LTS |
| product of current mode and snapshots [r x m] | |
| const double | normY |
| Frobenius norm of left matrices. | |
| Eigen::MatrixXd | W |
| projector such that I - Z pinv(Z) = W W' with Z = X'L | |
| Eigen::MatrixXd | XTL_qr_rep |
| QR representation of X'L as [r x r] (upper triangular) | |
| Eigen::MatrixXd | YTL_qr_rep_top |
| QR representation of Y'L as [r x r] (top part) | |
| Eigen::MatrixXd | YTL_qr_rep_bottom |
| QR representation of Y'L as [r x r] (upper triangular) | |
interface to internal representation of OMD data
| OMD::DataStore::DataStore | ( | const Eigen::Ref< const Eigen::MatrixXd > | S, |
| Eigen::Index | r | ||
| ) |
standard contructor from snapshots
The internal data member are initialized to correct dimensions.
| S | snapshots |
| r | dimension of reduced system |
|
inline |
projector onto orthog. space of X'L
The projector is represented by
which is defined as
This projection is applied to
, such that the internal representation renders the result to
where this method gives access to
, see DataStore::updateSystemMatrices() for the definition of the QR decomposition.
| const double OMD::DataStore::getResidual | ( | ) | const |
| const Eigen::MatrixXd OMD::DataStore::getSystemMatrix | ( | ) | const |
system matrix of linear system M = (L'YX'L) inv(L'XX'L)
the system matrix computes
using SVD for the pseudo-inverse. It is internally simplified to
by the QR decomposition explained in DataStore::updateSystemMatrices()
|
inline |
part of Y'L that is orthogonal to X'L as R from QR
|
inline |
read-access to projected left snaps
|
inline |
read-access to projected right snaps
| void OMD::DataStore::updateSystemMatrices | ( | const Eigen::Ref< const Eigen::MatrixXd > | L | ) |
recomputes internal representations for given modes
The internal representation of the data reads
simplifying the computation of OMD::getResidual() and OMD::getSystemMatrix() . The results of the decomposition are stored in protected members.
| L | projection matrix |
|
inline |
read-access to left snaps
|
inline |
read-access to right snaps
{}