10 #ifndef XPETRA_IMPORT_HPP
11 #define XPETRA_IMPORT_HPP
15 #include <Tpetra_KokkosCompat_DefaultNode.hpp>
16 #include <Teuchos_Describable.hpp>
17 #include <Teuchos_as.hpp>
18 #include "Xpetra_Map.hpp"
23 template <
class LocalOrdinal,
25 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
27 :
public Teuchos::Describable {
41 virtual Teuchos::RCP<const Import<LocalOrdinal, GlobalOrdinal, Node> >
65 virtual ArrayView<const LocalOrdinal>
getRemoteLIDs()
const = 0;
71 virtual ArrayView<const LocalOrdinal>
getExportLIDs()
const = 0;
77 virtual Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node> >
getSourceMap()
const = 0;
80 virtual Teuchos::RCP<const Map<LocalOrdinal, GlobalOrdinal, Node> >
getTargetMap()
const = 0;
91 virtual void print(std::ostream& os)
const = 0;
99 #define XPETRA_IMPORT_SHORT
100 #endif // XPETRA_IMPORT_HPP
virtual ~Import()
Destructor.
virtual ArrayView< const LocalOrdinal > getPermuteFromLIDs() const =0
List of local IDs in the source Map that are permuted.
virtual size_t getNumExportIDs() const =0
Number of entries that must be sent by the calling process to other processes.
LocalOrdinal local_ordinal_type
virtual ArrayView< const LocalOrdinal > getExportLIDs() const =0
List of entries in the source Map that will be sent to other processes.
virtual void print(std::ostream &os) const =0
Print the Import's data to the given output stream.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
GlobalOrdinal global_ordinal_type
virtual ArrayView< const LocalOrdinal > getRemoteLIDs() const =0
List of entries in the target Map to receive from other processes.
virtual ArrayView< const LocalOrdinal > getPermuteToLIDs() const =0
List of local IDs in the target Map that are permuted.
virtual size_t getNumRemoteIDs() const =0
Number of entries not on the calling process.
virtual size_t getNumSameIDs() const =0
Number of initial identical IDs.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getTargetMap() const =0
The Target Map used to construct this Import object.
virtual Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getSourceMap() const =0
The Source Map used to construct this Import object.
virtual size_t getNumPermuteIDs() const =0
Number of IDs to permute but not to communicate.
virtual Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > createRemoteOnlyImport(const Teuchos::RCP< const map_type > &remoteTarget) const =0
Special "constructor".
virtual void setDistributorParameters(const Teuchos::RCP< Teuchos::ParameterList > params) const =0
Set parameters on the underlying object.
virtual ArrayView< const int > getExportPIDs() const =0
List of processes to which entries will be sent.