10#ifndef XPETRA_TPETRAIMPORT_DEF_HPP
11#define XPETRA_TPETRAIMPORT_DEF_HPP
18#include "Xpetra_TpetraMap.hpp"
19#include "Tpetra_Import.hpp"
20#include "Tpetra_Distributor.hpp"
24template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
28template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
32template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
36template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
39template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
46template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
49 return import_->getNumSameIDs();
52template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
55 return import_->getNumPermuteIDs();
58template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
61 return import_->getPermuteFromLIDs();
64template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
67 return import_->getPermuteToLIDs();
70template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
73 return import_->getNumRemoteIDs();
76template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
79 import_->getDistributor().setParameterList(params);
80 auto revDistor = import_->getDistributor().getReverse(
false);
81 if (!revDistor.is_null())
82 revDistor->setParameterList(params);
85template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
88 return import_->getRemoteLIDs();
91template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
94 return import_->getNumExportIDs();
97template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
100 return import_->getExportLIDs();
103template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
106 return import_->getExportPIDs();
109template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
112 return toXpetra(import_->getSourceMap());
115template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
118 return toXpetra(import_->getTargetMap());
121template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
127template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
131template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
#define XPETRA_MONITOR(funcName)
void setDistributorParameters(const Teuchos::RCP< Teuchos::ParameterList > params) const
Set parameters on distributor.
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getTargetMap() const
The Target Map used to construct this Import object.
RCP< const Tpetra::Import< LocalOrdinal, GlobalOrdinal, Node > > getTpetra_Import() const
ArrayView< const LocalOrdinal > getPermuteToLIDs() const
List of local IDs in the target Map that are permuted.
size_t getNumSameIDs() const
Number of initial identical IDs.
ArrayView< const LocalOrdinal > getExportLIDs() const
List of entries in the source Map that will be sent to other processes.
Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > createRemoteOnlyImport(const Teuchos::RCP< const map_type > &remoteTarget) const
Special "constructor".
~TpetraImport()
Destructor.
TpetraImport(const Teuchos::RCP< const map_type > &source, const Teuchos::RCP< const map_type > &target)
Construct an Import from the source and target Maps.
void print(std::ostream &os) const
Print the Import's data to the given output stream.
ArrayView< const LocalOrdinal > getPermuteFromLIDs() const
List of local IDs in the source Map that are permuted.
ArrayView< const LocalOrdinal > getRemoteLIDs() const
List of entries in the target Map to receive from other processes.
size_t getNumRemoteIDs() const
Number of entries not on the calling process.
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getSourceMap() const
The Source Map used to construct this Import object.
ArrayView< const int > getExportPIDs() const
List of processes to which entries will be sent.
size_t getNumPermuteIDs() const
Number of IDs to permute but not to communicate.
size_t getNumExportIDs() const
Number of entries that must be sent by the calling process to other processes.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toXpetra(RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > graph)
RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toTpetra(const RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph)