42 #ifndef TPETRA_DIRECTORY_DECL_HPP 43 #define TPETRA_DIRECTORY_DECL_HPP 45 #include <Kokkos_DefaultNode.hpp> 46 #include <Teuchos_Describable.hpp> 47 #include "Tpetra_ConfigDefs.hpp" 125 class GlobalOrdinal = Details::DefaultTypes::global_ordinal_type,
173 template <
class Node2>
174 RCP<Directory<LocalOrdinal,GlobalOrdinal,Node2> >
177 typedef LocalOrdinal LO;
178 typedef GlobalOrdinal GO;
184 const impl_type* theImpl =
dynamic_cast<const impl_type*
> (impl_);
185 TEUCHOS_TEST_FOR_EXCEPTION(
186 theImpl == NULL, std::logic_error,
"Tpetra::Directory::clone: " 187 "The input Map claims to be distributed, contiguous, and uniform, " 188 "but its Directory's implementation type does not match that assumption. " 189 "Please report this bug to the Tpetra developers.");
190 dir->impl_ = theImpl->template clone<Node2> (clone_map);
194 const impl_type* theImpl =
dynamic_cast<const impl_type*
> (impl_);
195 TEUCHOS_TEST_FOR_EXCEPTION(
196 theImpl == NULL, std::logic_error,
"Tpetra::Directory::clone: " 197 "The input Map claims to be distributed and contiguous, but its " 198 "Directory's implementation type does not match that assumption. " 199 "Please report this bug to the Tpetra developers.");
200 dir->impl_ = theImpl->template clone<Node2> (clone_map);
204 const impl_type* theImpl =
dynamic_cast<const impl_type*
> (impl_);
205 TEUCHOS_TEST_FOR_EXCEPTION(
206 theImpl == NULL, std::logic_error,
"Tpetra::Directory::clone: " 207 "The input Map claims to be noncontiguous, but its " 208 "Directory's implementation type does not match that assumption. " 209 "Please report this bug to the Tpetra developers.");
210 dir->impl_ = theImpl->template clone<Node2> (clone_map);
215 const impl_type* theImpl =
dynamic_cast<const impl_type*
> (impl_);
216 TEUCHOS_TEST_FOR_EXCEPTION(
217 theImpl == NULL, std::logic_error,
"Tpetra::Directory::clone: " 218 "The input Map claims to be locally replicated, but its " 219 "Directory's implementation type does not match that assumption. " 220 "Please report this bug to the Tpetra developers.");
221 dir->impl_ = theImpl->template clone<Node2> (clone_map);
264 const Teuchos::ArrayView<const GlobalOrdinal>& globalIDs,
265 const Teuchos::ArrayView<int>& nodeIDs)
const;
304 const Teuchos::ArrayView<const GlobalOrdinal>& globalIDs,
305 const Teuchos::ArrayView<int>& nodeIDs,
306 const Teuchos::ArrayView<LocalOrdinal>& localIDs)
const;
330 const base_type* impl_;
335 template <
class LO,
class GO,
class N>
friend class Directory;
343 #endif // TPETRA_DIRECTORY_DECL_HPP Interface for breaking ties in ownership.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Implementation of Directory for a locally replicated Map.
Interface for breaking ties in ownership.
bool isContiguous() const
True if this Map is distributed contiguously, else false.
KokkosClassic::DefaultNode::DefaultNodeType node_type
Default value of Node template parameter.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
Type of the Map specialization to give to the constructor.
LookupStatus
Return status of Map remote index lookup (getRemoteIndexList()).
bool isUniform() const
Whether the range of global indices is uniform.
Implementation of Directory for a distributed noncontiguous Map.
bool isDistributed() const
Whether this Map is globally distributed or locally replicated.
Implementation of Directory for a distributed contiguous Map.
int local_ordinal_type
Default value of LocalOrdinal template parameter.
Declarations for the Tpetra::Map class and related nonmember constructors.
bool isOneToOne(const map_type &map) const
Whether the Directory's input Map is (globally) one to one.
LookupStatus getDirectoryEntries(const map_type &map, const Teuchos::ArrayView< const GlobalOrdinal > &globalIDs, const Teuchos::ArrayView< int > &nodeIDs) const
Given a global ID list, return the list of their owning process IDs.
Describes a parallel distribution of objects over processes.
Computes the local ID and process ID corresponding to given global IDs.
Implement mapping from global ID to process ID and local ID.
bool initialized() const
Whether the Directory is initialized.
void initialize(const map_type &map)
Initialize the Directory with its Map.
RCP< Directory< LocalOrdinal, GlobalOrdinal, Node2 > > clone(const Map< LocalOrdinal, GlobalOrdinal, Node2 > &clone_map) const
Clone the Directory for a different Node type, using a cloned Map.
Directory()
Default constructor: the only one you should use.
Declaration of implementation details of Tpetra::Directory.
std::string description() const
A one-line human-readable description of this object.