42 #ifndef TPETRA_FECRSGRAPH_DECL_HPP
43 #define TPETRA_FECRSGRAPH_DECL_HPP
77 template <
class LocalOrdinal,
81 public CrsGraph<LocalOrdinal, GlobalOrdinal, Node>
86 template <
class S,
class LO,
class GO,
class N>
87 friend class FECrsMatrix;
140 FECrsGraph(
const Teuchos::RCP<const map_type> & ownedRowMap,
141 const Teuchos::RCP<const map_type> & ownedPlusSharedRowMap,
142 const size_t maxNumEntriesPerRow,
143 const Teuchos::RCP<const import_type> & ownedPlusSharedToOwnedimporter = Teuchos::null,
144 const Teuchos::RCP<const map_type> & domainMap = Teuchos::null,
145 const Teuchos::RCP<const map_type> & rangeMap = Teuchos::null,
146 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
171 FECrsGraph (
const Teuchos::RCP<const map_type> & ownedRowMap,
172 const Teuchos::RCP<const map_type> & ownedPlusSharedRowMap,
173 const Kokkos::DualView<const size_t*, execution_space>& numEntPerRow,
174 const Teuchos::RCP<const import_type> & ownedPlusSharedToOwnedimporter = Teuchos::null,
175 const Teuchos::RCP<const map_type> & domainMap = Teuchos::null,
176 const Teuchos::RCP<const map_type> & rangeMap = Teuchos::null,
177 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
205 FECrsGraph(
const Teuchos::RCP<const map_type> & ownedRowMap,
206 const Teuchos::RCP<const map_type> & ownedPlusSharedRowMap,
207 const Teuchos::RCP<const map_type> & ownedPlusSharedColMap,
208 const size_t maxNumEntriesPerRow,
209 const Teuchos::RCP<const import_type> & ownedPlusSharedToOwnedimporter = Teuchos::null,
210 const Teuchos::RCP<const map_type> & domainMap = Teuchos::null,
211 const Teuchos::RCP<const map_type> & rangeMap = Teuchos::null,
212 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
238 FECrsGraph (
const Teuchos::RCP<const map_type> & ownedRowMap,
239 const Teuchos::RCP<const map_type> & ownedPlusSharedRowMap,
240 const Teuchos::RCP<const map_type> & ownedPlusSharedColMap,
241 const Kokkos::DualView<const size_t*, execution_space>& numEntPerRow,
242 const Teuchos::RCP<const import_type> & ownedPlusSharedToOwnedimporter = Teuchos::null,
243 const Teuchos::RCP<const map_type> & domainMap = Teuchos::null,
244 const Teuchos::RCP<const map_type> & rangeMap = Teuchos::null,
245 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
321 const Teuchos::RCP<const map_type>& rangeMap,
322 const Teuchos::RCP<Teuchos::ParameterList>& = Teuchos::null) {
323 domainMap_ = domainMap;
324 rangeMap_ = rangeMap;
377 void setup(
const Teuchos::RCP<const map_type> & ownedRowMap,
const Teuchos::RCP<const map_type> & ownedPlusSharedRowMap,
const Teuchos::RCP<const map_type> & ownedPlusSharedColMap,
const Teuchos::RCP<Teuchos::ParameterList>& params);
383 FE_ACTIVE_OWNED_PLUS_SHARED
388 Teuchos::RCP<CrsGraph<LocalOrdinal, GlobalOrdinal, Node> > inactiveCrsGraph_;
390 Teuchos::RCP<FEWhichActive> activeCrsGraph_;
393 Teuchos::RCP<const import_type> importer_;
396 Teuchos::RCP<const map_type> domainMap_;
399 Teuchos::RCP<const map_type> rangeMap_;
407 #endif // TPETRA_FECRSGRAPH_DECL_HPP
Communication plan for data redistribution from a uniquely-owned to a (possibly) multiply-owned distr...
A distributed graph accessed by rows (adjacency lists) and stored sparsely.
Kokkos::StaticCrsGraph< local_ordinal_type, Kokkos::LayoutLeft, device_type > local_graph_type
The type of the part of the sparse graph on each MPI process.
CrsGraph< LocalOrdinal, GlobalOrdinal, Node >::device_type device_type
The Kokkos device type.
void endFill()
Migrates data to the owned mode.
Declaration of the Tpetra::CrsGraph class.
CrsGraph< LocalOrdinal, GlobalOrdinal, Node >::local_graph_type local_graph_type
The type of the part of the sparse graph on each MPI process.
FECrsGraph & operator=(const FECrsGraph< LocalOrdinal, GlobalOrdinal, Node > &)=delete
Copy assignment (forbidden).
CrsGraph< LocalOrdinal, GlobalOrdinal, Node >::execution_space execution_space
The Kokkos execution space.
Communication plan for data redistribution from a (possibly) multiply-owned to a uniquely-owned distr...
void beginFill()
Activates the owned+shared mode for assembly. This can only be called once.
CombineMode
Rule for combining data in an Import or Export.
Sum new values into existing values.
typename device_type::execution_space execution_space
This class' Kokkos execution space.
void switchActiveCrsGraph()
Switches which CrsGraph is active (without migrating data)
CrsGraph< LocalOrdinal, GlobalOrdinal, Node > crs_graph_type
Parent class.
void fillComplete(const Teuchos::RCP< Teuchos::ParameterList > &=Teuchos::null)
Tell the graph that you are done changing its structure; set default domain and range Maps...
A distributed graph accessed by rows (adjacency lists) and stored sparsely.
A parallel distribution of indices over processes.
Forward declaration of Tpetra::FECrsGraph.
typename Node::device_type device_type
This class' Kokkos device type.
void fillComplete(const Teuchos::RCP< const map_type > &domainMap, const Teuchos::RCP< const map_type > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &=Teuchos::null)
Tell the graph that you are done changing its structure.
LocalOrdinal local_ordinal_type
This class' first template parameter; the type of local indices.
GlobalOrdinal global_ordinal_type
This class' second template parameter; the type of global indices.
Node node_type
This class' Kokkos Node type.
virtual ~FECrsGraph()=default
Destructor (virtual for memory safety of derived classes).
FECrsGraph(const Teuchos::RCP< const map_type > &ownedRowMap, const Teuchos::RCP< const map_type > &ownedPlusSharedRowMap, const size_t maxNumEntriesPerRow, const Teuchos::RCP< const import_type > &ownedPlusSharedToOwnedimporter=Teuchos::null, const Teuchos::RCP< const map_type > &domainMap=Teuchos::null, const Teuchos::RCP< const map_type > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructorfor globally-indexed assembly specifying a single upper bound for the number of entries in...