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.
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.
Kokkos::StaticCrsGraph< local_ordinal_type, Kokkos::LayoutLeft, execution_space > local_graph_type
The type of the part of the sparse graph on each MPI process.
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.
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...