Tpetra parallel linear algebra
Version of the Day
|
An abstract interface for graphs accessed by rows. More...
#include <Tpetra_RowGraph_decl.hpp>
Public Types | |
Typedefs | |
typedef LocalOrdinal | local_ordinal_type |
The type of local indices in the graph. More... | |
typedef GlobalOrdinal | global_ordinal_type |
The type of global indices in the graph. More... | |
typedef Node | node_type |
The Kokkos Node type. More... | |
Public Member Functions | |
virtual | ~RowGraph () |
Destructor (virtual for memory safety of derived classes). More... | |
Graph query methods | |
virtual Teuchos::RCP< const Teuchos::Comm< int > > | getComm () const =0 |
The communicator over which this graph is distributed. More... | |
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > | getRowMap () const =0 |
The Map that describes this graph's distribution of rows over processes. More... | |
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > | getColMap () const =0 |
The Map that describes this graph's distribution of columns over processes. More... | |
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > | getDomainMap () const =0 |
The Map associated with the domain of this graph. More... | |
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > | getRangeMap () const =0 |
The Map associated with the range of this graph. More... | |
virtual Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > | getImporter () const =0 |
This graph's Import object. More... | |
virtual Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > | getExporter () const =0 |
This graph's Export object. More... | |
virtual global_size_t | getGlobalNumRows () const =0 |
Returns the number of global rows in the graph. More... | |
virtual global_size_t | getGlobalNumCols () const =0 |
Returns the number of global columns in the graph. More... | |
virtual size_t | getNodeNumRows () const =0 |
Returns the number of rows owned on the calling node. More... | |
virtual size_t | getNodeNumCols () const =0 |
Returns the number of columns connected to the locally owned rows of this graph. More... | |
virtual GlobalOrdinal | getIndexBase () const =0 |
Returns the index base for global indices for this graph. More... | |
virtual global_size_t | getGlobalNumEntries () const =0 |
Returns the global number of entries in the graph. More... | |
virtual size_t | getNodeNumEntries () const =0 |
Returns the local number of entries in the graph. More... | |
virtual size_t | getNumEntriesInGlobalRow (GlobalOrdinal globalRow) const =0 |
Returns the current number of entries on this node in the specified global row. More... | |
virtual size_t | getNumEntriesInLocalRow (LocalOrdinal localRow) const =0 |
Returns the current number of entries on this node in the specified local row. More... | |
virtual size_t | getGlobalMaxNumRowEntries () const =0 |
Returns the maximum number of entries across all rows/columns on all nodes. More... | |
virtual size_t | getNodeMaxNumRowEntries () const =0 |
Returns the maximum number of entries across all rows/columns on this node. More... | |
virtual bool | hasColMap () const =0 |
Whether the graph has a well-defined column Map. More... | |
virtual bool | isLocallyIndexed () const =0 |
If graph indices are in the local range, this function returns true. Otherwise, this function returns false. */. More... | |
virtual bool | isGloballyIndexed () const =0 |
If graph indices are in the global range, this function returns true. Otherwise, this function returns false. */. More... | |
virtual bool | isFillComplete () const =0 |
Whether fillComplete() has been called (without an intervening resumeFill()). More... | |
Access to entries in a row | |
virtual void | getGlobalRowCopy (GlobalOrdinal gblRow, const Teuchos::ArrayView< GlobalOrdinal > &gblColInds, size_t &numColInds) const =0 |
Get a copy of the global column indices in a given row of the graph. More... | |
virtual void | getLocalRowCopy (LocalOrdinal lclRow, const Teuchos::ArrayView< LocalOrdinal > &lclColInds, size_t &numColInds) const =0 |
Get a copy of the local column indices in a given row of the graph. More... | |
virtual bool | supportsRowViews () const |
Whether this class implements getLocalRowView() and getGlobalRowView(). More... | |
virtual void | getLocalRowView (const LocalOrdinal lclRow, Teuchos::ArrayView< const LocalOrdinal > &lclColInds) const |
Get a constant, nonpersisting, locally indexed view of the given row of the graph. More... | |
virtual void | getGlobalRowView (const GlobalOrdinal gblRow, Teuchos::ArrayView< const GlobalOrdinal > &gblColInds) const |
Get a const, non-persisting view of the given global row's global column indices, as a Teuchos::ArrayView. More... | |
Implementation of Packable interface | |
virtual void | pack (const Teuchos::ArrayView< const LocalOrdinal > &exportLIDs, Teuchos::Array< GlobalOrdinal > &exports, const Teuchos::ArrayView< size_t > &numPacketsPerLID, size_t &constantNumPackets, Distributor &distor) const |
Pack this object's data for Import or Export. More... | |
An abstract interface for graphs accessed by rows.
This class is to CrsGraph, what RowMatrix is to CrsMatrix. CrsGraph is an implementation of RowGraph.
LocalOrdinal | The type of local indices. See the documentation of Map for requirements. |
GlobalOrdinal | The type of global indices. See the documentation of Map for requirements. |
Node | The Kokkos Node type. See the documentation of Map for requirements. |
Definition at line 69 of file Tpetra_RowGraph_decl.hpp.
typedef LocalOrdinal Tpetra::RowGraph< LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type |
The type of local indices in the graph.
Definition at line 76 of file Tpetra_RowGraph_decl.hpp.
typedef GlobalOrdinal Tpetra::RowGraph< LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type |
The type of global indices in the graph.
Definition at line 78 of file Tpetra_RowGraph_decl.hpp.
typedef Node Tpetra::RowGraph< LocalOrdinal, GlobalOrdinal, Node >::node_type |
The Kokkos Node type.
Definition at line 80 of file Tpetra_RowGraph_decl.hpp.
|
inlinevirtual |
Destructor (virtual for memory safety of derived classes).
Definition at line 84 of file Tpetra_RowGraph_decl.hpp.
|
pure virtual |
The communicator over which this graph is distributed.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
The Map that describes this graph's distribution of rows over processes.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
The Map that describes this graph's distribution of columns over processes.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
The Map associated with the domain of this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
The Map associated with the range of this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
This graph's Import object.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
This graph's Export object.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the number of global rows in the graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the number of global columns in the graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the number of rows owned on the calling node.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the number of columns connected to the locally owned rows of this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the index base for global indices for this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the global number of entries in the graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the local number of entries in the graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the current number of entries on this node in the specified global row.
Returns Teuchos::OrdinalTraits<size_t>::invalid() if the specified global row does not belong to this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the current number of entries on this node in the specified local row.
Returns Teuchos::OrdinalTraits<size_t>::invalid() if the specified local row is not valid for this graph.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the maximum number of entries across all rows/columns on all nodes.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Returns the maximum number of entries across all rows/columns on this node.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Whether the graph has a well-defined column Map.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
If graph indices are in the local range, this function returns true. Otherwise, this function returns false. */.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
If graph indices are in the global range, this function returns true. Otherwise, this function returns false. */.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Whether fillComplete() has been called (without an intervening resumeFill()).
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Get a copy of the global column indices in a given row of the graph.
Given the global index of a row of the graph, get a copy of all the global column indices in that row that the calling process stores.
gblRow | [in] Global index of the row. |
gblColInds | [in/out] On output: All the global column indices in that row on the calling process. |
numColInds | [out] Number of indices in the row on the calling process. |
getRowMap()->isNodeGlobalElement(gblRow) is true
.
gblColInds.size() >= getNumEntriesInGlobalRow(gblRow)
is true
.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
pure virtual |
Get a copy of the local column indices in a given row of the graph.
Given the local index of a row of the graph, get a copy of all the local column indices in that row that the calling process stores.
lclRow | [in] Local index of the row. |
lclColInds | [in/out] On output: All the local column indices in that row on the calling process. |
numColInds | [out] Number of indices in the row on the calling process. |
hasColMap()
is true
. getRowMap()->isNodeLocalElement(lclRow) is true
.
lclColInds.size() >= getNumEntriesInLocalRow(lclRow)
is true
.
Implemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
|
inlinevirtual |
Whether this class implements getLocalRowView() and getGlobalRowView().
If subclasses override the default (trivial) implementation of getLocalRowView() and getGlobalRowView(), then they need to override this method as well.
Reimplemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
Definition at line 217 of file Tpetra_RowGraph_decl.hpp.
|
virtual |
Get a constant, nonpersisting, locally indexed view of the given row of the graph.
The returned views of the column indices are not guaranteed to persist beyond the lifetime of this
. Furthermore, some RowGraph implementations allow changing the values, or the indices and values. Any such changes invalidate the returned views.
This method only gets the entries in the given row that are stored on the calling process. Note that if the graph has an overlapping row Map, it is possible that the calling process does not store all the entries in that row.
isLocallyIndexed () && supportsRowViews ()
indices.size () == getNumEntriesInGlobalRow (LocalRow)
lclRow | [in] Local index of the row. |
lclColInds | [out] Local indices of the columns in the row. If the given row is not a valid row index on the calling process, then the result has no entries (its size is zero). |
Subclasses are expected to implement this method. We would have made this method pure virtual, but that would have broken backwards compatibility, since we added the method at least one major release after introducing this class.
Reimplemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
Definition at line 109 of file Tpetra_RowGraph_def.hpp.
|
virtual |
Get a const, non-persisting view of the given global row's global column indices, as a Teuchos::ArrayView.
gblRow | [in] Global index of the row. |
gblColInds | [out] Global column indices in the row. If the given row is not a valid row index on the calling process, then the result has no entries (its size is zero). |
! isLocallyIndexed()
gblColInds.size() == getNumEntriesInGlobalRow(gblRow)
Subclasses are expected to implement this method. We would have made this method pure virtual, but that would have broken backwards compatibility, since we added the method at least one major release after introducing this class.
Reimplemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
Definition at line 130 of file Tpetra_RowGraph_def.hpp.
|
virtual |
Pack this object's data for Import or Export.
Implements Tpetra::Packable< GlobalOrdinal, LocalOrdinal >.
Reimplemented in Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::CrsGraph< LO, GO, node_type >.
Definition at line 51 of file Tpetra_RowGraph_def.hpp.