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)
81 return numLocalElements_;
103 KOKKOS_INLINE_FUNCTION LocalOrdinal
106 if (numLocalElements_ == 0) {
107 return ::Tpetra::Details::OrdinalTraits<LocalOrdinal>::invalid ();
109 return static_cast<LocalOrdinal
> (numLocalElements_ - 1);
124 KOKKOS_INLINE_FUNCTION LocalOrdinal
128 if (globalIndex < myMinGid_ || globalIndex > myMaxGid_) {
129 return ::Tpetra::Details::OrdinalTraits<LocalOrdinal>::invalid ();
131 return static_cast<LocalOrdinal
> (globalIndex - myMinGid_);
133 else if (globalIndex >= firstContiguousGid_ &&
134 globalIndex <= lastContiguousGid_) {
135 return static_cast<LocalOrdinal
> (globalIndex - firstContiguousGid_);
140 return glMap_.get (globalIndex);
145 KOKKOS_INLINE_FUNCTION GlobalOrdinal
149 return ::Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid ();
155 return lgMap_(localIndex);
176 ::Kokkos::View<const GlobalOrdinal*, ::Kokkos::LayoutLeft, device_type> lgMap_;
178 GlobalOrdinal indexBase_ = 0;
179 GlobalOrdinal myMinGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
180 GlobalOrdinal myMaxGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
181 GlobalOrdinal firstContiguousGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
182 GlobalOrdinal lastContiguousGid_ = Tpetra::Details::OrdinalTraits<GlobalOrdinal>::invalid();
183 LocalOrdinal numLocalElements_ = 0;
184 bool contiguous_ =
false;