Tpetra Matrix/Vector Services Version of the Day
Public Member Functions | Protected Member Functions
Tpetra::Details::ContiguousUniformDirectory< LocalOrdinal, GlobalOrdinal, NodeType > Class Template Reference

Implementation of Directory for a contiguous, uniformly distributed Map. More...

#include <Tpetra_DirectoryImpl_decl.hpp>

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

List of all members.

Public Member Functions

 ContiguousUniformDirectory (const map_type &map)
 Constructor.
virtual bool isOneToOne (const Teuchos::Comm< int > &) const
 Whether the Directory's input Map is (globally) one to one.
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
 A one-line human-readable description of this object.

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

Detailed Description

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

Implementation of Directory for a contiguous, uniformly distributed Map.

The Map may have any number of processes starting with one. Since the entries are uniformly distributed over the processes, this implementation of Directory can compute which process owns a GID (and the GID's corresponding LID) in $O(1)$ space and time.

Definition at line 211 of file Tpetra_DirectoryImpl_decl.hpp.


Constructor & Destructor Documentation

template<class LO , class GO , class NT >
Tpetra::Details::ContiguousUniformDirectory< LO, GO, NT >::ContiguousUniformDirectory ( const map_type map)

Constructor.

Definition at line 148 of file Tpetra_DirectoryImpl_def.hpp.


Member Function Documentation

template<class LocalOrdinal , class GlobalOrdinal , class NodeType >
virtual bool Tpetra::Details::ContiguousUniformDirectory< LocalOrdinal, GlobalOrdinal, NodeType >::isOneToOne ( const Teuchos::Comm< int > &  comm) const [inline, 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.

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

Definition at line 227 of file Tpetra_DirectoryImpl_decl.hpp.

template<class LO , class GO , class NT >
std::string Tpetra::Details::ContiguousUniformDirectory< LO, GO, NT >::description ( ) const [virtual]

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

Reimplemented from Teuchos::Describable.

Definition at line 159 of file Tpetra_DirectoryImpl_def.hpp.

template<class LocalOrdinal , class GlobalOrdinal , class NodeType >
LookupStatus Tpetra::Details::ContiguousUniformDirectory< 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 [protected, virtual]

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

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

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 72 of file Tpetra_DirectoryImpl_def.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines