Tpetra parallel linear algebra
Version of the Day
|
Computes the local ID and process ID corresponding to given global IDs. More...
#include <Tpetra_DirectoryImpl_decl.hpp>
Public Member Functions | |
Directory () | |
Constructor. More... | |
LookupStatus | getEntries (const map_type &map, const Teuchos::ArrayView< const GlobalOrdinal > &globalIDs, const Teuchos::ArrayView< int > &nodeIDs, const Teuchos::ArrayView< LocalOrdinal > &localIDs, const bool computeLIDs) const |
virtual bool | isOneToOne (const Teuchos::Comm< int > &comm) const =0 |
Whether the Directory's input Map is (globally) one to one. More... | |
Protected Member Functions | |
virtual LookupStatus | getEntriesImpl (const map_type &map, const Teuchos::ArrayView< const GlobalOrdinal > &globalIDs, const Teuchos::ArrayView< int > &nodeIDs, const Teuchos::ArrayView< LocalOrdinal > &localIDs, const bool computeLIDs) const =0 |
Actually do the work of getEntries(), with no input validation. More... | |
Computes the local ID and process ID corresponding to given global IDs.
Definition at line 88 of file Tpetra_DirectoryImpl_decl.hpp.
Tpetra::Details::Directory< LO, GO, NT >::Directory | ( | ) |
Constructor.
Subclasses' constructors may only accept the Map to check its properties or to extract data from it in some way. They may not keep a reference to the Map. This prevents circular references, since the Map itself owns the Directory.
Definition at line 67 of file Tpetra_DirectoryImpl_def.hpp.
LookupStatus Tpetra::Details::Directory< LO, GO, NT >::getEntries | ( | const map_type & | map, |
const Teuchos::ArrayView< const GlobalOrdinal > & | globalIDs, | ||
const Teuchos::ArrayView< int > & | nodeIDs, | ||
const Teuchos::ArrayView< LocalOrdinal > & | localIDs, | ||
const bool | computeLIDs | ||
) | const |
Find process IDs and (optionally) local IDs for the given global IDs.
map | [in] The Directory's Map. This must be the same as given to the Directory's constructor. Directory may not keep a reference to the Map, in order to avoid circular references between a Map and its Directory. |
globalIDs | [in] The global IDs for which to find process IDs (and optionally local IDs). |
nodeIDs | [out] The process IDs corresponding to the given global IDs. If a global ID does not belong to any process, the corresponding entry of nodeIDs will be -1. |
localIDs | [out] If computeLIDs is true, we fill this with the local IDs corresponding to the given global IDs. If a given global ID does not correspond to a local ID, the corresponding entry will be Teuchos::OrdinalTraits<LocalOrdinal>::invalid(). |
computeLIDs | [in] Whether to fill in localIDs. |
Definition at line 72 of file Tpetra_DirectoryImpl_def.hpp.
|
pure virtual |
Whether the Directory's input Map is (globally) one to one.
This method should always be treated as a collective on all processes in the given communicator, which must be the same as the input Map's communicator. Not all implementations necessarily communicate.
Implemented in Tpetra::Details::DistributedNoncontiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, Tpetra::Details::DistributedContiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, Tpetra::Details::ContiguousUniformDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, and Tpetra::Details::ReplicatedDirectory< LocalOrdinal, GlobalOrdinal, NodeType >.
|
protectedpure virtual |
Actually do the work of getEntries(), with no input validation.
Implemented in Tpetra::Details::DistributedNoncontiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, Tpetra::Details::DistributedContiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, Tpetra::Details::ContiguousUniformDirectory< LocalOrdinal, GlobalOrdinal, NodeType >, and Tpetra::Details::ReplicatedDirectory< LocalOrdinal, GlobalOrdinal, NodeType >.