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

Concrete implementation of Xpetra::Operator. More...

#include <Xpetra_CrsOperator.hpp>

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

List of all members.

Public Member Functions

global_size_t getGlobalNumRows () const
 Returns the number of global rows in this matrix.
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 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.
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.
ScalarTraits< Scalar >
::magnitudeType 
getFrobeniusNorm () const
 Get Frobenius norm of the matrix.

Private Types

typedef Xpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > 
Map
typedef Xpetra::CrsMatrix
< Scalar, LocalOrdinal,
GlobalOrdinal, Node,
LocalMatOps > 
CrsMatrix
typedef Xpetra::Operator
< Scalar, LocalOrdinal,
GlobalOrdinal, Node,
LocalMatOps > 
Operator
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

Private Member Functions

void CreateDefaultView ()
void updateDefaultView () const

Private Attributes

bool finalDefaultView_
RCP< CrsMatrixmatrixData_

Constructor/Destructor Methods

 CrsOperator (const RCP< const Map > &rowMap, size_t maxNumEntriesPerRow, Xpetra::ProfileType pftype=Xpetra::DynamicProfile)
 Constructor specifying fixed number of entries for each row.
 CrsOperator (const RCP< const Map > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=Xpetra::DynamicProfile)
 Constructor specifying (possibly different) number of entries in each row.
 CrsOperator (RCP< CrsMatrix > &matrix)
virtual ~CrsOperator ()
 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 Map > &domainMap, const RCP< const Map > &rangeMap, const RCP< Teuchos::ParameterList > &params=null)
 Signal that data entry is complete, specifying domain and range maps.
void fillComplete (const RCP< ParameterList > &params=null)
 Signal that data entry is complete.

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.

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 Xpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > > 
getDomainMap () const
 Returns the Map associated with the domain of this operator. This will be null until fillComplete() is called.
const RCP< const Xpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > > 
getRangeMap () const
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.
const RCP< const Map > & getColMap (viewLabel_t viewLabel) const
 Returns the Map that describes the column distribution in this matrix.

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 CrsGraphgetCrsGraph () const
 Returns the CrsGraph associated with this matrix.
RCP< CrsMatrixgetCrsMatrix () const

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

Concrete implementation of Xpetra::Operator.

Definition at line 85 of file Xpetra_CrsOperator.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::CrsOperator< 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::CrsOperator< 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::Operator<Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps> Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::Operator [private]

Definition at line 89 of file Xpetra_CrsOperator.hpp.

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::CrsOperator< 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::CrsOperator< 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::CrsOperator< 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::CrsOperator< 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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsOperator ( const RCP< const Map > &  rowMap,
size_t  maxNumEntriesPerRow,
Xpetra::ProfileType  pftype = Xpetra::DynamicProfile 
) [inline]

Constructor specifying fixed number of entries for each row.

Definition at line 103 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CrsOperator ( const RCP< const Map > &  rowMap,
const ArrayRCP< const size_t > &  NumEntriesPerRowToAlloc,
ProfileType  pftype = Xpetra::DynamicProfile 
) [inline]

Constructor specifying (possibly different) number of entries in each row.

Definition at line 114 of file Xpetra_CrsOperator.hpp.

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

Definition at line 124 of file Xpetra_CrsOperator.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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::~CrsOperator ( ) [inline, virtual]

Destructor.

Definition at line 135 of file Xpetra_CrsOperator.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::CrsOperator< 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.

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.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 155 of file Xpetra_CrsOperator.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::CrsOperator< 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.

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

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 167 of file Xpetra_CrsOperator.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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::fillComplete ( const RCP< const Map > &  domainMap,
const RCP< const Map > &  rangeMap,
const RCP< Teuchos::ParameterList > &  params = null 
) [inline]

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

Definition at line 187 of file Xpetra_CrsOperator.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::CrsOperator< 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.

Note:
This method calls fillComplete( getRowMap(), getRowMap(), os ).
Precondition:
isFillActive() == true
isFillComplete()() == false
Postcondition:
isFillActive() == false
isFillComplete() == true
if os == DoOptimizeStorage, then isStorageOptimized() == true

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 208 of file Xpetra_CrsOperator.hpp.

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

Returns the number of global rows in this matrix.

Undefined if isFillActive().

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 220 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
global_size_t Xpetra::CrsOperator< 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 227 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 232 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
global_size_t Xpetra::CrsOperator< 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 237 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 242 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 248 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
global_size_t Xpetra::CrsOperator< 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 255 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 262 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 269 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
size_t Xpetra::CrsOperator< 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 276 of file Xpetra_CrsOperator.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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::isLocallyIndexed ( ) const [inline, virtual]

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

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 281 of file Xpetra_CrsOperator.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::CrsOperator< 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. */.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 286 of file Xpetra_CrsOperator.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::CrsOperator< 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 291 of file Xpetra_CrsOperator.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::CrsOperator< 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.

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

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 308 of file Xpetra_CrsOperator.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::CrsOperator< 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.

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.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 326 of file Xpetra_CrsOperator.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::CrsOperator< 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.

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.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 340 of file Xpetra_CrsOperator.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::CrsOperator< 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 347 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
ScalarTraits<Scalar>::magnitudeType Xpetra::CrsOperator< 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 352 of file Xpetra_CrsOperator.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::CrsOperator< 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 $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.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 385 of file Xpetra_CrsOperator.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 RCP<const Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getDomainMap ( ) const [inline, virtual]

Returns the Map associated with the domain of this operator. This will be null until fillComplete() is called.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 395 of file Xpetra_CrsOperator.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 RCP<const Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getRangeMap ( ) const [inline, virtual]

Returns the Map associated with the domain of this operator. This will be null until fillComplete() is called.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 401 of file Xpetra_CrsOperator.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 RCP<const Map>& Xpetra::CrsOperator< 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 from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 407 of file Xpetra_CrsOperator.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 RCP<const Map>& Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::getColMap ( viewLabel_t  viewLabel) const [inline, virtual]

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

Reimplemented from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >.

Definition at line 410 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
std::string Xpetra::CrsOperator< 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 422 of file Xpetra_CrsOperator.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::CrsOperator< 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 427 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
RCP<const CrsGraph> Xpetra::CrsOperator< 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 444 of file Xpetra_CrsOperator.hpp.

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

Definition at line 446 of file Xpetra_CrsOperator.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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::CreateDefaultView ( ) [inline, private]

Definition at line 455 of file Xpetra_CrsOperator.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::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::updateDefaultView ( ) const [inline, private]

Definition at line 469 of file Xpetra_CrsOperator.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>
bool Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::finalDefaultView_ [mutable, private]

Definition at line 478 of file Xpetra_CrsOperator.hpp.

template<class Scalar , class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType, class LocalMatOps = typename Kokkos::DefaultKernels<Scalar,LocalOrdinal,Node>::SparseOps>
RCP<CrsMatrix> Xpetra::CrsOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatOps >::matrixData_ [private]

Definition at line 481 of file Xpetra_CrsOperator.hpp.


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