42#ifndef TPETRA_IMPORTEXPORTDATA_DECL_HPP
43#define TPETRA_IMPORTEXPORTDATA_DECL_HPP
49#include "Tpetra_Distributor.hpp"
50#include "Teuchos_Array.hpp"
51#include "Teuchos_RCP.hpp"
53#ifndef DOXYGEN_SHOULD_SKIP_THIS
80 template<
class LocalOrdinal,
87 typedef Node node_type;
97 const Teuchos::RCP<const map_type>&
target);
105 const Teuchos::RCP<const map_type>&
target,
106 const Teuchos::RCP<Teuchos::FancyOStream>&
out);
114 const Teuchos::RCP<const map_type>&
target,
115 const Teuchos::RCP<Teuchos::ParameterList>&
plist);
124 const Teuchos::RCP<const map_type>&
target,
125 const Teuchos::RCP<Teuchos::FancyOStream>&
out,
126 const Teuchos::RCP<Teuchos::ParameterList>&
plist);
135 Teuchos::RCP<ImportExportData<LocalOrdinal, GlobalOrdinal, Node> >
reverseClone();
138 const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
source_;
141 const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
target_;
144 Teuchos::RCP<Teuchos::FancyOStream>
out_;
149 using execution_space =
typename Node::device_type::execution_space;
151 ::Tpetra::Details::DefaultTypes::comm_buffer_memory_space<typename Node::device_type>;
152 using device_type = Kokkos::Device<execution_space, memory_space>;
Forward declaration of Tpetra::Export.
Forward declaration of Tpetra::ImportExportData.
Forward declaration of Tpetra::Import.
Forward declaration of Tpetra::Map.
Struct that holds views of the contents of a CrsMatrix.
Sets up and executes a communication plan for a Tpetra DistObject.
Implementation detail of Import and Export.
Kokkos::DualView< LocalOrdinal *, device_type > permuteToLIDs_
Index of target Map LIDs to which to permute.
Teuchos::RCP< ImportExportData< LocalOrdinal, GlobalOrdinal, Node > > reverseClone()
Copy the data, but reverse the direction of the transfer as well as reversing the Distributor.
bool exportLIDsContiguous_
Whether the export LIDs are contiguous.
Distributor distributor_
Object that actually distributes (sends and receives) data.
const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > target_
Target Map of the Import or Export.
bool remoteLIDsContiguous_
Whether the remote LIDs are contiguous.
Kokkos::DualView< LocalOrdinal *, device_type > remoteLIDs_
"Incoming" indices.
bool verbose_
Whether to print verbose debugging output.
Kokkos::DualView< LocalOrdinal *, device_type > exportLIDs_
"Outgoing" local indices.
Teuchos::RCP< Teuchos::FancyOStream > out_
Output stream for verbose debugging output.
bool isLocallyComplete_
Is this Export or Import locally complete?
const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > source_
Source Map of the Import or Export.
size_t numSameIDs_
Number of initial identical indices.
Teuchos::Array< int > exportPIDs_
Ranks of the processes to which the source object sends data.
~ImportExportData()=default
Destructor.
Kokkos::DualView< LocalOrdinal *, device_type > permuteFromLIDs_
Index of source Map LIDs from which to permute.
A parallel distribution of indices over processes.
Namespace Tpetra contains the class and methods constituting the Tpetra library.