Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Referenceabstract

#include <Xpetra_CrsMatrix.hpp>

Inheritance diagram for Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >:
Xpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > Xpetra::DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > Teuchos::Describable Teuchos::Describable Teuchos::LabeledObject Teuchos::LabeledObject

Public Types

typedef Scalar scalar_type
typedef LocalOrdinal local_ordinal_type
typedef GlobalOrdinal global_ordinal_type
typedef Node node_type
Public Types inherited from Xpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType >
typedef Scalar scalar_type
typedef LocalOrdinal local_ordinal_type
typedef GlobalOrdinal global_ordinal_type
typedef Tpetra::KokkosClassic::DefaultNode::DefaultNodeType node_type
typedef Scalar scalar_type
 The type of the entries of the input and output multivectors.
typedef LocalOrdinal local_ordinal_type
 The local index type.
typedef GlobalOrdinal global_ordinal_type
 The global index type.
typedef Tpetra::KokkosClassic::DefaultNode::DefaultNodeType node_type
 The Kokkos Node type.

Xpetra-specific routines

using impl_scalar_type = typename Kokkos::ArithTraits<Scalar>::val_type
using execution_space = typename node_type::device_type
using local_graph_type
using local_matrix_type
 The specialization of Kokkos::CrsMatrix that represents the part of the sparse matrix on each MPI process. The same as for Tpetra.
virtual local_matrix_type getLocalMatrixDevice () const =0
virtual local_matrix_type::HostMirror getLocalMatrixHost () const =0
virtual void setAllValues (const typename local_matrix_type::row_map_type &ptr, const typename local_graph_type::entries_type::non_const_type &ind, const typename local_matrix_type::values_type &val)=0
virtual size_t getLocalNumCols () const =0
 Returns the number of matrix columns owned on the calling node.
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 bool hasMatrix () const =0
 Does this have an underlying matrix.
virtual LocalOrdinal GetStorageBlockSize () const =0
 Returns the block size of the storage mechanism, which is usually 1, except for Tpetra::BlockCrsMatrix.
virtual void residual (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &B, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &R) const =0
 Compute a residual R = B - (*this) * X.

Constructor/Destructor Methods

