57 KOKKOS_DEFAULTED_FUNCTION
LocalMap() =
default;
59 LocalMap(const ::Tpetra::Details::FixedHashTable<GlobalOrdinal, LocalOrdinal, device_type>& glMap,
60 const ::Kokkos::View<const GlobalOrdinal*, ::Kokkos::LayoutLeft, device_type>& lgMap,
61 const GlobalOrdinal indexBase,
62 const GlobalOrdinal myMinGid,
63 const GlobalOrdinal myMaxGid,
64 const GlobalOrdinal firstContiguousGid,
65 const GlobalOrdinal lastContiguousGid,
66 const LocalOrdinal numLocalElements,
67 const bool contiguous)
70 , indexBase_(indexBase)
73 , firstContiguousGid_(firstContiguousGid)
74 , lastContiguousGid_(lastContiguousGid)
75 , numLocalElements_(numLocalElements)
76 , contiguous_(contiguous) {}
80 return numLocalElements_;
102 KOKKOS_INLINE_FUNCTION LocalOrdinal
104 if (numLocalElements_ == 0) {
105 return ::Tpetra::Details::OrdinalTraits<LocalOrdinal>::invalid();
107 return static_cast<LocalOrdinal
>(numLocalElements_ - 1);
122 KOKKOS_INLINE_FUNCTION LocalOrdinal
125 if (globalIndex < myMinGid_ || globalIndex > myMaxGid_) {
126 return ::Tpetra::Details::OrdinalTraits<LocalOrdinal>::invalid();
128 return static_cast<LocalOrdinal
>(globalIndex - myMinGid_);
129 }
else if (globalIndex >= firstContiguousGid_ &&
130 globalIndex <= lastContiguousGid_) {
131 return static_cast<LocalOrdinal
>(globalIndex - firstContiguousGid_);
135 return glMap_.get(globalIndex);
140 KOKKOS_INLINE_FUNCTION GlobalOrdinal
143 return ::Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
148 return lgMap_(localIndex);
169 ::Kokkos::View<const GlobalOrdinal*, ::Kokkos::LayoutLeft, device_type> lgMap_;
171 GlobalOrdinal indexBase_ = 0;
172 GlobalOrdinal myMinGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
173 GlobalOrdinal myMaxGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
174 GlobalOrdinal firstContiguousGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
175 GlobalOrdinal lastContiguousGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
176 LocalOrdinal numLocalElements_ = 0;
177 bool contiguous_ =
false;