49 #ifndef XPETRA_STRIDEDMAP_DECL_HPP 50 #define XPETRA_STRIDEDMAP_DECL_HPP 53 #include <Teuchos_Describable.hpp> 98 template<
class LocalOrdinal,
101 class StridedMap :
public virtual Map<LocalOrdinal, GlobalOrdinal, Node>
116 #undef XPETRA_STRIDEDMAP_SHORT 149 GlobalOrdinal indexBase,
150 std::vector<size_t>& stridingInfo,
151 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
152 LocalOrdinal stridedBlockId = -1,
153 GlobalOrdinal offset = 0,
182 size_t numLocalElements,
183 GlobalOrdinal indexBase,
184 std::vector<size_t>& stridingInfo,
185 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
186 LocalOrdinal stridedBlockId = -1,
187 GlobalOrdinal offset = 0);
204 const Teuchos::ArrayView<const GlobalOrdinal>& elementList,
205 GlobalOrdinal indexBase,
206 std::vector<size_t>& stridingInfo,
207 const Teuchos::RCP<
const Teuchos::Comm<int>>& comm,
208 LocalOrdinal stridedBlockId = -1);
212 std::vector<size_t>& stridingInfo,
214 LocalOrdinal stridedBlockId = -1,
215 GlobalOrdinal offset = 0);
264 RCP<const Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node>>
getMap()
const;
267 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR 268 #ifdef HAVE_XPETRA_TPETRA 272 local_map_type getLocalMap()
const 274 return map_->getLocalMap();
276 #else // HAVE_XPETRA_TPETRA 279 "Xpetra Kokkos interface for CrsMatrix is enabled (HAVE_XPETRA_KOKKOS_REFACTOR) but Tpetra is disabled. The Kokkos interface needs Tpetra to be enabled, too." 281 #endif // HAVE_XPETRA_TPETRA ELSE 282 #endif // HAVE_XPETRA_KOKKOS_REFACTOR 330 RCP<const Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node>>
map_;
400 const Teuchos::ArrayView<int>& nodeIDList,
401 const Teuchos::ArrayView<LocalOrdinal>& LIDList)
const;
406 const Teuchos::ArrayView<int>& nodeIDList)
const;
439 Teuchos::RCP<const Teuchos::Comm<int>>
getComm()
const;
455 void describe(Teuchos::FancyOStream& out,
456 const Teuchos::EVerbosityLevel verbLevel = Teuchos::Describable::verbLevel_default)
const;
467 #define XPETRA_STRIDEDMAP_SHORT 468 #endif // XPETRA_STRIDEDMAP_DECL_HPP
bool isStrided() const
returns true, if this is a strided map (i.e. more than 1 strided blocks)
RCP< const Map > removeEmptyProcesses() const
Return a new Map with processes with zero elements removed.
LocalOrdinal local_ordinal_type
GlobalOrdinal global_ordinal_type
GlobalOrdinal getOffset() const
bool isSameAs(const Map &map) const
Returns true if map is identical to this Map.
LocalOrdinal getMinLocalIndex() const
Returns minimum local index.
void setStridingData(std::vector< size_t > stridingInfo)
GlobalOrdinal getIndexBase() const
Returns the index base for this Map.
GlobalOrdinal indexBase_
Index base for the strided map (default = 0)
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with some verbosity level to a FancyOStream object.
LocalOrdinal getMaxLocalIndex() const
Returns maximum local index.
GlobalOrdinal getMinAllGlobalIndex() const
Return the minimum global index over all nodes.
std::string description() const
Return a simple one-line description of this object.
LocalOrdinal stridedBlockId_
Member variable denoting which dofs are stored in map.
GlobalOrdinal getMaxAllGlobalIndex() const
Return the maximum global index over all nodes.
GlobalOrdinal getGlobalElement(LocalOrdinal localIndex) const
Return the global index for a given local index.
global_size_t getGlobalNumElements() const
Returns the number of elements in this Map.
std::vector< size_t > stridingInfo_
Vector with size of strided blocks (dofs)
LocalOrdinal getLocalElement(GlobalOrdinal globalIndex) const
Return the local index for a given global index.
LocalOrdinal getStridedBlockId() const
GlobalOrdinal offset_
Offset for gids in map (default = 0)
UnderlyingLib lib() const
Get the library used by this object (Tpetra or Epetra?)
size_t global_size_t
Global size_t object.
Teuchos::RCP< const Teuchos::Comm< int > > getComm() const
Get the Comm object for this Map.
virtual bool CheckConsistency()
LookupStatus getRemoteIndexList(const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList, const Teuchos::ArrayView< LocalOrdinal > &LIDList) const
Returns the node IDs and corresponding local indices for a given list of global indices.
StridedMap(UnderlyingLib xlib, global_size_t numGlobalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int >> &comm, LocalOrdinal stridedBlockId=-1, GlobalOrdinal offset=0, LocalGlobal lg=GloballyDistributed)
Map constructor with contiguous uniform distribution.
bool isNodeLocalElement(LocalOrdinal localIndex) const
Returns true if the local index is valid for this Map on this node; returns false if it isn't...
size_t getFixedBlockSize() const
RCP< const Map > replaceCommWithSubset(const Teuchos::RCP< const Teuchos::Comm< int >> &newComm) const
bool isDistributed() const
Returns true if this Map is distributed across more than one node; returns false otherwise.
bool isNodeGlobalElement(GlobalOrdinal globalIndex) const
Returns true if the global index is found in this Map on this node; returns false if it isn't...
std::vector< size_t > getStridingData() const
GlobalOrdinal getMaxGlobalIndex() const
Returns maximum global index owned by this node.
virtual ~StridedMap()
Destructor.
bool isCompatible(const Map &map) const
Returns true if map is compatible with this Map.
bool isContiguous() const
Returns true if this Map is distributed contiguously; returns false otherwise.
Teuchos::ArrayView< const GlobalOrdinal > getNodeElementList() const
Return a list of the global indices owned by this node.
RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
size_t GID2StridingBlockId(GlobalOrdinal gid) const
void setOffset(GlobalOrdinal offset)
RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > map_
GlobalOrdinal getMinGlobalIndex() const
Returns minimum global index owned by this node.
size_t getNodeNumElements() const
Returns the number of elements belonging to the calling node.