Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | List of all members
Tpetra::Details::DistributedNoncontiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType > Class Template Referenceabstract

Implementation of Directory for a distributed noncontiguous Map. More...

#include <Tpetra_DirectoryImpl_decl.hpp>

Inheritance diagram for Tpetra::Details::DistributedNoncontiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >:
Inheritance graph
[legend]

Public Member Functions

bool isOneToOne (const Teuchos::Comm< int > &comm) const override
 Whether the Directory's input Map is (globally) one to one. 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
 
Implementation of Teuchos::Describable.
std::string description () const override
 A one-line human-readable description of this object. More...
 

Protected Member Functions

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 override
 Find process IDs and (optionally) local IDs for the given global IDs. More...
 
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...
 

Detailed Description

template<class LocalOrdinal, class GlobalOrdinal, class NodeType>
class Tpetra::Details::DistributedNoncontiguousDirectory< LocalOrdinal, GlobalOrdinal, NodeType >

Implementation of Directory for a distributed noncontiguous Map.

Definition at line 283 of file Tpetra_DirectoryImpl_decl.hpp.

Member Function Documentation

template<class LO , class GO , class NT >
bool Tpetra::Details::DistributedNoncontiguousDirectory< LO, GO, NT >::isOneToOne ( const Teuchos::Comm< int > &  comm) const
overridevirtual

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.

Implements Tpetra::Details::Directory< LocalOrdinal, GlobalOrdinal, NodeType >.

Definition at line 1272 of file Tpetra_DirectoryImpl_def.hpp.

template<class LO , class GO , class NT >
std::string Tpetra::Details::DistributedNoncontiguousDirectory< LO, GO, NT >::description ( ) const
override

A one-line human-readable description of this object.

Definition at line 921 of file Tpetra_DirectoryImpl_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class NodeType >
LookupStatus Tpetra::Details::DistributedNoncontiguousDirectory< LO, GO, NT >::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
overrideprotected

Find process IDs and (optionally) local IDs for the given global IDs.

Definition at line 934 of file Tpetra_DirectoryImpl_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class NodeType >
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
inherited

Find process IDs and (optionally) local IDs for the given global IDs.

Precondition
nodeIDs.size() == globalIDs.size()
! computeLIDs || localIDs.size() == globalIDs.size()
Parameters
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.
Returns
If at least one GID was not present in the directory, return IDNotPresent. Otherwise, return AllIDsPresent.
Note
To implementers: The implementation of this method first performs input validation, then invokes getEntriesImpl() (implemented in the subclass) to do the work.

Definition at line 36 of file Tpetra_DirectoryImpl_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class NodeType >
virtual LookupStatus Tpetra::Details::Directory< LocalOrdinal, GlobalOrdinal, NodeType >::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
protectedpure virtualinherited

The documentation for this class was generated from the following files: