10#ifndef TPETRA_DETAILS_TRANSFER_DECL_HPP 
   11#define TPETRA_DETAILS_TRANSFER_DECL_HPP 
   16#include "Teuchos_Describable.hpp" 
   22#ifndef DOXYGEN_SHOULD_SKIP_THIS 
   28#ifndef DOXYGEN_SHOULD_SKIP_THIS 
   31template <
class LO, 
class GO, 
class NT>
 
   32void expertSetRemoteLIDsContiguous(Transfer<LO, GO, NT> transfer, 
bool contig);
 
   36template <
class LO, 
class GO, 
class NT>
 
   37void expertSetExportLIDsContiguous(Transfer<LO, GO, NT> transfer, 
bool contig);
 
   56  using execution_space = 
typename NT::device_type::execution_space;
 
   58      ::Tpetra::Details::DefaultTypes::comm_buffer_memory_space<typename NT::device_type>;
 
   59  using device_type = Kokkos::Device<execution_space, memory_space>;
 
   82           const Teuchos::RCP<const map_type>& 
target,
 
   83           const Teuchos::RCP<Teuchos::FancyOStream>& 
out,
 
   84           const Teuchos::RCP<Teuchos::ParameterList>& 
plist,
 
   89  struct reverse_tag {};
 
  184  void detectRemoteExportLIDsContiguous() 
const;
 
  186  bool areRemoteLIDsContiguous() 
const;
 
  188  bool areExportLIDsContiguous() 
const;
 
  190#ifndef DOXYGEN_SHOULD_SKIP_THIS 
  228           const Teuchos::EVerbosityLevel 
verbLevel =
 
  229               Teuchos::Describable::verbLevel_default) 
const;
 
  257               const Teuchos::EVerbosityLevel 
verbLevel =
 
  258                   Teuchos::Describable::verbLevel_default) 
const;
 
  269  setParameterList(
const Teuchos::RCP<Teuchos::ParameterList>& 
plist,
 
  279  globalDescribe(Teuchos::FancyOStream& 
out,
 
  280                 const Teuchos::EVerbosityLevel 
vl) 
const;
 
  287  localDescribeToString(
const Teuchos::EVerbosityLevel 
vl) 
const;
 
 
  300#define TPETRA_DETAILS_TRANSFER_INSTANT(LO, GO, NODE)                                                      \ 
  301  template class Transfer<LO, GO, NODE>;                                                                   \ 
  302  template void expertSetRemoteLIDsContiguous<LO, GO, NODE>(Transfer<LO, GO, NODE> transfer, bool contig); \ 
  303  template void expertSetExportLIDsContiguous<LO, GO, NODE>(Transfer<LO, GO, NODE> transfer, bool contig); 
Forward declaration of Tpetra::Details::Transfer.
 
Forward declaration of Tpetra::ImportExportData.
 
Declaration of the Tpetra::Map class and related nonmember constructors.
 
Struct that holds views of the contents of a CrsMatrix.
 
Common base class of Import and Export.
 
size_t getNumPermuteIDs() const
Number of IDs to permute but not to communicate.
 
Kokkos::DualView< const LO *, device_type > getPermuteFromLIDs_dv() const
List of local IDs in the source Map that are permuted, as a const DualView (that is sync'd to both ho...
 
size_t getNumSameIDs() const
Number of initial identical IDs.
 
Kokkos::DualView< const LO *, device_type > getPermuteToLIDs_dv() const
List of local IDs in the target Map that are permuted, as a const DualView (that is sync'd to both ho...
 
Teuchos::RCP< const map_type > getTargetMap() const
The target Map used to construct this Export or Import.
 
Teuchos::ArrayView< const LO > getExportLIDs() const
List of entries in the source Map that will be sent to other processes.
 
virtual ~Transfer()=default
Destructor (declared virtual for memory safety of derived classes).
 
size_t getNumExportIDs() const
Number of entries that must be sent by the calling process to other processes.
 
size_t getNumRemoteIDs() const
Number of entries not on the calling process.
 
Teuchos::ArrayView< const LO > getRemoteLIDs() const
List of entries in the target Map to receive from other processes.
 
Teuchos::ArrayView< const LO > getPermuteFromLIDs() const
List of local IDs in the source Map that are permuted.
 
bool verbose() const
Whether to print verbose debugging output.
 
bool isLocallyComplete() const
Is this Export or Import locally complete?
 
Teuchos::ArrayView< const LO > getPermuteToLIDs() const
List of local IDs in the target Map that are permuted.
 
Teuchos::ArrayView< const int > getExportPIDs() const
List of processes to which entries will be sent.
 
Teuchos::RCP< ImportExportData< LO, GO, NT > > TransferData_
All the data needed for executing the Export communication plan.
 
bool isLocallyFitted() const
Are source and target map locally fitted?
 
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Describe this object in a human-readable way to the given output stream.
 
Teuchos::FancyOStream & verboseOutputStream() const
Valid (nonnull) output stream for verbose output.
 
Kokkos::DualView< const LO *, device_type > getRemoteLIDs_dv() const
List of entries in the target Map to receive from other processes, as a const DualView (that is sync'...
 
::Tpetra::Distributor & getDistributor() const
The Distributor that this Export or Import object uses to move data.
 
void describeImpl(Teuchos::FancyOStream &out, const std::string &className, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Implementation of describe() for subclasses (Tpetra::Import and Tpetra::Export).
 
Teuchos::RCP< const map_type > getSourceMap() const
The source Map used to construct this Export or Import.
 
Kokkos::DualView< const LO *, device_type > getExportLIDs_dv() const
List of entries in the source Map that will be sent to other processes, as a const DualView (that is ...
 
Sets up and executes a communication plan for a Tpetra DistObject.
 
Implementation details of Tpetra.
 
Namespace Tpetra contains the class and methods constituting the Tpetra library.