42 #ifndef TPETRA_EXPORT_DECL_HPP 43 #define TPETRA_EXPORT_DECL_HPP 45 #include <Tpetra_Details_Transfer.hpp> 53 #ifndef DOXYGEN_SHOULD_SKIP_THIS 54 template<
class LocalOrdinal,
class GlobalOrdinal,
class Node>
55 class ImportExportData;
57 template<
class LocalOrdinal,
class GlobalOrdinal,
class Node>
59 #endif // DOXYGEN_SHOULD_SKIP_THIS 122 class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type,
128 friend class Import<LocalOrdinal,GlobalOrdinal,Node>;
131 typedef ::Tpetra::Map<LocalOrdinal, GlobalOrdinal, Node>
map_type;
143 Export (
const Teuchos::RCP<const map_type>& source,
144 const Teuchos::RCP<const map_type>& target);
156 Export (
const Teuchos::RCP<const map_type>& source,
157 const Teuchos::RCP<const map_type>& target,
158 const Teuchos::RCP<Teuchos::FancyOStream>& out);
172 Export (
const Teuchos::RCP<const map_type>& source,
173 const Teuchos::RCP<const map_type>& target,
174 const Teuchos::RCP<Teuchos::ParameterList>& plist);
191 Export (
const Teuchos::RCP<const map_type>& source,
192 const Teuchos::RCP<const map_type>& target,
193 const Teuchos::RCP<Teuchos::FancyOStream>& out,
194 const Teuchos::RCP<Teuchos::ParameterList>& plist);
247 Teuchos::ArrayView<const LocalOrdinal>
getRemoteLIDs()
const;
253 Teuchos::ArrayView<const LocalOrdinal>
getExportLIDs()
const;
311 describe (Teuchos::FancyOStream& out,
312 const Teuchos::EVerbosityLevel verbLevel =
313 Teuchos::Describable::verbLevel_default)
const;
330 virtual void print (std::ostream& os)
const;
336 Teuchos::RCP<ImportExportData<LocalOrdinal,GlobalOrdinal,Node> > ExportData_;
338 Teuchos::RCP<Teuchos::FancyOStream> out_;
349 void setupSamePermuteExport(Teuchos::Array<GlobalOrdinal> & exportGIDs);
350 void setupRemote(Teuchos::Array<GlobalOrdinal> & exportGIDs);
364 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
365 Teuchos::RCP<const Export<LocalOrdinal, GlobalOrdinal, Node> >
370 return Teuchos::null;
372 #ifdef HAVE_TPETRA_DEBUG 373 TEUCHOS_TEST_FOR_EXCEPTION(
374 src == Teuchos::null || tgt == Teuchos::null, std::runtime_error,
375 "Tpetra::createExport(): neither source nor target map may be null:" 376 << std::endl <<
"source: " << src << std::endl <<
"target: " << tgt
378 #endif // HAVE_TPETRA_DEBUG 384 #endif // TPETRA_EXPORT_DECL_HPP Communication plan for data redistribution from a uniquely-owned to a (possibly) multiply-owned distr...
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Teuchos::ArrayView< const LocalOrdinal > getExportLIDs() const
List of entries in the source Map that will be sent to other processes.
Common base class of Import and Export.
Distributor & getDistributor() const
The Distributor that this Export object uses to move data.
KokkosClassic::DefaultNode::DefaultNodeType node_type
Default value of Node template parameter.
size_t getNumSameIDs() const
Number of initial identical IDs.
size_t getNumExportIDs() const
Number of entries that must be sent by the calling process to other processes.
bool isLocallyComplete() const
Do all source Map indices on the calling process exist on at least one process (not necessarily this ...
size_t getNumPermuteIDs() const
Number of IDs to permute but not to communicate.
Teuchos::ArrayView< const int > getExportPIDs() const
List of processes to which entries will be sent.
Teuchos::ArrayView< const LocalOrdinal > getPermuteFromLIDs() const
List of local IDs in the source Map that are permuted.
Teuchos::RCP< const map_type > getSourceMap() const
The source Map used to construct this Export.
int local_ordinal_type
Default value of LocalOrdinal template parameter.
Export(const Teuchos::RCP< const map_type > &source, const Teuchos::RCP< const map_type > &target)
Construct a Export object from the source and target Map.
Export< LocalOrdinal, GlobalOrdinal, Node > & operator=(const Export< LocalOrdinal, GlobalOrdinal, Node > &rhs)
Assignment operator.
Teuchos::ArrayView< const LocalOrdinal > getPermuteToLIDs() const
List of local IDs in the target Map that are permuted.
size_t getNumRemoteIDs() const
Number of entries not on the calling process.
Communication plan for data redistribution from a (possibly) multiply-owned to a uniquely-owned distr...
Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > createExport(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &src, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &tgt)
Non-member constructor for Export objects.
Sets up and executes a communication plan for a Tpetra DistObject.
Describes a parallel distribution of objects over processes.
::Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The specialization of Map used by this class.
virtual void print(std::ostream &os) const
Print the Export's data to the given output stream.
virtual ~Export()
Destructor.
Teuchos::ArrayView< const LocalOrdinal > getRemoteLIDs() const
List of entries in the target Map to receive from other processes.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &plist)
Set parameters.
Teuchos::RCP< const map_type > getTargetMap() const
The target Map used to construct this Export.
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.