10 #ifndef TPETRA_IMPORTEXPORTDATA_DECL_HPP
11 #define TPETRA_IMPORTEXPORTDATA_DECL_HPP
17 #include "Tpetra_Distributor.hpp"
18 #include "Teuchos_Array.hpp"
19 #include "Teuchos_RCP.hpp"
21 #ifndef DOXYGEN_SHOULD_SKIP_THIS
25 #endif // DOXYGEN_SHOULD_SKIP_THIS
48 template<
class LocalOrdinal,
53 typedef LocalOrdinal local_ordinal_type;
54 typedef GlobalOrdinal global_ordinal_type;
55 typedef Node node_type;
65 const Teuchos::RCP<const map_type>& target);
73 const Teuchos::RCP<const map_type>& target,
74 const Teuchos::RCP<Teuchos::FancyOStream>& out);
82 const Teuchos::RCP<const map_type>& target,
83 const Teuchos::RCP<Teuchos::ParameterList>& plist);
92 const Teuchos::RCP<const map_type>& target,
93 const Teuchos::RCP<Teuchos::FancyOStream>& out,
94 const Teuchos::RCP<Teuchos::ParameterList>& plist);
103 Teuchos::RCP<ImportExportData<LocalOrdinal, GlobalOrdinal, Node> >
reverseClone();
106 const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
source_;
109 const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >
target_;
112 Teuchos::RCP<Teuchos::FancyOStream>
out_;
117 using execution_space =
typename Node::device_type::execution_space;
119 ::Tpetra::Details::DefaultTypes::comm_buffer_memory_space<typename Node::device_type>;
120 using device_type = Kokkos::Device<execution_space, memory_space>;
223 #endif // TPETRA_IMPORTEXPORTDATA_DECL_HPP
size_t numSameIDs_
Number of initial identical indices.
bool isLocallyComplete_
Is this Export or Import locally complete?
Kokkos::DualView< LocalOrdinal *, device_type > permuteFromLIDs_
Index of source Map LIDs from which to permute.
Forward declaration of Tpetra::ImportExportData.
Teuchos::Array< int > exportPIDs_
Ranks of the processes to which the source object sends data.
Forward declaration of Tpetra::Export.
Kokkos::DualView< LocalOrdinal *, device_type > exportLIDs_
"Outgoing" local indices.
bool remoteLIDsContiguous_
Whether the remote LIDs are contiguous.
Kokkos::DualView< LocalOrdinal *, device_type > remoteLIDs_
"Incoming" indices.
Forward declaration of Tpetra::Import.
Implementation detail of Import and Export.
Sets up and executes a communication plan for a Tpetra DistObject.
bool verbose_
Whether to print verbose debugging output.
~ImportExportData()=default
Destructor.
Teuchos::RCP< Teuchos::FancyOStream > out_
Output stream for verbose debugging output.
A parallel distribution of indices over processes.
const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > target_
Target Map of the Import or Export.
Distributor distributor_
Object that actually distributes (sends and receives) data.
const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > source_
Source Map of the Import or Export.
bool exportLIDsContiguous_
Whether the export LIDs are contiguous.
Forward declaration of Tpetra::Map.
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...