All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
Public Member Functions | Protected Attributes | Private Types
Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > Class Template Reference

#include <Xpetra_Operator.hpp>

Inheritance diagram for Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >:
Describable Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >

List of all members.

Public Member Functions

virtual RCP< const CrsGraphgetCrsGraph () const =0
 Returns the CrsGraph associated with this matrix.
void SetFixedBlockSize (LocalOrdinal blksize)
LocalOrdinal GetFixedBlockSize () const

Protected Attributes

Teuchos::Hashtable
< viewLabel_t, RCP
< OperatorView > > 
operatorViewTable_
viewLabel_t defaultViewLabel_
viewLabel_t currentViewLabel_

Private Types

typedef Xpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > 
Map
typedef Xpetra::CrsMatrix
< Scalar, LocalOrdinal,
GlobalOrdinal, Node,
LocalMatOps > 
CrsMatrix
typedef Xpetra::CrsGraph
< LocalOrdinal, GlobalOrdinal,
Node, LocalMatOps > 
CrsGraph
typedef
Xpetra::TpetraCrsMatrix
< Scalar, LocalOrdinal,
GlobalOrdinal, Node,
LocalMatOps > 
TpetraCrsMatrix
typedef
Xpetra::CrsMatrixFactory
< Scalar, LocalOrdinal,
GlobalOrdinal, Node,
LocalMatOps > 
CrsMatrixFactory
typedef Xpetra::OperatorView
< LocalOrdinal, GlobalOrdinal,
Node > 
OperatorView

Constructor/Destructor Methods

 Operator ()
virtual ~Operator ()
 Destructor.

View management methods

void CreateView (viewLabel_t viewLabel, const RCP< const Map > &rowMap, const RCP< const Map > &colMap)
void CreateView (const viewLabel_t viewLabel, const RCP< Operator > &A, bool transposeA=false, const RCP< Operator > &B=Teuchos::null, bool transposeB=false)
void PrintViews (Teuchos::FancyOStream &out) const
 Print all of the views associated with the Operator.
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_tGetDefaultViewLabel () const
const viewLabel_tGetCurrentViewLabel () const

Insertion/Removal Methods

virtual void insertGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0
 Insert matrix entries, using global IDs.
virtual void insertLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0
 Insert matrix entries, using local IDs.

Transformational Methods

virtual void fillComplete (const RCP< const Map > &domainMap, const RCP< const Map > &rangeMap, const RCP< ParameterList > &params=null)=0
 Signal that data entry is complete, specifying domain and range maps.
virtual void fillComplete (const RCP< ParameterList > &params=null)=0
 Signal that data entry is complete.

Methods implementing RowMatrix

virtual const RCP< const Map > & getRowMap () const
 Returns the Map that describes the row distribution in this matrix.
virtual const RCP< const Map > & getRowMap (viewLabel_t viewLabel) const
 Returns the Map that describes the row distribution in this matrix.
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.
virtual const RCP< const Map > & getColMap (viewLabel_t viewLabel) const
 Returns the Map that describes the column distribution in this matrix.
virtual global_size_t getGlobalNumRows () const =0
 Returns the number of global rows in this matrix.
virtual global_size_t getGlobalNumCols () const =0
 Returns the number of global columns in the matrix.
virtual size_t getNodeNumRows () const =0
 Returns the number of matrix rows owned on the calling node.
virtual global_size_t getGlobalNumEntries () const =0
 Returns the global number of entries in this matrix.
virtual size_t getNodeNumEntries () const =0
 Returns the local number of entries in this matrix.
virtual size_t getNumEntriesInLocalRow (LocalOrdinal localRow) const =0
 Returns the current number of entries on this node in the specified local row.
virtual global_size_t getGlobalNumDiags () const =0
 Returns the number of global diagonal entries, based on global row/column index comparisons.
virtual size_t getNodeNumDiags () const =0
 Returns the number of local diagonal entries, based on global row/column index comparisons.
virtual size_t getGlobalMaxNumRowEntries () const =0
 Returns the maximum number of entries across all rows/columns on all nodes.
virtual size_t getNodeMaxNumRowEntries () const =0
 Returns the maximum number of entries across all rows/columns on this node.
virtual bool isLocallyIndexed () const =0
 If matrix indices are in the local range, this function returns true. Otherwise, this function returns false. */.
