40#ifndef TPETRA_DETAILS_UNPACKCRSMATRIXANDCOMBINE_DECL_HPP
41#define TPETRA_DETAILS_UNPACKCRSMATRIXANDCOMBINE_DECL_HPP
43#include "TpetraCore_config.h"
45#include "Kokkos_DualView.hpp"
70#ifndef DOXYGEN_SHOULD_SKIP_THIS
73template<
class T>
class Array;
75template<
class T>
class ArrayView;
124template<
typename ST,
typename LO,
typename GO,
typename NT>
127 const Teuchos::ArrayView<const char>& imports,
128 const Teuchos::ArrayView<const size_t>& numPacketsPerLID,
129 const Teuchos::ArrayView<const LO>& importLIDs,
130 size_t constantNumPackets,
133template<
typename ST,
typename LO,
typename GO,
typename NT>
135unpackCrsMatrixAndCombineNew(
137 Kokkos::DualView<
char*,
139 Kokkos::DualView<
size_t*,
141 const Kokkos::DualView<
const LO*,
143 const size_t constantNumPackets,
201template<
typename Scalar,
typename LocalOrdinal,
typename GlobalOrdinal,
typename Node>
205 const Teuchos::ArrayView<const LocalOrdinal> &importLIDs,
206 const Teuchos::ArrayView<const char> &imports,
207 const Teuchos::ArrayView<const size_t>& numPacketsPerLID,
208 size_t constantNumPackets,
211 const Teuchos::ArrayView<const LocalOrdinal>& permuteToLIDs,
212 const Teuchos::ArrayView<const LocalOrdinal>& permuteFromLIDs);
228template<
typename Scalar,
typename LocalOrdinal,
typename GlobalOrdinal,
typename Node>
232 const Teuchos::ArrayView<const LocalOrdinal>& importLIDs,
233 const Teuchos::ArrayView<const char>& imports,
234 const Teuchos::ArrayView<const size_t>& numPacketsPerLID,
235 const size_t constantNumPackets,
237 const size_t numSameIDs,
238 const Teuchos::ArrayView<const LocalOrdinal>& permuteToLIDs,
239 const Teuchos::ArrayView<const LocalOrdinal>& permuteFromLIDs,
240 size_t TargetNumRows,
241 size_t TargetNumNonzeros,
242 const int MyTargetPID,
243 const Teuchos::ArrayView<size_t>& CRS_rowptr,
244 const Teuchos::ArrayView<GlobalOrdinal>& CRS_colind,
246 const Teuchos::ArrayView<const int>& SourcePids,
247 Teuchos::Array<int>& TargetPids);
Declaration of Tpetra::CombineMode enum, and a function for setting a Tpetra::CombineMode parameter i...
Forward declaration of Tpetra::CrsMatrix.
Declaration of the Tpetra::DistObject class.
Sparse matrix that presents a row-oriented interface that lets users read or modify entries.
typename row_matrix_type::impl_scalar_type impl_scalar_type
The type used internally in place of Scalar.
Kokkos::Device< typename device_type::execution_space, buffer_memory_space > buffer_device_type
Kokkos::Device specialization for communication buffers.
Implementation details of Tpetra.
void unpackAndCombineIntoCrsArrays(const CrsGraph< LO, GO, NT > &sourceGraph, const Teuchos::ArrayView< const LO > &importLIDs, const Teuchos::ArrayView< const typename CrsGraph< LO, GO, NT >::packet_type > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, const size_t constantNumPackets, const CombineMode combineMode, const size_t numSameIDs, const Teuchos::ArrayView< const LO > &permuteToLIDs, const Teuchos::ArrayView< const LO > &permuteFromLIDs, size_t TargetNumRows, size_t TargetNumNonzeros, const int MyTargetPID, const Teuchos::ArrayView< size_t > &CRS_rowptr, const Teuchos::ArrayView< GO > &CRS_colind, const Teuchos::ArrayView< const int > &SourcePids, Teuchos::Array< int > &TargetPids)
unpackAndCombineIntoCrsArrays
size_t unpackAndCombineWithOwningPIDsCount(const CrsGraph< LO, GO, NT > &sourceGraph, const Teuchos::ArrayView< const LO > &importLIDs, const Teuchos::ArrayView< const typename CrsGraph< LO, GO, NT >::packet_type > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, size_t constantNumPackets, CombineMode combineMode, size_t numSameIDs, const Teuchos::ArrayView< const LO > &permuteToLIDs, const Teuchos::ArrayView< const LO > &permuteFromLIDs)
Special version of Tpetra::Details::unpackCrsGraphAndCombine that also unpacks owning process ranks.
void unpackCrsMatrixAndCombine(const CrsMatrix< ST, LO, GO, NT > &sourceMatrix, const Teuchos::ArrayView< const char > &imports, const Teuchos::ArrayView< const size_t > &numPacketsPerLID, const Teuchos::ArrayView< const LO > &importLIDs, size_t constantNumPackets, CombineMode combineMode)
Unpack the imported column indices and values, and combine into matrix.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
CombineMode
Rule for combining data in an Import or Export.