virtual ~CrsMatrix ()
 Destructor.

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.
virtual void replaceGlobalValues (GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0
 Replace matrix entries, using global IDs.
virtual void replaceLocalValues (LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)=0
 Replace matrix entries, using local IDs.
virtual void setAllToScalar (const Scalar &alpha)=0
 Set all matrix entries equal to scalarThis.
virtual void scale (const Scalar &alpha)=0
 Scale the current values of a matrix, this = alpha*this.
virtual void allocateAllValues (size_t numNonZeros, ArrayRCP< size_t > &rowptr, ArrayRCP< LocalOrdinal > &colind, ArrayRCP< Scalar > &values)=0
 Allocates and returns ArrayRCPs of the Crs arrays — This is an Xpetra-only routine.
virtual void setAllValues (const ArrayRCP< size_t > &rowptr, const ArrayRCP< LocalOrdinal > &colind, const ArrayRCP< Scalar > &values)=0
 Sets the 1D pointer arrays of the graph.
virtual void getAllValues (ArrayRCP< const size_t > &rowptr, ArrayRCP< const LocalOrdinal > &colind, ArrayRCP< const Scalar > &values) const =0
 Gets the 1D pointer arrays of the graph.
virtual void getAllValues (ArrayRCP< Scalar > &values)=0
 Gets the 1D pointer arrays of the graph.

Transformational Methods

virtual void resumeFill (const RCP< ParameterList > &params=null)=0
virtual void fillComplete (const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &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.
virtual void replaceDomainMapAndImporter (const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newDomainMap, Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &newImporter)=0
 Replaces the current domainMap and importer with the user-specified objects.
virtual void expertStaticFillComplete (const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &importer=Teuchos::null, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > &exporter=Teuchos::null, const RCP< ParameterList > &params=Teuchos::null)=0
 Expert static fill complete.

Methods implementing RowMatrix

virtual const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap () const =0
 Returns the Map that describes the row distribution in this matrix.
virtual const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap () const =0
 Returns the Map that describes the column distribution in this matrix.
virtual RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > getCrsGraph () const =0
 Returns the CrsGraph associated with this matrix.
virtual global_size_t getGlobalNumRows () const =0
 Number of global elements in the row map of this matrix.
virtual global_size_t getGlobalNumCols () const =0
 Number of global columns in the matrix.
virtual size_t getLocalNumRows () 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 getLocalNumEntries () 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 size_t getNumEntriesInGlobalRow (GlobalOrdinal globalRow) const =0
 Returns the current number of entries in the specified global row.
virtual size_t getGlobalMaxNumRowEntries () const =0
 Returns the maximum number of entries across all rows/columns on all nodes.
virtual size_t getLocalMaxNumRowEntries () 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 the matrix is in compute mode, i.e. if fillComplete() has been called.
virtual bool isFillActive () const =0
 Returns true if the matrix is in edit mode.
virtual ScalarTraits< Scalar >::magnitudeType getFrobeniusNorm () const =0
 Returns the Frobenius norm of the matrix.
virtual bool supportsRowViews () const =0
 Returns true if getLocalRowView() and getGlobalRowView() are valid for this class.
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 getGlobalRowCopy (GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const =0
 Extract a list of entries in a specified global row of this matrix. Put into pre-allocated storage.
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 indices.
virtual void getLocalDiagOffsets (Teuchos::ArrayRCP< size_t > &offsets) const =0
 Get offsets of the diagonal entries in the matrix.
virtual void getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag, const Teuchos::ArrayView< const size_t > &offsets) const =0
 Get a copy of the diagonal entries owned by this node, with local row indices, using row offsets.
virtual void getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag, const Kokkos::View< const size_t *, typename Node::device_type, Kokkos::MemoryUnmanaged > &offsets) const =0
 Get a copy of the diagonal entries owned by this node, with local row indices, using row offsets.
virtual void replaceDiag (const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag)=0
 Replace the diagonal entries of the matrix.
virtual void leftScale (const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)=0
 Left scale matrix using the given vector entries.
virtual void rightScale (const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)=0
 Right scale matrix using the given vector entries.
virtual void removeEmptyProcessesInPlace (const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newMap)=0
virtual bool haveGlobalConstants () const =0
 Returns true if globalConstants have been computed; false otherwise.

Methods implementing Operator

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 void apply (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode, Scalar alpha, Scalar beta, bool sumInterfaceValues, const RCP< Import< LocalOrdinal, GlobalOrdinal, Node > > &regionInterfaceImporter, const Teuchos::ArrayRCP< LocalOrdinal > &regionInterfaceLIDs) const =0
 Computes the sparse matrix-multivector multiplication for region layout matrices.
virtual const RCP< const 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 Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap () const =0
 Returns the Map associated with the range of this operator, which must be compatible with Y.getMap().

Overridden from Teuchos::Describable

virtual std::string description () const =0
 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.

Overridden from Teuchos::LabeledObject

virtual void setObjectLabel (const std::string &objectLabel)=0

Additional Inherited Members

virtual ~RowMatrix ()
 Destructor.
virtual void getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &diag) const=0
 Get a copy of the diagonal entries owned by this node, with local row indices.
virtual void apply (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &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.
Public Member Functions inherited from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType >
virtual ~Operator ()
virtual bool hasTransposeApply () const
 Whether this operator supports applying the transpose or conjugate transpose.
virtual void removeEmptyProcessesInPlace (const RCP< const map_type > &)
virtual void residual (const mv_type &X, const mv_type &B, mv_type &R) const=0
 Compute a residual R = B - (*this) * X.
Public Member Functions inherited from Teuchos::Describable
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 ()
Public Member Functions inherited from Teuchos::LabeledObject
 LabeledObject ()
virtual ~LabeledObject ()
virtual std::string getObjectLabel () const
virtual ~DistObject ()
 Destructor.
virtual void doImport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Import< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &importer, CombineMode CM)=0
 Import data into this object using an Import object ("forward mode").
virtual void beginImport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Import< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &importer, CombineMode CM)
 Import data into this object using an Import object ("forward mode").
virtual void endImport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Import< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &importer, CombineMode CM)
 Import data into this object using an Import object ("forward mode").
virtual void doExport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Export< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &exporter, CombineMode CM)=0
 Export data into this object using an Export object ("forward mode").
virtual void beginExport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Export< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &exporter, CombineMode CM)
 Export data into this object using an Export object ("forward mode").
virtual void endExport (const DistObject< char, LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &source, const Export< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > &exporter, CombineMode CM)
 Export data into this object using an Export object ("forward mode").
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Tpetra::KokkosClassic::DefaultNode::DefaultNodeType > > getMap () const=0
 The Map describing the parallel distribution of this object.
Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
class Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Definition at line 33 of file Xpetra_CrsMatrix.hpp.

Member Typedef Documentation

◆ scalar_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
typedef Scalar Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type

Definition at line 37 of file Xpetra_CrsMatrix.hpp.

◆ local_ordinal_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
typedef LocalOrdinal Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type

Definition at line 38 of file Xpetra_CrsMatrix.hpp.

◆ global_ordinal_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
typedef GlobalOrdinal Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type

Definition at line 39 of file Xpetra_CrsMatrix.hpp.

◆ node_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
typedef Node Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type