virtual bool isGloballyIndexed () const =0
 If matrix indices are in the global range, this function returns true. Otherwise, this function returns false. */.
virtual bool isFillComplete () const =0
 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 =0
 Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calling routine.
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.
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.
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.
virtual ScalarTraits< Scalar >
::magnitudeType 
getFrobeniusNorm () const =0
 Get Frobenius norm of the matrix.

Methods implementing Operator

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.

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 =0
 Computes the sparse matrix-multivector multiplication.
virtual const RCP< const
Xpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
getDomainMap () const =0
 Returns the Map associated with the domain of this operator. This will be null until fillComplete() is called.
virtual const RCP< const
Xpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
getRangeMap () const =0

Overridden from Teuchos::Describable

Return a simple one-line description of this object.

Print the object with some verbosity level to an FancyOStream object.

virtual std::string description () const =0
 Return a simple one-line description of this object.
virtual void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const =0
 Print the object with some verbosity level to an FancyOStream object.

Detailed Description

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
class Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >

Definition at line 82 of file Xpetra_Operator.hpp.


Member Typedef Documentation

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Map [private]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsMatrix [private]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::CrsGraph<LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsGraph [private]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::TpetraCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::TpetraCrsMatrix [private]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::CrsMatrixFactory<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsMatrixFactory [private]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
typedef Xpetra::OperatorView<LocalOrdinal, GlobalOrdinal, Node> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::OperatorView [private]

Constructor & Destructor Documentation

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Operator ( ) [inline]

Definition at line 98 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::~Operator ( ) [inline, virtual]

Destructor.

Definition at line 101 of file Xpetra_Operator.hpp.


Member Function Documentation

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CreateView ( viewLabel_t  viewLabel,
const RCP< const Map > &  rowMap,
const RCP< const Map > &  colMap 
) [inline]

Definition at line 107 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CreateView ( const viewLabel_t  viewLabel,
const RCP< Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > > &  A,
bool  transposeA = false,
const RCP< Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps > > &  B = Teuchos::null,
bool  transposeB = false 
) [inline]

Definition at line 113 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::PrintViews ( Teuchos::FancyOStream &  out) const [inline]

Print all of the views associated with the Operator.

Definition at line 142 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::RemoveView ( const viewLabel_t  viewLabel) [inline]

Definition at line 156 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
const viewLabel_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::SwitchToView ( const viewLabel_t  viewLabel) [inline]

Definition at line 162 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
bool Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::IsView ( const viewLabel_t  viewLabel) const [inline]

Definition at line 169 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
const viewLabel_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::SwitchToDefaultView ( ) [inline]

Definition at line 173 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
const viewLabel_t& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::GetDefaultViewLabel ( ) const [inline]

Definition at line 175 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
const viewLabel_t& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::GetCurrentViewLabel ( ) const [inline]

Definition at line 177 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::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::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::insertLocalValues ( LocalOrdinal  localRow,
const ArrayView< const LocalOrdinal > &  cols,
const ArrayView< const Scalar > &  vals 
) [pure virtual]

Insert matrix entries, using local IDs.

All index values must be in the local space.

