Xpetra
Version of the Day
|
Class that stores a strided map. More...
#include <Xpetra_StridedMap_decl.hpp>
Public Types | |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
typedef Map< LocalOrdinal, GlobalOrdinal, Node > ::global_indices_array_device_type | global_indices_array_device_type |
Public Types inherited from Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > | |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
typedef Kokkos::View< const global_ordinal_type *, typename Node::device_type > | global_indices_array_device_type |
typedef Tpetra::Map < LocalOrdinal, GlobalOrdinal, Node >::local_map_type | local_map_type |
Public Member Functions | |
bool | isCompatible (const Map &map) const |
Returns true if map is compatible with this Map. More... | |
bool | isSameAs (const Map &map) const |
Returns true if map is identical to this Map. More... | |
Teuchos::RCP< const Teuchos::Comm< int > > | getComm () const |
Get the Comm object for this Map. More... | |
RCP< const Map > | removeEmptyProcesses () const |
Return a new Map with processes with zero elements removed. More... | |
RCP< const Map > | replaceCommWithSubset (const Teuchos::RCP< const Teuchos::Comm< int >> &newComm) const |
std::string | description () const |
Return a simple one-line description of this object. More... | |
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. More... | |
UnderlyingLib | lib () const |
Get the library used by this object (Tpetra or Epetra?) More... | |
Public Member Functions inherited from Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > | |
virtual | ~Map () |
Destructor. More... | |
virtual RCP< const Map < LocalOrdinal, GlobalOrdinal, Node > > | replaceCommWithSubset (const Teuchos::RCP< const Teuchos::Comm< int > > &newComm) const =0 |
Replace this Map's communicator with a subset communicator. More... | |
Private Member Functions | |
virtual bool | CheckConsistency () |
Private Attributes | |
RCP< const Xpetra::Map < LocalOrdinal, GlobalOrdinal, Node > > | map_ |
std::vector< size_t > | stridingInfo_ |
Vector with size of strided blocks (dofs) More... | |
LocalOrdinal | stridedBlockId_ |
Member variable denoting which dofs are stored in map. More... | |
GlobalOrdinal | offset_ |
Offset for gids in map (default = 0) More... | |
GlobalOrdinal | indexBase_ |
Index base for the strided map (default = 0) More... | |
Constructor/Destructor Methods | |
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. More... | |
StridedMap (UnderlyingLib xlib, global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int >> &comm, LocalOrdinal stridedBlockId=-1, GlobalOrdinal offset=0) | |
Map constructor with a user-defined contiguous distribution. More... | |
StridedMap (UnderlyingLib xlib, global_size_t numGlobalElements, const Teuchos::ArrayView< const GlobalOrdinal > &elementList, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int >> &comm, LocalOrdinal stridedBlockId=-1) | |
Map constructor with user-defined non-contiguous (arbitrary) distribution. More... | |
StridedMap (const RCP< const Map > &map, std::vector< size_t > &stridingInfo, GlobalOrdinal, LocalOrdinal stridedBlockId=-1, GlobalOrdinal offset=0) | |
virtual | ~StridedMap () |
Destructor. More... | |
Access functions for striding data | |
std::vector< size_t > | getStridingData () const |
void | setStridingData (std::vector< size_t > stridingInfo) |
size_t | getFixedBlockSize () const |
LocalOrdinal | getStridedBlockId () const |
bool | isStrided () const |
returns true, if this is a strided map (i.e. more than 1 strided blocks) More... | |
bool | isBlocked () const |
GlobalOrdinal | getOffset () const |
void | setOffset (GlobalOrdinal offset) |
size_t | GID2StridingBlockId (GlobalOrdinal gid) const |
Xpetra specific | |
using | local_map_type = typename Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >::local_map_type |
RCP< const Xpetra::Map < LocalOrdinal, GlobalOrdinal, Node > > | getMap () const |
local_map_type | getLocalMap () const |
Get the local Map for Kokkos kernels. More... | |
Map Attribute Methods | |
global_size_t | getGlobalNumElements () const |
Returns the number of elements in this Map. More... | |
size_t | getLocalNumElements () const |
Returns the number of elements belonging to the calling node. More... | |
GlobalOrdinal | getIndexBase () const |
Returns the index base for this Map. More... | |
LocalOrdinal | getMinLocalIndex () const |
Returns minimum local index. More... | |
LocalOrdinal | getMaxLocalIndex () const |
Returns maximum local index. More... | |
GlobalOrdinal | getMinGlobalIndex () const |
Returns minimum global index owned by this node. More... | |
GlobalOrdinal | getMaxGlobalIndex () const |
Returns maximum global index owned by this node. More... | |
GlobalOrdinal | getMinAllGlobalIndex () const |
Return the minimum global index over all nodes. More... | |
GlobalOrdinal | getMaxAllGlobalIndex () const |
Return the maximum global index over all nodes. More... | |
LocalOrdinal | getLocalElement (GlobalOrdinal globalIndex) const |
Return the local index for a given global index. More... | |
GlobalOrdinal | getGlobalElement (LocalOrdinal localIndex) const |
Return the global index for a given local index. More... | |
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. More... | |
LookupStatus | getRemoteIndexList (const Teuchos::ArrayView< const GlobalOrdinal > &GIDList, const Teuchos::ArrayView< int > &nodeIDList) const |
Returns the node IDs for a given list of global indices. More... | |
Teuchos::ArrayView< const GlobalOrdinal > | getLocalElementList () const |
Return a list of the global indices owned by this node. More... | |
global_indices_array_device_type | getMyGlobalIndicesDevice () const |
Return a view of the global indices owned by this process on the Map's device. More... | |
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. More... | |
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. More... | |
bool | isContiguous () const |
Returns true if this Map is distributed contiguously; returns false otherwise. More... | |
bool | isDistributed () const |
Returns true if this Map is distributed across more than one node; returns false otherwise. More... | |
Class that stores a strided map.
StridedMap
extends the functionality of Xpetra::Map
.
It derives from Xpetra::Map
and adds a std::vector
, which contains the striding information. E.g. for a strided map with 3 dofs per node (2 velocity dofs, 1 pressure dof), the striding information looks like:
For this example, getFixedBlockSize()
returns 3 (3 dofs per node). When providing a stridedBlockId parameter in the constructor, the strided map only contains dofs of one strided block, e.g. with above stridingInformation the call
returns a map with the gids 0, 1, 3, 4, 6, 7, ... (which contains only the velocity dofs)
and
creates a map with only the pressure dofs 2, 5, 8, ...
Definition at line 64 of file Xpetra_StridedMap_decl.hpp.
typedef LocalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type |
Definition at line 66 of file Xpetra_StridedMap_decl.hpp.
typedef GlobalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type |
Definition at line 67 of file Xpetra_StridedMap_decl.hpp.
typedef Node Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::node_type |
Definition at line 68 of file Xpetra_StridedMap_decl.hpp.
typedef Map<LocalOrdinal, GlobalOrdinal, Node>::global_indices_array_device_type Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::global_indices_array_device_type |
Definition at line 69 of file Xpetra_StridedMap_decl.hpp.
using Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::local_map_type = typename Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node>::local_map_type |
Definition at line 202 of file Xpetra_StridedMap_decl.hpp.
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::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.
Map constructor with contiguous uniform distribution. The elements are distributed among nodes so that the subsets of global elements are non-overlapping and contiguous and as evenly distributed across the nodes as possible.
If numGlobalElements == Teuchos::OrdinalTraits<global_size_t>::invalid(), the number of global elements will be computed via a global communication. Otherwise, it must be equal to the sum of the local elements across all nodes. This will only be verified if Trilinos' Teuchos package was built with debug support (CMake Boolean option TEUCHOS_ENABLE_DEBUG=ON). If verification fails, a std::invalid_argument exception will be thrown.
Definition at line 26 of file Xpetra_StridedMap_def.hpp.
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap | ( | UnderlyingLib | xlib, |
global_size_t | numGlobalElements, | ||
size_t | numLocalElements, | ||
GlobalOrdinal | indexBase, | ||
std::vector< size_t > & | stridingInfo, | ||
const Teuchos::RCP< const Teuchos::Comm< int >> & | comm, | ||
LocalOrdinal | stridedBlockId = -1 , |
||
GlobalOrdinal | offset = 0 |
||
) |
Map constructor with a user-defined contiguous distribution.
Map constructor with a user-defined contiguous distribution.
Map constructor with a user-defined contiguous distribution. The elements are distributed among nodes so that the subsets of global elements are non-overlapping and contiguous and as evenly distributed across the nodes as possible.
If numGlobalElements == Teuchos::OrdinalTraits<global_size_t>::invalid(), the number of global elements will be computed via a global communication. Otherwise, it must be equal to the sum of the local elements across all nodes. This will only be verified if Trilinos' Teuchos package was built with debug support (CMake Boolean option TEUCHOS_ENABLE_DEBUG=ON). If verification fails, a std::invalid_argument exception will be thrown.
Definition at line 122 of file Xpetra_StridedMap_def.hpp.
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap | ( | UnderlyingLib | xlib, |
global_size_t | numGlobalElements, | ||
const Teuchos::ArrayView< const GlobalOrdinal > & | elementList, | ||
GlobalOrdinal | indexBase, | ||
std::vector< size_t > & | stridingInfo, | ||
const Teuchos::RCP< const Teuchos::Comm< int >> & | comm, | ||
LocalOrdinal | stridedBlockId = -1 |
||
) |
Map constructor with user-defined non-contiguous (arbitrary) distribution.
createse a strided map using the GIDs in elementList and the striding information provided by user.
Definition at line 232 of file Xpetra_StridedMap_def.hpp.
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap | ( | const RCP< const Map > & | map, |
std::vector< size_t > & | stridingInfo, | ||
GlobalOrdinal | , | ||
LocalOrdinal | stridedBlockId = -1 , |
||
GlobalOrdinal | offset = 0 |
||
) |
Definition at line 319 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Destructor.
Definition at line 341 of file Xpetra_StridedMap_def.hpp.
std::vector< size_t > Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getStridingData | ( | ) | const |
Definition at line 347 of file Xpetra_StridedMap_def.hpp.
void Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::setStridingData | ( | std::vector< size_t > | stridingInfo | ) |
Definition at line 353 of file Xpetra_StridedMap_def.hpp.
size_t Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getFixedBlockSize | ( | ) | const |
Definition at line 360 of file Xpetra_StridedMap_def.hpp.
LocalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getStridedBlockId | ( | ) | const |
returns strided block id of the dofs stored in this map or -1 if full strided map is stored in this map
Definition at line 371 of file Xpetra_StridedMap_def.hpp.
bool Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::isStrided | ( | ) | const |
returns true, if this is a strided map (i.e. more than 1 strided blocks)
Definition at line 377 of file Xpetra_StridedMap_def.hpp.
bool Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::isBlocked | ( | ) | const |
returns true, if this is a blocked map (i.e. more than 1 dof per node) either strided or just 1 block per node
Definition at line 383 of file Xpetra_StridedMap_def.hpp.
GlobalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getOffset | ( | ) | const |
Definition at line 390 of file Xpetra_StridedMap_def.hpp.
void Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::setOffset | ( | GlobalOrdinal | offset | ) |
Definition at line 396 of file Xpetra_StridedMap_def.hpp.
size_t Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::GID2StridingBlockId | ( | GlobalOrdinal | gid | ) | const |
Definition at line 403 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Reimplemented from Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 422 of file Xpetra_StridedMap_def.hpp.
|
inlinevirtual |
Get the local Map for Kokkos kernels.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 205 of file Xpetra_StridedMap_decl.hpp.
|
privatevirtual |
Definition at line 428 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns the number of elements in this Map.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 499 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns the number of elements belonging to the calling node.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 506 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns the index base for this Map.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 513 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns minimum local index.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 520 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns maximum local index.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 527 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns minimum global index owned by this node.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 534 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns maximum global index owned by this node.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 541 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return the minimum global index over all nodes.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 548 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return the maximum global index over all nodes.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 555 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return the local index for a given global index.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 562 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return the global index for a given local index.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 569 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns the node IDs and corresponding local indices for a given list of global indices.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 576 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns the node IDs for a given list of global indices.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 585 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return a list of the global indices owned by this node.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 593 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return a view of the global indices owned by this process on the Map's device.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 600 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if the local index is valid for this Map on this node; returns false if it isn't.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 606 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if the global index is found in this Map on this node; returns false if it isn't.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 612 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if this Map is distributed contiguously; returns false otherwise.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 618 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if this Map is distributed across more than one node; returns false otherwise.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 624 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if map is compatible with this Map.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 630 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Returns true if map is identical to this Map.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 636 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Get the Comm object for this Map.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 643 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return a new Map with processes with zero elements removed.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 650 of file Xpetra_StridedMap_def.hpp.
RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::replaceCommWithSubset | ( | const Teuchos::RCP< const Teuchos::Comm< int >> & | newComm | ) | const |
Definition at line 657 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Return a simple one-line description of this object.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 664 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Print the object with some verbosity level to a FancyOStream object.
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 670 of file Xpetra_StridedMap_def.hpp.
|
virtual |
Get the library used by this object (Tpetra or Epetra?)
Implements Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 677 of file Xpetra_StridedMap_def.hpp.
|
private |
Definition at line 255 of file Xpetra_StridedMap_decl.hpp.
|
private |
Vector with size of strided blocks (dofs)
Definition at line 258 of file Xpetra_StridedMap_decl.hpp.
|
private |
Member variable denoting which dofs are stored in map.
Definition at line 265 of file Xpetra_StridedMap_decl.hpp.
|
private |
Offset for gids in map (default = 0)
Definition at line 268 of file Xpetra_StridedMap_decl.hpp.
|
private |
Index base for the strided map (default = 0)
Definition at line 271 of file Xpetra_StridedMap_decl.hpp.