|
Tpetra parallel linear algebra
Version of the Day
|
42 #ifndef TPETRA_ROWMATRIX_DECL_HPP
43 #define TPETRA_ROWMATRIX_DECL_HPP
45 #include "Tpetra_ConfigDefs.hpp"
48 #include "Tpetra_Operator.hpp"
52 #include "Teuchos_Describable.hpp"
53 #include "Kokkos_ArithTraits.hpp"
81 template <
class Scalar,
86 virtual public Operator<Scalar, LocalOrdinal, GlobalOrdinal, Node>,
88 public Packable<char, LocalOrdinal> {
107 using mag_type =
typename Kokkos::ArithTraits<Scalar>::mag_type;
121 virtual Teuchos::RCP<const Teuchos::Comm<int> >
getComm()
const = 0;
123 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
124 virtual TPETRA_DEPRECATED Teuchos::RCP<Node> getNode()
const = 0;
126 #endif // TPETRA_ENABLE_DEPRECATED_CODE
129 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getRowMap()
const = 0;
132 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
getColMap()
const = 0;
135 virtual Teuchos::RCP<const RowGraph<LocalOrdinal,GlobalOrdinal,Node> >
getGraph()
const = 0;
235 #ifdef TPETRA_ENABLE_DEPRECATED_CODE
254 virtual size_t TPETRA_DEPRECATED getNodeNumDiags ()
const = 0;
266 virtual bool TPETRA_DEPRECATED isLowerTriangular ()
const = 0;
278 virtual bool TPETRA_DEPRECATED isUpperTriangular ()
const = 0;
279 #endif // TPETRA_ENABLE_DEPRECATED_CODE
307 const Teuchos::ArrayView<GlobalOrdinal> &Indices,
308 const Teuchos::ArrayView<Scalar> &Values,
309 size_t &NumEntries)
const = 0;
333 const Teuchos::ArrayView<LocalOrdinal> &Indices,
334 const Teuchos::ArrayView<Scalar> &Values,
335 size_t &NumEntries)
const = 0;
363 Teuchos::ArrayView<const GlobalOrdinal> &indices,
364 Teuchos::ArrayView<const Scalar> &values)
const = 0;
392 Teuchos::ArrayView<const LocalOrdinal>& indices,
393 Teuchos::ArrayView<const Scalar>& values)
const = 0;
423 LocalOrdinal& numEnt,
424 const LocalOrdinal*& lclColInds,
425 const Scalar*& vals)
const;
517 virtual Teuchos::RCP<RowMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
518 add (
const Scalar& alpha,
523 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null)
const;
529 packRow (
char*
const numEntOut,
533 const LocalOrdinal lclRow)
const;
538 allocatePackSpace (Teuchos::Array<char>& exports,
539 size_t& totalNumEntries,
540 const Teuchos::ArrayView<const LocalOrdinal>& exportLIDs)
const;
547 packImpl (
const Teuchos::ArrayView<const LocalOrdinal>& exportLIDs,
548 Teuchos::Array<char>& exports,
549 const Teuchos::ArrayView<size_t>& numPacketsPerLID,
550 size_t& constantNumPackets,
564 pack (
const Teuchos::ArrayView<const LocalOrdinal>& exportLIDs,
565 Teuchos::Array<char>& exports,
566 const Teuchos::ArrayView<size_t>& numPacketsPerLID,
567 size_t& constantNumPackets,
573 #endif // TPETRA_ROWMATRIX_DECL_HPP
virtual global_size_t getGlobalNumCols() const =0
The global number of columns of this matrix.
virtual GlobalOrdinal getIndexBase() const =0
The index base for global indices in this matrix.
virtual global_size_t getGlobalNumRows() const =0
The global number of rows of this matrix.
virtual Teuchos::RCP< const RowGraph< LocalOrdinal, GlobalOrdinal, Node > > getGraph() const =0
The RowGraph associated with this matrix.
virtual global_size_t getGlobalNumEntries() const =0
The global number of stored (structurally nonzero) entries.
Node node_type
The Kokkos Node type.
LocalOrdinal local_ordinal_type
The type of local indices.
Forward declaration of Tpetra::RowGraph.
A parallel distribution of indices over processes.
virtual Teuchos::RCP< const Teuchos::Comm< int > > getComm() const =0
The communicator over which this matrix is distributed.
virtual size_t getNodeNumRows() const =0
The number of rows owned by the calling process.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const =0
The Map that describes the distribution of rows over processes.
virtual size_t getNodeMaxNumRowEntries() const =0
Maximum number of entries in any row of the matrix, on this process.
Abstract interface for operators (e.g., matrices and preconditioners).
virtual mag_type getFrobeniusNorm() const =0
The Frobenius norm of the matrix.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const =0
The Map that describes the distribution of columns over processes.
virtual size_t getNumEntriesInGlobalRow(GlobalOrdinal globalRow) const =0
The current number of entries on the calling process in the specified global row.
A read-only, row-oriented interface to a sparse matrix.
virtual void getLocalRowCopy(LocalOrdinal LocalRow, const Teuchos::ArrayView< LocalOrdinal > &Indices, const Teuchos::ArrayView< Scalar > &Values, size_t &NumEntries) const =0
Get a copy of the given local row's entries.
virtual bool hasColMap() const =0
Whether this matrix has a well-defined column Map.
virtual ~RowMatrix()
Destructor (virtual for memory safety of derived classes).
Abstract base class for objects that can be the source of an Import or Export operation,...
virtual void getGlobalRowView(GlobalOrdinal GlobalRow, Teuchos::ArrayView< const GlobalOrdinal > &indices, Teuchos::ArrayView< const Scalar > &values) const =0
Get a constant, nonpersisting, globally indexed view of the given row of the matrix.
virtual LocalOrdinal getLocalRowViewRaw(const LocalOrdinal lclRow, LocalOrdinal &numEnt, const LocalOrdinal *&lclColInds, const Scalar *&vals) const
Get a constant, nonpersisting, locally indexed view of the given row of the matrix,...
virtual size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const =0
The current number of entries on the calling process in the specified local row.
typename Kokkos::ArithTraits< SC >::mag_type mag_type
Type of a norm result.
CrsGraphType::global_ordinal_type getGlobalNumDiags(const CrsGraphType &G)
Number of populated diagonal entries in the given sparse graph, over all processes in the graph's (MP...
virtual size_t getNodeNumEntries() const =0
The local number of stored (structurally nonzero) entries.
GlobalOrdinal global_ordinal_type
The type of global indices.
A distributed dense vector.
Sets up and executes a communication plan for a Tpetra DistObject.
Forward declaration of Tpetra::RowMatrix.
Abstract base class for sources of an Import or Export.
virtual void rightScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)=0
Scale the matrix on the right with the given Vector.
virtual Teuchos::RCP< RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > add(const Scalar &alpha, const RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Scalar &beta, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null) const
Return a new RowMatrix which is the result of beta*this + alpha*A.
virtual void getGlobalRowCopy(GlobalOrdinal GlobalRow, const Teuchos::ArrayView< GlobalOrdinal > &Indices, const Teuchos::ArrayView< Scalar > &Values, size_t &NumEntries) const =0
Get a copy of the given global row's entries.
virtual void pack(const Teuchos::ArrayView< const LocalOrdinal > &exportLIDs, Teuchos::Array< char > &exports, const Teuchos::ArrayView< size_t > &numPacketsPerLID, size_t &constantNumPackets, Distributor &distor) const
Pack this object's data for an Import or Export.
virtual void leftScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)=0
Scale the matrix on the left with the given Vector.
Forward declaration of Tpetra::Vector.
virtual size_t getGlobalMaxNumRowEntries() const =0
Maximum number of entries in any row of the matrix, over all processes.
Scalar scalar_type
The type of the entries in the sparse matrix.
virtual bool supportsRowViews() const =0
Whether this object implements getLocalRowView() and getGlobalRowView().
virtual bool isLocallyIndexed() const =0
Whether matrix indices are locally indexed.
virtual void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const =0
Get a copy of the diagonal entries, distributed by the row Map.
virtual bool isFillComplete() const =0
Whether fillComplete() has been called.
size_t global_size_t
Global size_t object.
virtual void getLocalRowView(LocalOrdinal LocalRow, Teuchos::ArrayView< const LocalOrdinal > &indices, Teuchos::ArrayView< const Scalar > &values) const =0
Get a constant, nonpersisting, locally indexed view of the given row of the matrix.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Abstract base class for objects that can be the source of an Import or Export operation.
virtual size_t getNodeNumCols() const =0
The number of columns needed to apply the forward operator on this node.
Declaration of Tpetra::Packable.
virtual bool isGloballyIndexed() const =0
Whether matrix indices are globally indexed.