Xpetra
Version of the Day
|
#include <Xpetra_ReorderedBlockedCrsMatrix.hpp>
Public Types | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
Public Types inherited from Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
typedef CrsMatrix::local_matrix_type | local_matrix_type |
Public Types inherited from Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
typedef CrsMatrix::local_matrix_type | local_matrix_type |
Public Types inherited from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
typedef Scalar | scalar_type |
The type of the entries of the input and output multivectors. More... | |
typedef LocalOrdinal | local_ordinal_type |
The local index type. More... | |
typedef GlobalOrdinal | global_ordinal_type |
The global index type. More... | |
typedef Node | node_type |
The Kokkos Node type. More... | |
Private Member Functions | |
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > | mergeSubBlockMaps (Teuchos::RCP< const Xpetra::BlockReorderManager > brm) |
Private Attributes | |
Teuchos::RCP< const Xpetra::BlockReorderManager > | brm_ |
Teuchos::RCP< const Xpetra::BlockedCrsMatrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | fullOp_ |
Constructor/Destructor Methods | |
ReorderedBlockedCrsMatrix (Teuchos::RCP< const MapExtractor > &rangeMaps, Teuchos::RCP< const MapExtractor > &domainMaps, size_t npr, Teuchos::RCP< const Xpetra::BlockReorderManager > brm, Teuchos::RCP< const Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >> bmat) | |
Constructor. More... | |
virtual | ~ReorderedBlockedCrsMatrix () |
Destructor. More... | |
Methods implementing Matrix | |
virtual void | apply (const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode, Scalar alpha, Scalar beta, bool sumInterfaceValues, const RCP< Xpetra::Import< LocalOrdinal, GlobalOrdinal, Node >> ®ionInterfaceImporter, const Teuchos::ArrayRCP< LocalOrdinal > ®ionInterfaceLIDs) const |
sparse matrix-multivector multiplication for the region layout matrices (currently no blocked implementation) More... | |
virtual void | apply (const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const |
Computes the sparse matrix-multivector multiplication. More... | |
Access functions | |
Teuchos::RCP< const Xpetra::BlockReorderManager > | getBlockReorderManager () |
Returns internal BlockReorderManager object. More... | |
Teuchos::RCP< const Xpetra::BlockedCrsMatrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | getBlockedCrsMatrix () |
Returns internal unmodified BlockedCrsMatrix object. More... | |
Overridden from Teuchos::Describable | |
std::string | description () const |
Return a simple one-line description of this object. More... | |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
Print the object with some verbosity level to an FancyOStream object. More... | |
Additional Inherited Members | |
Public Member Functions inherited from Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
global_size_t | getGlobalNumRows () const |
Returns the number of global rows. More... | |
global_size_t | getGlobalNumCols () const |
Returns the number of global columns in the matrix. More... | |
size_t | getLocalNumRows () const |
Returns the number of matrix rows owned on the calling node. More... | |
global_size_t | getGlobalNumEntries () const |
Returns the global number of entries in this matrix. More... | |
size_t | getLocalNumEntries () const |
Returns the local number of entries in this matrix. More... | |
size_t | getNumEntriesInLocalRow (LocalOrdinal localRow) const |
Returns the current number of entries on this node in the specified local row. More... | |
size_t | getNumEntriesInGlobalRow (GlobalOrdinal globalRow) const |
Returns the current number of entries in the specified (locally owned) global row. More... | |
size_t | getGlobalMaxNumRowEntries () const |
Returns the maximum number of entries across all rows/columns on all nodes. More... | |
size_t | getLocalMaxNumRowEntries () const |
Returns the maximum number of entries across all rows/columns on this node. More... | |
bool | isLocallyIndexed () const |
If matrix indices of all matrix blocks are in the local range, this function returns true. Otherwise, this function returns false. More... | |
bool | isGloballyIndexed () const |
If matrix indices are in the global range, this function returns true. Otherwise, this function returns false. More... | |
bool | isFillComplete () const |
Returns true if fillComplete() has been called and the matrix is in compute mode. More... | |
virtual void | getLocalRowCopy (LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const |
Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calling routine. More... | |
void | getGlobalRowView (GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const |
Extract a const, non-persisting view of global indices in a specified row of the matrix. More... | |
void | getLocalRowView (LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const |
Extract a const, non-persisting view of local indices in a specified row of the matrix. More... | |
void | getLocalDiagCopy (Vector &diag) const |
Get a copy of the diagonal entries owned by this node, with local row indices. More... | |
void | leftScale (const Vector &x) |
Left scale matrix using the given vector entries. More... | |
void | rightScale (const Vector &x) |
Right scale matrix using the given vector entries. More... | |
virtual ScalarTraits< Scalar > ::magnitudeType | getFrobeniusNorm () const |
Get Frobenius norm of the matrix. More... | |
virtual bool | haveGlobalConstants () const |
Returns true if globalConstants have been computed; false otherwise. More... | |
virtual void | bgs_apply (const MultiVector &X, MultiVector &Y, size_t row, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const |
Special multiplication routine (for BGS/Jacobi smoother) More... | |
const Teuchos::RCP< const Map > | getMap () const |
Implements DistObject interface. More... | |
void | doImport (const Matrix &source, const Import &importer, CombineMode CM) |
Import. More... | |
void | doExport (const Matrix &dest, const Import &importer, CombineMode CM) |
Export. More... | |
void | doImport (const Matrix &source, const Export &exporter, CombineMode CM) |
Import (using an Exporter). More... | |
void | doExport (const Matrix &dest, const Export &exporter, CombineMode CM) |
Export (using an Importer). More... | |
bool | hasCrsGraph () const |
Supports the getCrsGraph() call. More... | |
RCP< const CrsGraph > | getCrsGraph () const |
Returns the CrsGraph associated with this matrix. More... | |
local_matrix_type | getLocalMatrixDevice () const |
Access the underlying local Kokkos::CrsMatrix object. More... | |
local_matrix_type::HostMirror | getLocalMatrixHost () const |
Access the underlying local Kokkos::CrsMatrix object. More... | |
LocalOrdinal | GetStorageBlockSize () const |
Returns the block size of the storage mechanism. More... | |
void | residual (const MultiVector &X, const MultiVector &B, MultiVector &R) const |
Compute a residual R = B - (*this) * X. More... | |
BlockedCrsMatrix (const Teuchos::RCP< const BlockedMap > &rangeMaps, const Teuchos::RCP< const BlockedMap > &domainMaps, size_t numEntriesPerRow) | |
Constructor. More... | |
BlockedCrsMatrix (Teuchos::RCP< const MapExtractor > &rangeMapExtractor, Teuchos::RCP< const MapExtractor > &domainMapExtractor, size_t numEntriesPerRow) | |
Constructor. More... | |
virtual | ~BlockedCrsMatrix () |
Destructor. More... | |
void | insertGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
Insert matrix entries, using global IDs. More... | |
void | insertLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
Insert matrix entries, using local IDs. More... | |
void | removeEmptyProcessesInPlace (const Teuchos::RCP< const Map > &newMap) |
void | replaceGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
Replace matrix entries, using global IDs. More... | |
void | replaceLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
Replace matrix entries, using local IDs. More... | |
virtual void | setAllToScalar (const Scalar &alpha) |
Set all matrix entries equal to scalar. More... | |
void | scale (const Scalar &alpha) |
Scale the current values of a matrix, this = alpha*this. More... | |
void | resumeFill (const RCP< ParameterList > ¶ms=null) |
void | fillComplete (const RCP< const Map > &domainMap, const RCP< const Map > &rangeMap, const RCP< ParameterList > ¶ms=null) |
Signal that data entry is complete. More... | |
void | fillComplete (const RCP< ParameterList > ¶ms=null) |
Signal that data entry is complete. More... | |
virtual void | apply (const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode, Scalar alpha, Scalar beta, bool sumInterfaceValues, const RCP< Xpetra::Import< LocalOrdinal, GlobalOrdinal, Node > > ®ionInterfaceImporter, const Teuchos::ArrayRCP< LocalOrdinal > ®ionInterfaceLIDs) const |
sparse matrix-multivector multiplication for the region layout matrices (currently no blocked implementation) More... | |
RCP< const Map > | getFullDomainMap () const |
Returns the Map associated with the full domain of this operator. More... | |
RCP< const BlockedMap > | getBlockedDomainMap () const |
Returns the BlockedMap associated with the domain of this operator. More... | |
const RCP< const Map > | getDomainMap () const |
Returns the Map associated with the domain of this operator. More... | |
RCP< const Map > | getDomainMap (size_t i) const |
Returns the Map associated with the i'th block domain of this operator. More... | |
RCP< const Map > | getDomainMap (size_t i, bool bThyraMode) const |
Returns the Map associated with the i'th block domain of this operator. More... | |
RCP< const Map > | getFullRangeMap () const |
Returns the Map associated with the full range of this operator. More... | |
RCP< const BlockedMap > | getBlockedRangeMap () const |
Returns the BlockedMap associated with the range of this operator. More... | |
const RCP< const Map > | getRangeMap () const |
Returns the Map associated with the range of this operator. More... | |
RCP< const Map > | getRangeMap (size_t i) const |
Returns the Map associated with the i'th block range of this operator. More... | |
RCP< const Map > | getRangeMap (size_t i, bool bThyraMode) const |
Returns the Map associated with the i'th block range of this operator. More... | |
RCP< const MapExtractor > | getRangeMapExtractor () const |
Returns map extractor class for range map. More... | |
RCP< const MapExtractor > | getDomainMapExtractor () const |
Returns map extractor for domain map. More... | |
void | setObjectLabel (const std::string &objectLabel) |
virtual bool | isDiagonal () const |
virtual size_t | Rows () const |
number of row blocks More... | |
virtual size_t | Cols () const |
number of column blocks More... | |
Teuchos::RCP< Matrix > | getCrsMatrix () const |
return unwrap 1x1 blocked operators More... | |
Teuchos::RCP< Matrix > | getInnermostCrsMatrix () |
helper routine recursively returns the first inner-most non-null matrix block from a (nested) blocked operator More... | |
Teuchos::RCP< Matrix > | getMatrix (size_t r, size_t c) const |
return block (r,c) More... | |
void | setMatrix (size_t r, size_t c, Teuchos::RCP< Matrix > mat) |
set matrix block More... | |
Teuchos::RCP< Matrix > | Merge () const |
merge BlockedCrsMatrix blocks in a CrsMatrix More... | |
Public Member Functions inherited from Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
void | SetFixedBlockSize (LocalOrdinal blksize, GlobalOrdinal offset=0) |
LocalOrdinal | GetFixedBlockSize () const |
bool | IsFixedBlockSizeSet () const |
Returns true, if SetFixedBlockSize has been called before. More... | |
virtual void | SetMaxEigenvalueEstimate (Scalar const &sigma) |
virtual Scalar | GetMaxEigenvalueEstimate () const |
Matrix () | |
virtual | ~Matrix () |
Destructor. More... | |
void | CreateView (viewLabel_t viewLabel, const RCP< const Map > &rowMap, const RCP< const Map > &colMap) |
void | CreateView (const viewLabel_t viewLabel, const RCP< const Matrix > &A, bool transposeA=false, const RCP< const Matrix > &B=Teuchos::null, bool transposeB=false) |
void | PrintViews (Teuchos::FancyOStream &out) const |
Print all of the views associated with the Matrix. More... | |
void | RemoveView (const viewLabel_t viewLabel) |
const viewLabel_t | SwitchToView (const viewLabel_t viewLabel) |
bool | IsView (const viewLabel_t viewLabel) const |
const viewLabel_t | SwitchToDefaultView () |
const viewLabel_t & | GetDefaultViewLabel () const |
const viewLabel_t & | GetCurrentViewLabel () const |
virtual const RCP< const Map > & | getRowMap () const |
Returns the Map that describes the row distribution in this matrix. More... | |
virtual const RCP< const Map > & | getRowMap (viewLabel_t viewLabel) const |
Returns the Map that describes the row distribution in this matrix. More... | |
virtual const RCP< const Map > & | getColMap () const |
Returns the Map that describes the column distribution in this matrix. This might be null until fillComplete() is called. More... | |
virtual const RCP< const Map > & | getColMap (viewLabel_t viewLabel) const |
Returns the Map that describes the column distribution in this matrix. More... | |
Public Member Functions inherited from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
virtual | ~Operator () |
virtual void | removeEmptyProcessesInPlace (const RCP< const map_type > &) |
virtual bool | hasTransposeApply () const |
Whether this operator supports applying the transpose or conjugate transpose. More... | |
Protected Attributes inherited from Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
Teuchos::Hashtable < viewLabel_t, RCP< MatrixView > > | operatorViewTable_ |
viewLabel_t | defaultViewLabel_ |
viewLabel_t | currentViewLabel_ |
Definition at line 37 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
typedef Scalar Xpetra::ReorderedBlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type |
Definition at line 39 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
typedef LocalOrdinal Xpetra::ReorderedBlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type |
Definition at line 40 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
typedef GlobalOrdinal Xpetra::ReorderedBlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type |
Definition at line 41 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
typedef Node Xpetra::ReorderedBlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type |
Definition at line 42 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inline |
Constructor.
rangeMaps | range maps for all blocks |
domainMaps | domain maps for all blocks |
npr | extimated number of entries per row in each block(!) |
brm | of type BlockReorderManager |
bmat | original full blocked operator (we keep the RCP to make sure all subblocks are available) |
Definition at line 60 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlinevirtual |
Destructor.
Definition at line 73 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlineprivate |
Definition at line 78 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlinevirtual |
sparse matrix-multivector multiplication for the region layout matrices (currently no blocked implementation)
Definition at line 113 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlinevirtual |
Computes the sparse matrix-multivector multiplication.
Performs \(Y = \alpha A^{\textrm{mode}} X + \beta Y\), with one special exceptions:
beta == 0
, apply() overwrites Y
, so that any values in Y
(including NaNs) are ignored. Reimplemented from Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 120 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inline |
Returns internal BlockReorderManager object.
Definition at line 217 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inline |
Returns internal unmodified BlockedCrsMatrix object.
Definition at line 220 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlinevirtual |
Return a simple one-line description of this object.
Reimplemented from Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 228 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
inlinevirtual |
Print the object with some verbosity level to an FancyOStream object.
Reimplemented from Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 231 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
private |
Definition at line 257 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.
|
private |
Definition at line 258 of file Xpetra_ReorderedBlockedCrsMatrix.hpp.