|
virtual const Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > | getMap () const =0 |
| Multiplies this matrix by a MultiVector. More...
|
|
virtual void | doImport (const Matrix &source, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)=0 |
| Import. More...
|
|
virtual void | doExport (const Matrix &dest, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)=0 |
| Export. More...
|
|
virtual void | doImport (const Matrix &source, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)=0 |
| Import (using an Exporter). More...
|
|
virtual void | doExport (const Matrix &dest, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)=0 |
| Export (using an Importer). More...
|
|
virtual RCP< const CrsGraph > | getCrsGraph () const =0 |
| Returns the CrsGraph associated with this matrix. More...
|
|
void | SetFixedBlockSize (LocalOrdinal blksize, GlobalOrdinal offset=0) |
|
LocalOrdinal | GetFixedBlockSize () const |
|
virtual void | SetMaxEigenvalueEstimate (Scalar const &sigma) |
|
virtual Scalar | GetMaxEigenvalueEstimate () const |
|
virtual | ~Operator () |
|
virtual void | removeEmptyProcessesInPlace (const RCP< const Map > &newMap) |
|
virtual Teuchos::RCP< const Map > | getDomainMap () const =0 |
| The Map associated with the domain of this operator, which must be compatible with X.getMap(). More...
|
|
virtual Teuchos::RCP< const Map > | getRangeMap () const =0 |
| The Map associated with the range of this operator, which must be compatible with Y.getMap(). More...
|
|
virtual void | apply (const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const =0 |
| Computes the operator-multivector application. More...
|
|
virtual bool | hasTransposeApply () const |
| Whether this operator supports applying the transpose or conjugate transpose. More...
|
|
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
|
virtual | ~Describable () |
|
DescribableStreamManipulatorState | describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default) |
|
std::ostream & | operator<< (std::ostream &os, const DescribableStreamManipulatorState &d) |
|
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
|
virtual | ~Describable () |
|
| LabeledObject () |
|
virtual | ~LabeledObject () |
|
virtual void | setObjectLabel (const std::string &objectLabel) |
|
virtual std::string | getObjectLabel () const |
|
|
virtual void | insertGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0 |
| Insert matrix entries, using global IDs. More...
|
|
virtual void | insertLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0 |
| Insert matrix entries, using local IDs. More...
|
|
virtual void | replaceGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0 |
| Replace matrix entries, using global IDs. More...
|
|
virtual void | replaceLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0 |
| Replace matrix entries, using local IDs. More...
|
|
virtual void | setAllToScalar (const Scalar &alpha)=0 |
| Set all matrix entries equal to scalar. More...
|
|
virtual void | scale (const Scalar &alpha)=0 |
| Scale the current values of a matrix, this = alpha*this. More...
|
|
|
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...
|
|
virtual global_size_t | getGlobalNumRows () const =0 |
| Returns the number of global rows in this matrix. More...
|
|
virtual global_size_t | getGlobalNumCols () const =0 |
| Returns the number of global columns in the matrix. More...
|
|
virtual size_t | getNodeNumRows () const =0 |
| Returns the number of matrix rows owned on the calling node. More...
|
|
virtual global_size_t | getGlobalNumEntries () const =0 |
| Returns the global number of entries in this matrix. More...
|
|
virtual size_t | getNodeNumEntries () const =0 |
| Returns the local number of entries in this matrix. More...
|
|
virtual size_t | getNumEntriesInLocalRow (LocalOrdinal localRow) const =0 |
| Returns the current number of entries on this node in the specified local row. More...
|
|
virtual global_size_t | getGlobalNumDiags () const =0 |
| Returns the number of global diagonal entries, based on global row/column index comparisons. More...
|
|
virtual size_t | getNodeNumDiags () const =0 |
| Returns the number of local diagonal entries, based on global row/column index comparisons. More...
|
|
virtual size_t | getGlobalMaxNumRowEntries () const =0 |
| Returns the maximum number of entries across all rows/columns on all nodes. More...
|
|
virtual size_t | getNodeMaxNumRowEntries () const =0 |
| Returns the maximum number of entries across all rows/columns on this node. More...
|
|
virtual bool | isLocallyIndexed () const =0 |
| If matrix indices are in the local range, this function returns true. Otherwise, this function returns false. */. More...
|
|
virtual bool | isGloballyIndexed () const =0 |
| If matrix indices are in the global range, this function returns true. Otherwise, this function returns false. */. More...
|
|
virtual bool | isFillComplete () const =0 |
| 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 =0 |
| Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calling routine. More...
|
|
virtual void | getGlobalRowView (GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const =0 |
| Extract a const, non-persisting view of global indices in a specified row of the matrix. More...
|
|
virtual void | getLocalRowView (LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const =0 |
| Extract a const, non-persisting view of local indices in a specified row of the matrix. More...
|
|
virtual void | getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const =0 |
| Get a copy of the diagonal entries owned by this node, with local row idices. More...
|
|
virtual ScalarTraits< Scalar >::magnitudeType | getFrobeniusNorm () const =0 |
| Get Frobenius norm of the matrix. More...
|
|
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
class Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >
Xpetra-specific matrix class.
This class is specific to Xpetra and has no analogue in Epetra or Tpetra. The main motivation for this class is to be able to access matrix data in a manner different than how it is stored. For example, it might be more convenient to treat ("view") a matrix stored in compressed row storage as if it were a block matrix. The Xpetra::Matrix class is intended to manage these "views".
How to create a Matrix from an existing CrsMatrix
RCP<Xpetra::CrsMatrix> crsA;
RCP<Xpetra::Matrix> A =
rcp(
new CrsMatrixWrap(crsA));
Definition at line 51 of file Xpetra_Matrix_fwd.hpp.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::insertGlobalValues |
( |
GlobalOrdinal |
globalRow, |
|
|
const ArrayView< const GlobalOrdinal > & |
cols, |
|
|
const ArrayView< const Scalar > & |
vals |
|
) |
| |
|
pure virtual |
Insert matrix entries, using global IDs.
All index values must be in the global space.
- Precondition
globalRow
exists as an ID in the global row map
-
isLocallyIndexed() == false
-
isStorageOptimized() == false
- Postcondition
isGloballyIndexed() == true
- Note
- If
globalRow
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.
-
If the matrix row already contains values at the indices corresponding to values in
cols
, then the new values will be summed with the old values; this may happen at insertion or during the next call to fillComplete().
-
If
hasColMap() == true
, only (cols[i],vals[i]) where cols[i] belongs to the column map on this node will be inserted into the matrix.
Implemented in Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::insertLocalValues |
( |
LocalOrdinal |
localRow, |
|
|
const ArrayView< const LocalOrdinal > & |
cols, |
|
|
const ArrayView< const Scalar > & |
vals |
|
) |
| |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceGlobalValues |
( |
GlobalOrdinal |
globalRow, |
|
|
const ArrayView< const GlobalOrdinal > & |
cols, |
|
|
const ArrayView< const Scalar > & |
vals |
|
) |
| |
|
pure virtual |
Replace matrix entries, using global IDs.
All index values must be in the global space.
- Precondition
globalRow
is a global row belonging to the matrix on this node.
- Note
- If (globalRow,cols[i]) corresponds to an entry that is duplicated in this matrix row (likely because it was inserted more than once and fillComplete() has not been called in the interim), the behavior of this function is not defined.
Implemented in Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceLocalValues |
( |
LocalOrdinal |
localRow, |
|
|
const ArrayView< const LocalOrdinal > & |
cols, |
|
|
const ArrayView< const Scalar > & |
vals |
|
) |
| |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setAllToScalar |
( |
const Scalar & |
alpha | ) |
|
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scale |
( |
const Scalar & |
alpha | ) |
|
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
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.
- Precondition
isFillActive() == true
-
isFillComplete()() == false
- Postcondition
isFillActive() == false
-
isFillComplete() == true
-
if os == DoOptimizeStorage, then isStorageOptimized() == true
Implemented in Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
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.
- Note
- This method calls fillComplete( getRowMap(), getRowMap(), os ).
- Precondition
isFillActive() == true
-
isFillComplete()() == false
- Postcondition
isFillActive() == false
-
isFillComplete() == true
-
if os == DoOptimizeStorage, then isStorageOptimized() == true
Implemented in Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual const RCP<const Map>& Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getColMap |
( |
| ) |
const |
|
inlinevirtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeNumRows |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeNumEntries |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNumEntriesInLocalRow |
( |
LocalOrdinal |
localRow | ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeNumDiags |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getGlobalMaxNumRowEntries |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeMaxNumRowEntries |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual bool Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::isLocallyIndexed |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual bool Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::isGloballyIndexed |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual bool Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::isFillComplete |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalRowCopy |
( |
LocalOrdinal |
LocalRow, |
|
|
const ArrayView< LocalOrdinal > & |
Indices, |
|
|
const ArrayView< Scalar > & |
Values, |
|
|
size_t & |
NumEntries |
|
) |
| const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getGlobalRowView |
( |
GlobalOrdinal |
GlobalRow, |
|
|
ArrayView< const GlobalOrdinal > & |
indices, |
|
|
ArrayView< const Scalar > & |
values |
|
) |
| const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalRowView |
( |
LocalOrdinal |
LocalRow, |
|
|
ArrayView< const LocalOrdinal > & |
indices, |
|
|
ArrayView< const Scalar > & |
values |
|
) |
| const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalDiagCopy |
( |
Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & |
diag | ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual ScalarTraits<Scalar>::magnitudeType Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getFrobeniusNorm |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
Multiplies this matrix by a MultiVector.
X
is required to be post-imported, i.e., described by the column map of the matrix. Y
is required to be pre-exported, i.e., described by the row map of the matrix.
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 beta
is equal to zero, the operation will enjoy overwrite semantics (Y
will be overwritten with the result of the multiplication). Otherwise, the result of the multiplication will be accumulated into Y.Implements
DistObject interface Access function for the Tpetra::Map this DistObject was constructed with.
Implemented in Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doImport |
( |
const Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > & |
source, |
|
|
const Export< LocalOrdinal, GlobalOrdinal, Node > & |
exporter, |
|
|
CombineMode |
CM |
|
) |
| |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doExport |
( |
const Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > & |
dest, |
|
|
const Export< LocalOrdinal, GlobalOrdinal, Node > & |
exporter, |
|
|
CombineMode |
CM |
|
) |
| |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
virtual std::string Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::description |
( |
| ) |
const |
|
pure virtual |
template<class Scalar = Operator<>::scalar_type, class LocalOrdinal = Operator<>::local_ordinal_type, class GlobalOrdinal = typename Operator<LocalOrdinal>::global_ordinal_type, class Node = typename Operator<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SetFixedBlockSize |
( |
LocalOrdinal |
blksize, |
|
|
GlobalOrdinal |
offset = 0 |
|
) |
| |
|
inline |
Set fixed block size of operator (e.g., 3 for 3 DOFs per node).
- Parameters
-
blksize | block size denoting how many DOFs per node are used (LocalOrdinal) |
offset | global offset allows to define operators with global indices starting from a given value "offset" instead of 0. (GlobalOrdinal, default = 0) |
Definition at line 522 of file Xpetra_Matrix.hpp.