42 #ifndef TPETRA_ROWGRAPH_DECL_HPP 43 #define TPETRA_ROWGRAPH_DECL_HPP 46 #include "Tpetra_Map.hpp" 47 #include "Tpetra_Import.hpp" 48 #include "Tpetra_Export.hpp" 50 #include "Teuchos_Describable.hpp" 66 template <
class LocalOrdinal,
70 virtual public Teuchos::Describable,
71 public Packable<GlobalOrdinal, LocalOrdinal> {
84 Kokkos::View<LocalOrdinal *, typename Node::device_type>::const_type
85 local_inds_device_view_type;
86 typedef typename local_inds_device_view_type::HostMirror::const_type
87 local_inds_host_view_type;
88 typedef typename local_inds_device_view_type::HostMirror
89 nonconst_local_inds_host_view_type;
93 Kokkos::View<GlobalOrdinal *, typename Node::device_type>::const_type
94 global_inds_device_view_type;
95 typedef typename global_inds_device_view_type::HostMirror::const_type
96 global_inds_host_view_type;
97 typedef typename global_inds_device_view_type::HostMirror
98 nonconst_global_inds_host_view_type;
101 Kokkos::View<const size_t*, typename Node::device_type>::const_type
102 row_ptrs_device_view_type;
103 typedef typename row_ptrs_device_view_type::HostMirror::const_type
104 row_ptrs_host_view_type;
113 virtual Teuchos::RCP<const Teuchos::Comm<int> >
118 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
122 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
126 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
130 virtual Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
134 virtual Teuchos::RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> >
138 virtual Teuchos::RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> >
211 nonconst_global_inds_host_view_type& gblColInds,
212 size_t& numColInds)
const = 0;
213 #ifdef TPETRA_ENABLE_DEPRECATED_CODE 216 const Teuchos::ArrayView<GlobalOrdinal>& gblColInds,
217 size_t& numColInds)
const = 0;
237 nonconst_local_inds_host_view_type & lclColInds,
238 size_t& numColInds)
const = 0;
239 #ifdef TPETRA_ENABLE_DEPRECATED_CODE 242 const Teuchos::ArrayView<LocalOrdinal>& lclColInds,
243 size_t& numColInds)
const = 0;
285 local_inds_host_view_type & lclColInds)
const = 0;
286 #ifdef TPETRA_ENABLE_DEPRECATED_CODE 289 Teuchos::ArrayView<const LocalOrdinal>& lclColInds)
const;
290 #endif // TPETRA_ENABLE_DEPRECATED_CODE 309 global_inds_host_view_type& gblColInds)
const = 0;
310 #ifdef TPETRA_ENABLE_DEPRECATED_CODE 313 Teuchos::ArrayView<const GlobalOrdinal>& gblColInds)
const;
322 pack (
const Teuchos::ArrayView<const LocalOrdinal>& exportLIDs,
323 Teuchos::Array<GlobalOrdinal>& exports,
324 const Teuchos::ArrayView<size_t>& numPacketsPerLID,
325 size_t& constantNumPackets)
const;
330 #endif // TPETRA_ROWGRAPH_DECL_HPP virtual bool hasColMap() const =0
Whether the graph has a well-defined column Map.
virtual ~RowGraph()
Destructor (virtual for memory safety of derived classes).
Namespace Tpetra contains the class and methods constituting the Tpetra library.
virtual size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const =0
Returns the current number of entries on this node in the specified local row.
An abstract interface for graphs accessed by rows.
virtual GlobalOrdinal getIndexBase() const =0
Returns the index base for global indices for this graph.
virtual size_t getNodeNumCols() const =0
Returns the number of columns connected to the locally owned rows of this graph.
GlobalOrdinal global_ordinal_type
The type of global indices in the graph.
virtual size_t getNodeNumEntries() const =0
Returns the local number of entries in the graph.
virtual bool supportsRowViews() const
Whether this class implements getLocalRowView() and getGlobalRowView().
virtual Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > getImporter() const =0
This graph's Import object.
virtual size_t getNodeNumRows() const =0
Returns the number of rows owned on the calling node.
virtual size_t getNodeMaxNumRowEntries() const =0
Returns the maximum number of entries across all rows/columns on this node.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const =0
The Map that describes this graph's distribution of columns over processes.
virtual Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > getExporter() const =0
This graph's Export object.
Forward declaration of Tpetra::RowGraph.
virtual bool isFillComplete() const =0
Whether fillComplete() has been called (without an intervening resumeFill()).
size_t global_size_t
Global size_t object.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const =0
The Map associated with the range of this graph.
virtual global_size_t getGlobalNumRows() const =0
Returns the number of global rows in the graph.
virtual size_t getGlobalMaxNumRowEntries() const =0
Returns the maximum number of entries across all rows/columns on all nodes.
virtual global_size_t getGlobalNumCols() const =0
Returns the number of global columns in the graph.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const =0
The Map that describes this graph's distribution of rows over processes.
virtual void getGlobalRowCopy(const GlobalOrdinal gblRow, nonconst_global_inds_host_view_type &gblColInds, size_t &numColInds) const =0
Get a copy of the global column indices in a given row of the graph.
virtual size_t getNumEntriesInGlobalRow(GlobalOrdinal globalRow) const =0
Returns the current number of entries on this node in the specified global row.
virtual void getLocalRowCopy(const LocalOrdinal lclRow, nonconst_local_inds_host_view_type &lclColInds, size_t &numColInds) const =0
Get a copy of the local column indices in a given row of the graph.
virtual bool isGloballyIndexed() const =0
If graph indices are in the global range, this function returns true. Otherwise, this function return...
LocalOrdinal local_ordinal_type
The type of local indices in the graph.
virtual void getGlobalRowView(const GlobalOrdinal gblRow, global_inds_host_view_type &gblColInds) const =0
Get a const, non-persisting view of the given global row's global column indices, as a Teuchos::Array...
virtual void getLocalRowView(const LocalOrdinal lclRow, local_inds_host_view_type &lclColInds) const =0
Get a constant, nonpersisting, locally indexed view of the given row of the graph.
virtual Teuchos::RCP< const Teuchos::Comm< int > > getComm() const =0
The communicator over which this graph is distributed.
virtual void pack(const Teuchos::ArrayView< const LocalOrdinal > &exportLIDs, Teuchos::Array< GlobalOrdinal > &exports, const Teuchos::ArrayView< size_t > &numPacketsPerLID, size_t &constantNumPackets) const
Pack this object's data for Import or Export.
Node node_type
The Kokkos Node type.
virtual bool isLocallyIndexed() const =0
If graph indices are in the local range, this function returns true. Otherwise, this function returns...
Declaration of Tpetra::Packable.
Abstract base class for objects that can be the source of an Import or Export operation, and that also know how to pack their data to send to the target object.
virtual global_size_t getGlobalNumEntries() const =0
Returns the global number of entries in the graph.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const =0
The Map associated with the domain of this graph.