Tpetra parallel linear algebra Version of the Day
Loading...
Searching...
No Matches
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
19namespace Tpetra {
20
91template <class LocalOrdinal,
92 class GlobalOrdinal,
93 class Node>
94class 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
118
120 bool initialized() const;
121
140
141
143
145 std::string description() const;
146
148
150
178 const Teuchos::ArrayView<const GlobalOrdinal>& globalIDs,
179 const Teuchos::ArrayView<int>& nodeIDs) const;
180
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>
250 friend class Directory;
251
255}; // class Directory
256
257} // namespace Tpetra
258
259#endif // TPETRA_DIRECTORY_DECL_HPP
Declaration of implementation details of Tpetra::Directory.
Declaration of the Tpetra::Map class and related nonmember constructors.
Interface for breaking ties in ownership.
Struct that holds views of the contents of a CrsMatrix.
Computes the local ID and process ID corresponding to given global IDs.
Interface for breaking ties in ownership.
Implement mapping from global ID to process ID and local ID.
std::string description() const
A one-line human-readable description of this object.
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.
LookupStatus getDirectoryEntries(const map_type &map, const Teuchos::ArrayView< const GlobalOrdinal > &globalIDs, const Teuchos::ArrayView< int > &nodeIDs, const Teuchos::ArrayView< LocalOrdinal > &localIDs) const
Given a global ID list, return a list of their owning process IDs and their corresponding local IDs.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
Type of the Map specialization to give to the constructor.
void initialize(const map_type &map)
Initialize the Directory with its Map.
bool initialized() const
Whether the Directory is initialized.
void initialize(const map_type &map, const Tpetra::Details::TieBreak< LocalOrdinal, GlobalOrdinal > &tieBreak)
Initialize the Directory, with its Map and a TieBreak object.
A parallel distribution of indices over processes.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
LookupStatus
Return status of Map remote index lookup (getRemoteIndexList()).