Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Details_packCrsMatrix_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_DETAILS_PACKCRSMATRIX_DECL_HPP
11 #define TPETRA_DETAILS_PACKCRSMATRIX_DECL_HPP
12 
13 #include "TpetraCore_config.h"
14 #include "Kokkos_DualView.hpp"
16 #include "Tpetra_CrsMatrix_fwd.hpp"
17 
39 
40 #ifndef DOXYGEN_SHOULD_SKIP_THIS
41 namespace Teuchos {
42 // Forward declaration of Array
43 template<class T> class Array;
44 // Forward declaration of ArrayView
45 template<class T> class ArrayView;
46 } // namespace Teuchos
47 #endif // DOXYGEN_SHOULD_SKIP_THIS
48 
49 namespace Tpetra {
50 
51 //
52 // Users must never rely on anything in the Details namespace.
53 //
54 namespace Details {
55 
87 template<typename ST, typename LO, typename GO, typename NT>
88 void
89 packCrsMatrix (const CrsMatrix<ST, LO, GO, NT>& sourceMatrix,
90  Teuchos::Array<char>& exports,
91  const Teuchos::ArrayView<size_t>& numPacketsPerLID,
92  const Teuchos::ArrayView<const LO>& exportLIDs,
93  size_t& constantNumPackets);
94 
124 template<typename ST, typename LO, typename GO, typename NT>
125 void
126 packCrsMatrixNew (const CrsMatrix<ST, LO, GO, NT>& sourceMatrix,
127  Kokkos::DualView<char*,
129  const Kokkos::DualView<size_t*,
130  typename DistObject<char, LO, GO, NT>::buffer_device_type>& numPacketsPerLID,
131  const Kokkos::DualView<const LO*,
133  size_t& constantNumPackets);
134 
166 template<typename ST, typename LO, typename GO, typename NT>
167 void
168 packCrsMatrixWithOwningPIDs (const CrsMatrix<ST, LO, GO, NT>& sourceMatrix,
169  Kokkos::DualView<char*, typename DistObject<char, LO, GO, NT>::buffer_device_type>& exports_dv,
170  const Teuchos::ArrayView<size_t>& numPacketsPerLID,
171  const Teuchos::ArrayView<const LO>& exportLIDs,
172  const Teuchos::ArrayView<const int>& sourcePIDs,
173  size_t& constantNumPackets);
174 
175 } // namespace Details
176 } // namespace Tpetra
177 
178 #endif // TPETRA_DETAILS_PACKCRSMATRIX_DECL_HPP
void packCrsMatrixNew(const CrsMatrix< ST, LO, GO, NT > &sourceMatrix, Kokkos::DualView< char *, typename DistObject< char, LO, GO, NT >::buffer_device_type > &exports, const Kokkos::DualView< size_t *, typename DistObject< char, LO, GO, NT >::buffer_device_type > &numPacketsPerLID, const Kokkos::DualView< const LO *, typename DistObject< char, LO, GO, NT >::buffer_device_type > &exportLIDs, size_t &constantNumPackets)
Pack specified entries of the given local sparse matrix for communication, for &quot;new&quot; DistObject inter...
Forward declaration of Tpetra::CrsMatrix.
void packCrsMatrix(const CrsMatrix< ST, LO, GO, NT > &sourceMatrix, Teuchos::Array< char > &exports, const Teuchos::ArrayView< size_t > &numPacketsPerLID, const Teuchos::ArrayView< const LO > &exportLIDs, size_t &constantNumPackets)
Pack specified entries of the given local sparse matrix for communication.
Declaration of the Tpetra::DistObject class.
Kokkos::Device< typename device_type::execution_space, buffer_memory_space > buffer_device_type
void packCrsMatrixWithOwningPIDs(const CrsMatrix< ST, LO, GO, NT > &sourceMatrix, Kokkos::DualView< char *, typename DistObject< char, LO, GO, NT >::buffer_device_type > &exports_dv, const Teuchos::ArrayView< size_t > &numPacketsPerLID, const Teuchos::ArrayView< const LO > &exportLIDs, const Teuchos::ArrayView< const int > &sourcePIDs, size_t &constantNumPackets)
Pack specified entries of the given local sparse matrix for communication.