Precondition:
localRow exists as an ID in the local row map
isGloballyIndexed() == false
isStorageOptimized() == false
Postcondition:
isLocallyIndexed() == true

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fillComplete ( const RCP< const Map > &  domainMap,
const RCP< const Map > &  rangeMap,
const RCP< ParameterList > &  params = null 
) [pure 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.

Precondition:
isFillActive() == true
isFillComplete()() == false
Postcondition:
isFillActive() == false
isFillComplete() == true
if os == DoOptimizeStorage, then isStorageOptimized() == true

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fillComplete ( const RCP< ParameterList > &  params = null) [pure 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.

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::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Map>& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRowMap ( ) const [inline, virtual]

Returns the Map that describes the row distribution in this matrix.

Definition at line 248 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Map>& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRowMap ( viewLabel_t  viewLabel) const [inline, virtual]

Returns the Map that describes the row distribution in this matrix.

Definition at line 251 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Map>& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getColMap ( ) const [inline, virtual]

Returns the Map that describes the column distribution in this matrix. This might be null until fillComplete() is called.

Reimplemented in Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 258 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Map>& Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getColMap ( viewLabel_t  viewLabel) const [inline, virtual]

Returns the Map that describes the column distribution in this matrix.

Reimplemented in Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 261 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual global_size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumRows ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual global_size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumCols ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumRows ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual global_size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumEntries ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumEntries ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNumEntriesInLocalRow ( LocalOrdinal  localRow) const [pure 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.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual global_size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalNumDiags ( ) const [pure virtual]

Returns the number of global diagonal entries, based on global row/column index comparisons.

Undefined if isFillActive().

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeNumDiags ( ) const [pure virtual]

Returns the number of local diagonal entries, based on global row/column index comparisons.

Undefined if isFillActive().

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalMaxNumRowEntries ( ) const [pure virtual]

Returns the maximum number of entries across all rows/columns on all nodes.

Undefined if isFillActive().

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual size_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getNodeMaxNumRowEntries ( ) const [pure virtual]

Returns the maximum number of entries across all rows/columns on this node.

Undefined if isFillActive().

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual bool Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isLocallyIndexed ( ) const [pure virtual]

If matrix indices are in the local range, this function returns true. Otherwise, this function returns false. */.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual bool Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isGloballyIndexed ( ) const [pure virtual]

If matrix indices are in the global range, this function returns true. Otherwise, this function returns false. */.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual bool Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isFillComplete ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalRowCopy ( LocalOrdinal  LocalRow,
const ArrayView< LocalOrdinal > &  Indices,
const ArrayView< Scalar > &  Values,
size_t &  NumEntries 
) const [pure virtual]

Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calling routine.

Parameters:
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().

Precondition:
isLocallyIndexed()==true or hasColMap() == true

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getGlobalRowView ( GlobalOrdinal  GlobalRow,
ArrayView< const GlobalOrdinal > &  indices,
ArrayView< const Scalar > &  values 
) const [pure virtual]

Extract a const, non-persisting view of global indices in a specified row of the matrix.

Parameters:
GlobalRow- (In) Global row number for which indices are desired.
Indices- (Out) Global column indices corresponding to values.
Values- (Out) Row values
Precondition:
isLocallyIndexed() == false
Postcondition:
indices.size() == getNumEntriesInGlobalRow(GlobalRow)

Note: If GlobalRow does not belong to this node, then indices is set to null.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalRowView ( LocalOrdinal  LocalRow,
ArrayView< const LocalOrdinal > &  indices,
ArrayView< const Scalar > &  values 
) const [pure virtual]

Extract a const, non-persisting view of local indices in a specified row of the matrix.

Parameters:
LocalRow- (In) Local row number for which indices are desired.
Indices- (Out) Global column indices corresponding to values.
Values- (Out) Row values
Precondition:
isGloballyIndexed() == false
Postcondition:
indices.size() == getNumEntriesInLocalRow(LocalRow)

Note: If LocalRow does not belong to this node, then indices is set to null.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getLocalDiagCopy ( Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  diag) const [pure 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.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual ScalarTraits<Scalar>::magnitudeType Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getFrobeniusNorm ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< 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 [pure virtual]

Computes the sparse matrix-multivector multiplication.

Performs $Y = \alpha A^{\textrm{mode}} X + \beta Y$, with one special exceptions:

  • if beta == 0, apply() overwrites Y, so that any values in Y (including NaNs) are ignored.

Implemented in Xpetra::BlockedCrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >, and Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getDomainMap ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual const RCP<const Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRangeMap ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual std::string Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::description ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::describe ( Teuchos::FancyOStream &  out,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::Describable::verbLevel_default 
) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
virtual RCP<const CrsGraph> Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getCrsGraph ( ) const [pure virtual]
template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
void Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::SetFixedBlockSize ( LocalOrdinal  blksize) [inline]

Definition at line 443 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
LocalOrdinal Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::GetFixedBlockSize ( ) const [inline]

Definition at line 468 of file Xpetra_Operator.hpp.


Member Data Documentation

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
Teuchos::Hashtable<viewLabel_t, RCP<OperatorView> > Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::operatorViewTable_ [protected]

Definition at line 479 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
viewLabel_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::defaultViewLabel_ [protected]

Definition at line 486 of file Xpetra_Operator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
viewLabel_t Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::currentViewLabel_ [protected]

Definition at line 487 of file Xpetra_Operator.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines