Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Directory_decl.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_DIRECTORY_DECL_HPP
11 #define TPETRA_DIRECTORY_DECL_HPP
12 
13 #include "Tpetra_ConfigDefs.hpp"
14 #include "Tpetra_Map_decl.hpp"
16 #include "Tpetra_TieBreak.hpp"
17 #include <Teuchos_Describable.hpp>
18 
19 namespace Tpetra {
20 
91  template<class LocalOrdinal,
92  class GlobalOrdinal,
93  class Node>
94  class Directory : public Teuchos::Describable {
95  public:
98 
100 
101 
106  Directory ();
107 
109  ~Directory ();
110 
112  void initialize (const map_type& map);
113 
115  void
116  initialize (const map_type& map,
118 
120  bool initialized () const;
121 
140 
141 
143 
145  std::string description () const;
146 
148 
150 
177  getDirectoryEntries (const map_type& map,
178  const Teuchos::ArrayView<const GlobalOrdinal>& globalIDs,
179  const Teuchos::ArrayView<int>& nodeIDs) const;
180 
217  getDirectoryEntries (const map_type& map,
218  const Teuchos::ArrayView<const GlobalOrdinal>& globalIDs,
219  const Teuchos::ArrayView<int>& nodeIDs,
220  const Teuchos::ArrayView<LocalOrdinal>& localIDs) const;
221 
228  bool isOneToOne (const map_type& map) const;
229 
231  private:
238  typedef ::Tpetra::Details::Directory<LocalOrdinal, GlobalOrdinal, Node> base_type;
239 
244  const base_type* impl_;
245 
248 
249  template <class LO, class GO, class N> friend class Directory;
250 
253  operator= (const Directory<LocalOrdinal, GlobalOrdinal, Node>& source);
254  }; // class Directory
255 
256 } // namespace Tpetra
257 
258 #endif // TPETRA_DIRECTORY_DECL_HPP
259 
Interface for breaking ties in ownership.
Interface for breaking ties in ownership.
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()).
Declaration of the Tpetra::Map class and related nonmember constructors.
bool isOneToOne(const map_type &map) const
Whether the Directory&#39;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.
A parallel distribution of indices 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.
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.