Definition at line 40 of file Xpetra_CrsMatrix.hpp.

◆ impl_scalar_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
using Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::impl_scalar_type = typename Kokkos::ArithTraits<Scalar>::val_type

Definition at line 276 of file Xpetra_CrsMatrix.hpp.

◆ execution_space

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
using Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::execution_space = typename node_type::device_type

Definition at line 277 of file Xpetra_CrsMatrix.hpp.

◆ local_graph_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
using Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_graph_type
Initial value:
Kokkos::StaticCrsGraph<LocalOrdinal,
Kokkos::LayoutLeft,
void,
size_t>
typename node_type::device_type execution_space

Definition at line 280 of file Xpetra_CrsMatrix.hpp.

◆ local_matrix_type

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
using Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_matrix_type
Initial value:
KokkosSparse::CrsMatrix<impl_scalar_type, LocalOrdinal, execution_space, void,
typename local_graph_type::size_type>
typename Kokkos::ArithTraits< Scalar >::val_type impl_scalar_type

The specialization of Kokkos::CrsMatrix that represents the part of the sparse matrix on each MPI process. The same as for Tpetra.

Definition at line 288 of file Xpetra_CrsMatrix.hpp.

Constructor & Destructor Documentation

◆ ~CrsMatrix()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::~CrsMatrix ( )
inlinevirtual

Destructor.

Definition at line 46 of file Xpetra_CrsMatrix.hpp.

Member Function Documentation

◆ insertGlobalValues()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::insertGlobalValues ( GlobalOrdinal globalRow,
const ArrayView< const GlobalOrdinal > & cols,
const ArrayView< const Scalar > & vals )
pure virtual

◆ insertLocalValues()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::insertLocalValues ( LocalOrdinal localRow,
const ArrayView< const LocalOrdinal > & cols,
const ArrayView< const Scalar > & vals )
pure virtual

◆ replaceGlobalValues()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceGlobalValues ( GlobalOrdinal globalRow,
const ArrayView< const GlobalOrdinal > & cols,
const ArrayView< const Scalar > & vals )
pure virtual

◆ replaceLocalValues()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceLocalValues ( LocalOrdinal localRow,
const ArrayView< const LocalOrdinal > & cols,
const ArrayView< const Scalar > & vals )
pure virtual

◆ setAllToScalar()

◆ scale()

◆ allocateAllValues()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::allocateAllValues ( size_t numNonZeros,
ArrayRCP< size_t > & rowptr,
ArrayRCP< LocalOrdinal > & colind,
ArrayRCP< Scalar > & values )
pure virtual

Allocates and returns ArrayRCPs of the Crs arrays — This is an Xpetra-only routine.

Parameters
numNonZerosNumber of non-zeros
rowptrPointer to row array of Crs data
colindPointer to colInd array of Crs data
valuesPointer to value array of Crs data
Warning
This is an expert-only routine and should not be called from user code.

Implemented in Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Xpetra::TpetraBlockCrsMatrix< Scalar, int, int, EpetraNode >, Xpetra::TpetraBlockCrsMatrix< Scalar, int, long long, EpetraNode >, Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >, Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >, and Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

