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 
   48template <
class LocalOrdinal,
 
   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>;
 
 
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.
 
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.
 
const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > target_
Target Map of the Import or Export.
 
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.