#include <Xpetra_BlockedCrsOperator.hpp>
Public Member Functions | |
| global_size_t | getGlobalNumRows () const |
| Returns the number of global rows. | |
| global_size_t | getGlobalNumCols () const |
| Returns the number of global columns in the matrix. | |
| size_t | getNodeNumRows () const |
| Returns the number of matrix rows owned on the calling node. | |
| global_size_t | getGlobalNumEntries () const |
| Returns the global number of entries in this matrix. | |
| size_t | getNodeNumEntries () const |
| Returns the local number of entries in this matrix. | |
| size_t | getNumEntriesInLocalRow (LocalOrdinal localRow) const |
| Returns the current number of entries on this node in the specified local row. | |
| global_size_t | getGlobalNumDiags () const |
| Returns the number of global diagonal entries, based on global row/column index comparisons. | |
| size_t | getNodeNumDiags () const |
| Returns the number of local diagonal entries, based on global row/column index comparisons. | |
| size_t | getGlobalMaxNumRowEntries () const |
| Returns the maximum number of entries across all rows/columns on all nodes. | |
| size_t | getNodeMaxNumRowEntries () const |
| Returns the maximum number of entries across all rows/columns on this node. | |
| bool | isLocallyIndexed () const |
| If matrix indices of all matrix blocks are in the local range, this function returns true. Otherwise, this function returns false. | |
| bool | isGloballyIndexed () const |
| If matrix indices are in the global range, this function returns true. Otherwise, this function returns false. | |
| bool | isFillComplete () const |
Returns true if fillComplete() has been called and the matrix is in compute mode. | |
| 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. | |
| 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. | |
| 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. | |
| void | getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const |
| Get a copy of the diagonal entries owned by this node, with local row idices. | |
| virtual ScalarTraits< Scalar > ::magnitudeType | getFrobeniusNorm () const |
| Get Frobenius norm of the matrix. | |
Private Types | |
| typedef Xpetra::Map < LocalOrdinal, GlobalOrdinal, Node > | MapClass |
| typedef Xpetra::MapExtractor < Scalar, LocalOrdinal, GlobalOrdinal, Node > | MapExtractorClass |
| typedef Xpetra::CrsMatrix < Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > | CrsMatrixClass |
| typedef Xpetra::Operator < Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > | Operator |
| typedef Xpetra::CrsGraph < LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > | CrsGraph |
| typedef Xpetra::CrsMatrixFactory < Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > | CrsMatrixFactory |
| typedef Xpetra::OperatorView < LocalOrdinal, GlobalOrdinal, Node > | OperatorView |
Private Member Functions | |
| void | CreateDefaultView () |
Private Attributes | |
| Teuchos::RCP< const MapExtractorClass > | domainmaps_ |
| the full domain map together with all partial domain maps | |
| Teuchos::RCP< const MapExtractorClass > | rangemaps_ |
| the full range map together with all partial domain maps | |
| std::vector< Teuchos::RCP < CrsMatrixClass > > | blocks_ |
| row major matrix block storage | |
| Teuchos::RCP< MapClass > | fullrowmap_ |
| full matrix row map | |
| Teuchos::RCP< MapClass > | fullcolmap_ |
| full matrix column map | |
Constructor/Destructor Methods | |
| BlockedCrsOperator (Teuchos::RCP< const MapExtractorClass > &rangeMaps, Teuchos::RCP< const MapExtractorClass > &domainMaps, size_t npr, Xpetra::ProfileType pftype=Xpetra::DynamicProfile) | |
| Constructor. | |
| virtual | ~BlockedCrsOperator () |
| Destructor. | |
Insertion/Removal Methods | |
| void | insertGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
| Insert matrix entries, using global IDs. | |
| void | insertLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals) |
| Insert matrix entries, using local IDs. | |
Transformational Methods | |
| void | fillComplete (const RCP< const MapClass > &domainMap, const RCP< const MapClass > &rangeMap, const RCP< ParameterList > ¶ms=null) |
| Signal that data entry is complete, specifying domain and range maps. | |
| void | fillComplete (const RCP< ParameterList > ¶ms=null) |
| Signal that data entry is complete. | |
Methods implementing Operator | |
Multiplies this matrix by a MultiVector.
Both are required to have constant stride, and they are not permitted to ocupy overlapping space. No runtime checking will be performed in a non-debug build. This method is templated on the scalar type of MultiVector objects, allowing this method to be applied to MultiVector objects of arbitrary type. However, it is recommended that multiply() not be called directly; instead, use the CrsMatrixMultiplyOp, as it will handle the import/exprt operations required to apply a matrix with non-trivial communication needs. If | |
| virtual void | apply (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const |
| Computes the sparse matrix-multivector multiplication. | |
| const RCP< const MapClass > | getDomainMap () const |
Returns the Map associated with the full domain of this operator. This will be null until fillComplete() is called. | |
| const RCP< const MapClass > | getDomainMap (size_t i) const |
Returns the Map associated with the i'th block domain of this operator. This will be null until fillComplete() is called. | |
| const RCP< const MapClass > | getRangeMap () const |
| const RCP< const MapClass > | getRangeMap (size_t i) const |
| const RCP< const MapExtractorClass > | getRangeMapExtractor () |
| Returns map extractor class for range map. | |
| const RCP< const MapExtractorClass > | getDomainMapExtractor () |
| Returns map extractor for domain map. | |
Overridden from Teuchos::Describable | |
| std::string | description () const |
| Return a simple one-line description of this object. | |
| 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. | |
| RCP< const CrsGraph > | getCrsGraph () const |
| Returns the CrsGraph associated with this matrix. | |
Block matrix access | |
| virtual size_t | Rows () const |
| number of row blocks | |
| virtual size_t | Cols () const |
| number of column blocks | |
| Teuchos::RCP< CrsMatrixClass > | getMatrix (size_t r, size_t c) const |
| return block (r,c) | |
| void | setMatrix (size_t r, size_t c, Teuchos::RCP< CrsMatrixClass > &mat) |
| set matrix block | |
| Teuchos::RCP< CrsMatrixClass > | Merge () const |
| merge BlockedCrsOperator blocks in a CrsMatrix | |
helper functions | |
| void | Add (Teuchos::RCP< CrsMatrixClass > &A, const Scalar scalarA, Teuchos::RCP< CrsMatrixClass > &B, const Scalar scalarB) const |
| Add a Xpetra::CrsMatrix to another: B = B*scalarB + A*scalarA. | |
Definition at line 94 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::MapClass [private] |
Definition at line 96 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::MapExtractor<Scalar, LocalOrdinal, GlobalOrdinal, Node> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::MapExtractorClass [private] |
Definition at line 97 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsMatrixClass [private] |
Definition at line 98 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Operator [private] |
Definition at line 99 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::CrsGraph<LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsGraph [private] |
Reimplemented from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 100 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::CrsMatrixFactory<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsMatrixFactory [private] |
Reimplemented from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 104 of file Xpetra_BlockedCrsOperator.hpp.
typedef Xpetra::OperatorView<LocalOrdinal, GlobalOrdinal, Node> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::OperatorView [private] |
Reimplemented from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 105 of file Xpetra_BlockedCrsOperator.hpp.
| Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::BlockedCrsOperator | ( | Teuchos::RCP< const MapExtractorClass > & | rangeMaps, |
| Teuchos::RCP< const MapExtractorClass > & | domainMaps, | ||
| size_t | npr, | ||
| Xpetra::ProfileType | pftype = Xpetra::DynamicProfile |
||
| ) | [inline] |
Constructor.
| rangeMaps | range maps for all blocks |
| domainMaps | domain maps for all blocks |
| npr | extimated number of entries per row in each block(!) |
| pftype | Xpetra profile type |
Definition at line 119 of file Xpetra_BlockedCrsOperator.hpp.
| virtual Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::~BlockedCrsOperator | ( | ) | [inline, virtual] |
Destructor.
Definition at line 146 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::insertGlobalValues | ( | GlobalOrdinal | globalRow, |
| const ArrayView< const GlobalOrdinal > & | cols, | ||
| const ArrayView< const Scalar > & | vals | ||
| ) | [inline, virtual] |
Insert matrix entries, using global IDs.
All index values must be in the global space.
globalRow exists as an ID in the global row map isLocallyIndexed() == false isStorageOptimized() == falseisGloballyIndexed() == trueglobalRow does not belong to the matrix on this node, then it will be communicated to the appropriate node when globalAssemble() is called (which will, at the latest, occur during the next call to fillComplete().) Otherwise, the entries will be inserted in the local matrix. cols, then the new values will be summed with the old values; this may happen at insertion or during the next call to fillComplete(). hasColMap() == true, only (cols[i],vals[i]) where cols[i] belongs to the column map on this node will be inserted into the matrix. Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 166 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::insertLocalValues | ( | LocalOrdinal | localRow, |
| const ArrayView< const LocalOrdinal > & | cols, | ||
| const ArrayView< const Scalar > & | vals | ||
| ) | [inline, virtual] |
Insert matrix entries, using local IDs.
All index values must be in the local space.
localRow exists as an ID in the local row map isGloballyIndexed() == false isStorageOptimized() == falseisLocallyIndexed() == true Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 180 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fillComplete | ( | const RCP< const MapClass > & | domainMap, |
| const RCP< const MapClass > & | rangeMap, | ||
| const RCP< ParameterList > & | params = null |
||
| ) | [inline, virtual] |
Signal that data entry is complete, specifying domain and range maps.
Off-node indices are distributed (via globalAssemble()), indices are sorted, redundant indices are eliminated, and global indices are transformed to local indices.
isFillActive() == true isFillComplete()() == false isFillActive() == false isFillComplete() == true if os == DoOptimizeStorage, then isStorageOptimized() == true Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 201 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fillComplete | ( | const RCP< ParameterList > & | params = null | ) | [inline, virtual] |
Signal that data entry is complete.
Off-node entries are distributed (via globalAssemble()), repeated entries are summed, and global indices are transformed to local indices.
isFillActive() == true isFillComplete()() == false isFillActive() == false isFillComplete() == true if os == DoOptimizeStorage, then isStorageOptimized() == true Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 221 of file Xpetra_BlockedCrsOperator.hpp.
| global_size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumRows | ( | ) | const [inline, virtual] |
Returns the number of global rows.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 278 of file Xpetra_BlockedCrsOperator.hpp.
| global_size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumCols | ( | ) | const [inline, virtual] |
Returns the number of global columns in the matrix.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 291 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumRows | ( | ) | const [inline, virtual] |
Returns the number of matrix rows owned on the calling node.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 302 of file Xpetra_BlockedCrsOperator.hpp.
| global_size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumEntries | ( | ) | const [inline, virtual] |
Returns the global number of entries in this matrix.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 313 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumEntries | ( | ) | const [inline, virtual] |
Returns the local number of entries in this matrix.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 327 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNumEntriesInLocalRow | ( | LocalOrdinal | localRow | ) | const [inline, virtual] |
Returns the current number of entries on this node in the specified local row.
Returns OrdinalTraits<size_t>::invalid() if the specified local row is not valid for this matrix.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 342 of file Xpetra_BlockedCrsOperator.hpp.
| global_size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumDiags | ( | ) | const [inline, virtual] |
Returns the number of global diagonal entries, based on global row/column index comparisons.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 352 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumDiags | ( | ) | const [inline, virtual] |
Returns the number of local diagonal entries, based on global row/column index comparisons.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 362 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalMaxNumRowEntries | ( | ) | const [inline, virtual] |
Returns the maximum number of entries across all rows/columns on all nodes.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 372 of file Xpetra_BlockedCrsOperator.hpp.
| size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeMaxNumRowEntries | ( | ) | const [inline, virtual] |
Returns the maximum number of entries across all rows/columns on this node.
Undefined if isFillActive().
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 382 of file Xpetra_BlockedCrsOperator.hpp.
| bool Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isLocallyIndexed | ( | ) | const [inline, virtual] |
If matrix indices of all matrix blocks are in the local range, this function returns true. Otherwise, this function returns false.
if false, then this does not automatically mean that all blocks are globally indexed. The user has to make sure, that all matrix blocks are indexed in the same way (locally or globally). Otherwise the block matrix is not valid...
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 393 of file Xpetra_BlockedCrsOperator.hpp.
| bool Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isGloballyIndexed | ( | ) | const [inline, virtual] |
If matrix indices are in the global range, this function returns true. Otherwise, this function returns false.
if false, then this does not automatically mean that all blocks are locally indexed. The user has to make sure, that all matrix blocks are indexed in the same way (locally or globally). Otherwise the block matrix is not valid...
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 405 of file Xpetra_BlockedCrsOperator.hpp.
| bool Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isFillComplete | ( | ) | const [inline, virtual] |
Returns true if fillComplete() has been called and the matrix is in compute mode.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 414 of file Xpetra_BlockedCrsOperator.hpp.
| virtual void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalRowCopy | ( | LocalOrdinal | LocalRow, |
| const ArrayView< LocalOrdinal > & | Indices, | ||
| const ArrayView< Scalar > & | Values, | ||
| size_t & | NumEntries | ||
| ) | const [inline, virtual] |
Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calling routine.
| LocalRow | - (In) Local row number for which indices are desired. |
| Indices | - (Out) Local column indices corresponding to values. |
| Values | - (Out) Matrix values. |
| NumIndices | - (Out) Number of indices. |
Note: A std::runtime_error exception is thrown if either Indices or Values is not large enough to hold the data associated with row LocalRow. If LocalRow is not valid for this node, then Indices and Values are unchanged and NumIndices is returned as OrdinalTraits<size_t>::invalid().
isLocallyIndexed()==true or hasColMap() == true Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 435 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalRowView | ( | GlobalOrdinal | GlobalRow, |
| ArrayView< const GlobalOrdinal > & | indices, | ||
| ArrayView< const Scalar > & | values | ||
| ) | const [inline, virtual] |
Extract a const, non-persisting view of global indices in a specified row of the matrix.
| GlobalRow | - (In) Global row number for which indices are desired. |
| Indices | - (Out) Global column indices corresponding to values. |
| Values | - (Out) Row values |
isLocallyIndexed() == false indices.size() == getNumEntriesInGlobalRow(GlobalRow)Note: If GlobalRow does not belong to this node, then indices is set to null.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 455 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalRowView | ( | LocalOrdinal | LocalRow, |
| ArrayView< const LocalOrdinal > & | indices, | ||
| ArrayView< const Scalar > & | values | ||
| ) | const [inline, virtual] |
Extract a const, non-persisting view of local indices in a specified row of the matrix.
| LocalRow | - (In) Local row number for which indices are desired. |
| Indices | - (Out) Global column indices corresponding to values. |
| Values | - (Out) Row values |
isGloballyIndexed() == false indices.size() == getNumEntriesInLocalRow(LocalRow)Note: If LocalRow does not belong to this node, then indices is set to null.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 471 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalDiagCopy | ( | Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & | diag | ) | const [inline, virtual] |
Get a copy of the diagonal entries owned by this node, with local row idices.
Returns a distributed Vector object partitioned according to this matrix's row map, containing the the zero and non-zero diagonals owned by this node.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 480 of file Xpetra_BlockedCrsOperator.hpp.
| virtual ScalarTraits<Scalar>::magnitudeType Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getFrobeniusNorm | ( | ) | const [inline, virtual] |
Get Frobenius norm of the matrix.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 487 of file Xpetra_BlockedCrsOperator.hpp.
| virtual void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::apply | ( | const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & | X, |
| MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & | Y, | ||
| Teuchos::ETransp | mode = Teuchos::NO_TRANS, |
||
| Scalar | alpha = ScalarTraits<Scalar>::one(), |
||
| Scalar | beta = ScalarTraits<Scalar>::zero() |
||
| ) | const [inline, virtual] |
Computes the sparse matrix-multivector multiplication.
Performs
, with one special exceptions:
beta == 0, apply() overwrites Y, so that any values in Y (including NaNs) are ignored. Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 522 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapClass > Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getDomainMap | ( | ) | const [inline, virtual] |
Returns the Map associated with the full domain of this operator. This will be null until fillComplete() is called.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 575 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapClass > Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getDomainMap | ( | size_t | i | ) | const [inline] |
Returns the Map associated with the i'th block domain of this operator. This will be null until fillComplete() is called.
Definition at line 582 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapClass > Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRangeMap | ( | ) | const [inline, virtual] |
Returns the Map associated with the full range of this operator. This will be null until fillComplete() is called.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 589 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapClass > Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRangeMap | ( | size_t | i | ) | const [inline] |
Returns the Map associated with the i'th block range of this operator. This will be null until fillComplete() is called.
Definition at line 596 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapExtractorClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRangeMapExtractor | ( | ) | [inline] |
Returns map extractor class for range map.
Definition at line 602 of file Xpetra_BlockedCrsOperator.hpp.
| const RCP<const MapExtractorClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getDomainMapExtractor | ( | ) | [inline] |
Returns map extractor for domain map.
Definition at line 608 of file Xpetra_BlockedCrsOperator.hpp.
| std::string Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::description | ( | ) | const [inline, virtual] |
Return a simple one-line description of this object.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 619 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::describe | ( | Teuchos::FancyOStream & | out, |
| const Teuchos::EVerbosityLevel | verbLevel = Teuchos::Describable::verbLevel_default |
||
| ) | const [inline, virtual] |
Print the object with some verbosity level to an FancyOStream object.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 626 of file Xpetra_BlockedCrsOperator.hpp.
| RCP<const CrsGraph> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getCrsGraph | ( | ) | const [inline, virtual] |
Returns the CrsGraph associated with this matrix.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.
Definition at line 666 of file Xpetra_BlockedCrsOperator.hpp.
| virtual size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Rows | ( | ) | const [inline, virtual] |
number of row blocks
Definition at line 679 of file Xpetra_BlockedCrsOperator.hpp.
| virtual size_t Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Cols | ( | ) | const [inline, virtual] |
number of column blocks
Definition at line 682 of file Xpetra_BlockedCrsOperator.hpp.
| Teuchos::RCP<CrsMatrixClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getMatrix | ( | size_t | r, |
| size_t | c | ||
| ) | const [inline] |
return block (r,c)
Definition at line 685 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::setMatrix | ( | size_t | r, |
| size_t | c, | ||
| Teuchos::RCP< CrsMatrixClass > & | mat | ||
| ) | [inline] |
set matrix block
Definition at line 688 of file Xpetra_BlockedCrsOperator.hpp.
| Teuchos::RCP<CrsMatrixClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Merge | ( | ) | const [inline] |
merge BlockedCrsOperator blocks in a CrsMatrix
Definition at line 707 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Add | ( | Teuchos::RCP< CrsMatrixClass > & | A, |
| const Scalar | scalarA, | ||
| Teuchos::RCP< CrsMatrixClass > & | B, | ||
| const Scalar | scalarB | ||
| ) | const [inline, private] |
Add a Xpetra::CrsMatrix to another: B = B*scalarB + A*scalarA.
Note, that this routine works only correctly if A only has entries which are empty (zero) in B. We use the insertGlobalValues routine for inserting the new values from A in B. The sumIntoGlobalValues routine is not implemented in Xpetra (and would not extend the graph of B for new entries). Here we need something to catch the exceptions of a future implementation of sumIntoGlobalValues that then adds the remaining new entries with insertGlobal Values.
This routine is private and used only by Merge. Since the blocks in BlockedCrsOperator are seperated, this routine works for merging a BlockedCrsOperator.
Definition at line 737 of file Xpetra_BlockedCrsOperator.hpp.
| void Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CreateDefaultView | ( | ) | [inline, private] |
Definition at line 801 of file Xpetra_BlockedCrsOperator.hpp.
Teuchos::RCP<const MapExtractorClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::domainmaps_ [private] |
the full domain map together with all partial domain maps
Definition at line 815 of file Xpetra_BlockedCrsOperator.hpp.
Teuchos::RCP<const MapExtractorClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::rangemaps_ [private] |
the full range map together with all partial domain maps
Definition at line 818 of file Xpetra_BlockedCrsOperator.hpp.
std::vector<Teuchos::RCP<CrsMatrixClass> > Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::blocks_ [private] |
row major matrix block storage
Definition at line 821 of file Xpetra_BlockedCrsOperator.hpp.
Teuchos::RCP<MapClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fullrowmap_ [private] |
full matrix row map
Definition at line 824 of file Xpetra_BlockedCrsOperator.hpp.
Teuchos::RCP<MapClass> Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fullcolmap_ [private] |
full matrix column map
Definition at line 827 of file Xpetra_BlockedCrsOperator.hpp.
1.7.6.1