◆ setAllValues() [1/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setAllValues ( const ArrayRCP< size_t > & rowptr,
const ArrayRCP< LocalOrdinal > & colind,
const ArrayRCP< Scalar > & values )
pure virtual

◆ getAllValues() [1/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getAllValues ( ArrayRCP< const size_t > & rowptr,
ArrayRCP< const LocalOrdinal > & colind,
ArrayRCP< const Scalar > & values ) const
pure virtual

◆ getAllValues() [2/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getAllValues ( ArrayRCP< Scalar > & values)
pure virtual

◆ resumeFill()

◆ fillComplete() [1/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::fillComplete ( const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & domainMap,
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & rangeMap,
const RCP< ParameterList > & params = null )
pure virtual

◆ fillComplete() [2/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::fillComplete ( const RCP< ParameterList > & params = null)
pure virtual

◆ replaceDomainMapAndImporter()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceDomainMapAndImporter ( const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & newDomainMap,
Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > & newImporter )
pure virtual

◆ expertStaticFillComplete()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::expertStaticFillComplete ( const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & domainMap,
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & rangeMap,
const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > & importer = Teuchos::null,
const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > & exporter = Teuchos::null,
const RCP< ParameterList > & params = Teuchos::null )
pure virtual

◆ getRowMap()

◆ getColMap()

◆ getCrsGraph()

◆ getGlobalNumRows()

◆ getGlobalNumCols()

◆ getLocalNumRows()

◆ getGlobalNumEntries()

◆ getLocalNumEntries()

◆ getNumEntriesInLocalRow()

◆ getNumEntriesInGlobalRow()

◆ getGlobalMaxNumRowEntries()

◆ getLocalMaxNumRowEntries()

◆ isLocallyIndexed()

◆ isGloballyIndexed()

◆ isFillComplete()

◆ isFillActive()

◆ getFrobeniusNorm()

◆ supportsRowViews()

◆ getGlobalRowView()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getGlobalRowView ( GlobalOrdinal GlobalRow,
ArrayView< const GlobalOrdinal > & indices,
ArrayView< const Scalar > & values ) const
pure virtual

◆ getGlobalRowCopy()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getGlobalRowCopy ( GlobalOrdinal GlobalRow,
const ArrayView< GlobalOrdinal > & indices,
const ArrayView< Scalar > & values,
size_t & numEntries ) const
pure virtual

◆ getLocalRowView()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalRowView ( LocalOrdinal LocalRow,
ArrayView< const LocalOrdinal > & indices,
ArrayView< const Scalar > & values ) const
pure virtual

◆ getLocalDiagCopy() [1/3]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalDiagCopy ( Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & diag) const
pure virtual

◆ getLocalDiagOffsets()

◆ getLocalDiagCopy() [2/3]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalDiagCopy ( Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & diag,
const Teuchos::ArrayView< const size_t > & offsets ) const
pure virtual

Get a copy of the diagonal entries owned by this node, with local row indices, using row offsets.

Implemented in Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

◆ getLocalDiagCopy() [3/3]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalDiagCopy ( Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & diag,
const Kokkos::View< const size_t *, typename Node::device_type, Kokkos::MemoryUnmanaged > & offsets ) const
pure virtual

Get a copy of the diagonal entries owned by this node, with local row indices, using row offsets.

Implemented in Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

◆ replaceDiag()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceDiag ( const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & diag)
pure virtual

◆ leftScale()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::leftScale ( const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & x)
pure virtual

◆ rightScale()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::rightScale ( const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & x)
pure virtual

◆ removeEmptyProcessesInPlace()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::removeEmptyProcessesInPlace ( const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > & newMap)
pure virtual

◆ haveGlobalConstants()

◆ apply() [1/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::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.

This method computes Y := beta*Y + alpha*Op(A)*X, where Op(A) is either \(A\), \(A^T\) (the transpose), or \(A^H\) (the conjugate transpose).

Parameters
[in]XInput vector
[in,out]YResult vector
[in]modeTranspose mode
[in]alphaScaling factor
[in]betaScaling factor

Implemented in Xpetra::TpetraBlockCrsMatrix< Scalar, int, int, EpetraNode >, Xpetra::TpetraBlockCrsMatrix< Scalar, int, long long, EpetraNode >, Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >, Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >, and Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

◆ apply() [2/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::apply ( const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & X,
MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & Y,
Teuchos::ETransp mode,
Scalar alpha,
Scalar beta,
bool sumInterfaceValues,
const RCP< Import< LocalOrdinal, GlobalOrdinal, Node > > & regionInterfaceImporter,
const Teuchos::ArrayRCP< LocalOrdinal > & regionInterfaceLIDs ) const
pure virtual

Computes the sparse matrix-multivector multiplication for region layout matrices.

This method is for use with matrices that are in a region layout with duplicated degrees of freedom on rejgion interfaces. This method computes Y := beta*Y + alpha*Op(A)*X, where Op(A) is either \(A\), \(A^T\) (the transpose), or \(A^H\) (the conjugate transpose).

Parameters
[in]XInput vector
[in,out]YResult vector
[in]modeTranspose mode
[in]alphaScaling factor
[in]betaScaling factor
[in]sumInterfaceValuesWhether or not to sum interface values between regions after the matvec
[in]regionInterfaceImporterImporter with region interface information
[in]regionInterfaceLIDsArray of LIDs on region interfaces in local region format

Implemented in Xpetra::TpetraBlockCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Xpetra::TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

◆ getDomainMap()

◆ getRangeMap()

◆ description()

◆ describe()

◆ setObjectLabel()

◆ getLocalMatrixDevice()

◆ getLocalMatrixHost()

◆ setAllValues() [2/2]

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setAllValues ( const typename local_matrix_type::row_map_type & ptr,
const typename local_graph_type::entries_type::non_const_type & ind,
const typename local_matrix_type::values_type & val )
pure virtual

◆ getLocalNumCols()

◆ getLocalRowCopy()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalRowCopy ( LocalOrdinal LocalRow,
const ArrayView< LocalOrdinal > & Indices,
const ArrayView< Scalar > & Values,
size_t & NumEntries ) const
pure virtual

◆ hasMatrix()

◆ GetStorageBlockSize()

◆ residual()

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
virtual void Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >::residual ( const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & X,
const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & B,
MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & R ) const
pure virtual

The documentation for this class was generated from the following file: