Tpetra parallel linear algebra Version of the Day
Loading...
Searching...
No Matches
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"
17
39
40#ifndef DOXYGEN_SHOULD_SKIP_THIS
41namespace Teuchos {
42// Forward declaration of Array
43template<class T> class Array;
44// Forward declaration of ArrayView
45template<class T> class ArrayView;
46} // namespace Teuchos
47#endif // DOXYGEN_SHOULD_SKIP_THIS
48
49namespace Tpetra {
50
51//
52// Users must never rely on anything in the Details namespace.
53//
54namespace Details {
55
87template<typename ST, typename LO, typename GO, typename NT>
88void
89packCrsMatrix (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
124template<typename ST, typename LO, typename GO, typename NT>
125void
126packCrsMatrixNew (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
166template<typename ST, typename LO, typename GO, typename NT>
167void
168packCrsMatrixWithOwningPIDs (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
Forward declaration of Tpetra::CrsMatrix.
Declaration of the Tpetra::DistObject class.
Kokkos::Device< typename device_type::execution_space, buffer_memory_space > buffer_device_type
Kokkos::Device specialization for communication buffers.
Nonmember function that computes a residual Computes R = B - A * X.
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.
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.
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 "new" DistObject inter...
Namespace Tpetra contains the class and methods constituting the Tpetra library.