|
Tpetra parallel linear algebra
Version of the Day
|
42 #ifndef TPETRA_EXPORT_DECL_HPP
43 #define TPETRA_EXPORT_DECL_HPP
45 #include "Tpetra_Details_Transfer.hpp"
49 #include "Teuchos_ArrayView.hpp"
50 #include "Teuchos_RCP.hpp"
52 #ifndef DOXYGEN_SHOULD_SKIP_THIS
54 template<
class T>
class Array;
57 #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);
365 template <
class LocalOrdinal,
class GlobalOrdinal,
class Node>
366 Teuchos::RCP<const Export<LocalOrdinal, GlobalOrdinal, Node> >
371 return Teuchos::null;
373 #ifdef HAVE_TPETRA_DEBUG
374 TEUCHOS_TEST_FOR_EXCEPTION(
375 src == Teuchos::null || tgt == Teuchos::null, std::runtime_error,
376 "Tpetra::createExport(): neither source nor target map may be null:"
377 << std::endl <<
"source: " << src << std::endl <<
"target: " << tgt
379 #endif // HAVE_TPETRA_DEBUG
385 #endif // TPETRA_EXPORT_DECL_HPP
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &plist)
Set parameters.
Forward declaration of Tpetra::Export.
size_t getNumRemoteIDs() const
Number of entries not on the calling process.
::Kokkos::Compat::KokkosDeviceWrapperNode< execution_space > node_type
Default value of Node template parameter.
Forward declaration of Tpetra::Import.
Distributor & getDistributor() const
The Distributor that this Export object uses to move data.
virtual ~Export()
Destructor.
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.
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.
Teuchos::ArrayView< const LocalOrdinal > getRemoteLIDs() const
List of entries in the target Map to receive from other processes.
Teuchos::RCP< const map_type > getTargetMap() const
The target Map used to construct this Export.
Teuchos::ArrayView< const LocalOrdinal > getPermuteToLIDs() const
List of local IDs in the target Map that are permuted.
Communication plan for data redistribution from a uniquely-owned to a (possibly) multiply-owned distr...
Sets up and executes a communication plan for a Tpetra DistObject.
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.
::Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The specialization of Map used by this class.
int local_ordinal_type
Default value of Scalar template parameter.
virtual void print(std::ostream &os) const
Print the Export's data to the given output stream.
Common base class of Import and Export.
Teuchos::ArrayView< const LocalOrdinal > getExportLIDs() const
List of entries in the source Map that will be sent to other processes.
A parallel distribution of indices over processes.
Teuchos::ArrayView< const int > getExportPIDs() const
List of processes to which entries will be sent.
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.
size_t getNumSameIDs() const
Number of initial identical IDs.
Forward declaration of Tpetra::ImportExportData.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
size_t getNumExportIDs() const
Number of entries that must be sent by the calling process to other processes.
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.
Communication plan for data redistribution from a (possibly) multiply-owned to a uniquely-owned distr...
Export< LocalOrdinal, GlobalOrdinal, Node > & operator=(const Export< LocalOrdinal, GlobalOrdinal, Node > &rhs)
Assignment operator.