92class FECrsGraph :
public CrsGraph<LocalOrdinal, GlobalOrdinal, Node> {
96 template <
class S,
class LO,
class GO,
class N>
97 friend class FECrsMatrix;
151 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
152 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
153 const size_t maxNumEntriesPerRow,
154 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
155 const Teuchos::RCP<const map_type>& domainMap = Teuchos::null,
156 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
157 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
185 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
186 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
187 const size_t maxNumEntriesPerRow,
188 const Teuchos::RCP<const map_type>& ownedPlusSharedDomainMap,
189 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
190 const Teuchos::RCP<const map_type>& ownedDomainMap = Teuchos::null,
191 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
192 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
217 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
218 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
219 const Kokkos::DualView<const size_t*, device_type>& numEntPerRow,
220 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
221 const Teuchos::RCP<const map_type>& domainMap = Teuchos::null,
222 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
223 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
251 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
252 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
253 const Kokkos::DualView<const size_t*, device_type>& numEntPerRow,
254 const Teuchos::RCP<const map_type>& ownedPlusSharedDomainMap,
255 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
256 const Teuchos::RCP<const map_type>& ownedDomainMap = Teuchos::null,
257 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
258 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
285 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
286 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
287 const Teuchos::RCP<const map_type>& ownedPlusSharedColMap,
288 const size_t maxNumEntriesPerRow,
289 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
290 const Teuchos::RCP<const map_type>& domainMap = Teuchos::null,
291 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
292 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
321 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
322 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
323 const Teuchos::RCP<const map_type>& ownedPlusSharedColMap,
324 const size_t maxNumEntriesPerRow,
325 const Teuchos::RCP<const map_type>& ownedPlusSharedDomainMap,
326 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
327 const Teuchos::RCP<const map_type>& ownedDomainMap = Teuchos::null,
328 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
329 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
356 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
357 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
358 const Teuchos::RCP<const map_type>& ownedPlusSharedColMap,
359 const Kokkos::DualView<const size_t*, device_type>& numEntPerRow,
360 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
361 const Teuchos::RCP<const map_type>& domainMap = Teuchos::null,
362 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
363 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
391 FECrsGraph(
const Teuchos::RCP<const map_type>& ownedRowMap,
392 const Teuchos::RCP<const map_type>& ownedPlusSharedRowMap,
393 const Teuchos::RCP<const map_type>& ownedPlusSharedColMap,
394 const Kokkos::DualView<const size_t*, device_type>& numEntPerRow,
395 const Teuchos::RCP<const map_type>& ownedPlusSharedDomainMap,
396 const Teuchos::RCP<const import_type>& ownedPlusSharedToOwnedimporter = Teuchos::null,
397 const Teuchos::RCP<const map_type>& ownedDomainMap = Teuchos::null,
398 const Teuchos::RCP<const map_type>& ownedRangeMap = Teuchos::null,
399 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
430 Teuchos::RCP<const Teuchos::ParameterList>
439 void endAssembly(
const Teuchos::RCP<const map_type>& domainMap,
const Teuchos::RCP<const map_type>& rangeMap);
483 const Teuchos::RCP<const map_type>& ownedRangeMap,
484 const Teuchos::RCP<Teuchos::ParameterList>& = Teuchos::null) {
485 ownedDomainMap_ = ownedDomainMap;
486 ownedRangeMap_ = ownedRangeMap;
518 fillComplete(
const Teuchos::RCP<Teuchos::ParameterList>& = Teuchos::null) { endFill(); }
523 void endFill(
const Teuchos::RCP<const map_type>& domainMap,
const Teuchos::RCP<const map_type>& rangeMap);
544 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);
550 Teuchos::RCP<FE::FillState> fillState_;
553 Teuchos::RCP<CrsGraph<LocalOrdinal, GlobalOrdinal, Node> > inactiveCrsGraph_;
556 Teuchos::RCP<FE::WhichActive> activeCrsGraph_;
559 Teuchos::RCP<const import_type> ownedRowsImporter_;
562 Teuchos::RCP<const map_type> ownedDomainMap_;
565 Teuchos::RCP<const map_type> ownedRangeMap_;
578 const size_t numInputInds);
592 const size_t numInputInds,
593 std::function<
void(
const size_t,
const size_t,
const size_t)> fun =
594 std::function<
void(
const size_t,
const size_t,
const size_t)>());
598 const Teuchos::ArrayView<const local_ordinal_type>& gblColInds,
599 std::function<
void(
const size_t,
const size_t,
const size_t)> fun =
600 std::function<
void(
const size_t,
const size_t,
const size_t)>());