All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
Protected Attributes | Private Member Functions
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Class that stores a strided map. More...

#include <Xpetra_StridedMap.hpp>

Inheritance diagram for Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >:
Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > Describable Xpetra::StridedTpetraMap< LocalOrdinal, GlobalOrdinal, Node >

List of all members.

Protected Attributes

std::vector< size_t > stridingInfo_
 vector with size of strided blocks (dofs)
LocalOrdinal stridedBlockId_
 member variable denoting which dofs are stored in map
GlobalOrdinal offset_
 offset for gids in map (default = 0).

Private Member Functions

virtual bool CheckConsistency ()=0

Constructor/Destructor Methods

 StridedMap (global_size_t numGlobalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalOrdinal stridedBlockId, GlobalOrdinal offset=0)
 StridedMap (global_size_t numGlobalElements, size_t numLocalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalOrdinal stridedBlockId, GlobalOrdinal offset=0)
 StridedMap (std::vector< size_t > &stridingInfo, LocalOrdinal stridedBlockId, GlobalOrdinal offset=0)
 StridedMap (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)
virtual ~StridedMap ()
 Destructor.

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 ()
 returns true, if this is a strided map (i.e. more than 1 strided blocks)
bool isBlocked ()
GlobalOrdinal getOffset () const
void setOffset (GlobalOrdinal offset)
size_t GID2StridingBlockId (GlobalOrdinal gid) const

Detailed Description

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
class Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >

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 3dofs per node (2 velocity dofs, 1 pressure dof) the striding information looks like: std::vector<size_t> stridingInformation; stridingInformation.push_back(2); // 2 velocity dofs stridingInformation.push_back(1); // 1 pressure dof

For this example the getFixedBlockSize() returns 3 (3 dofs per node). Providing a stridedBlockId parameter in the constructor the strided map only contains dofs of one strided block, e.g. with above stridingInformation the call

StridingMap M(33,0,stridiningInformation,comm,0); // striding block 0 (velocity dofs) returns a map with the gids 0, 1, 3, 4, 6, 7, ... (which contains only the velocity dofs)

and StridingMap M(33,0,stridiningInformation,comm,1); // striding block 1 (pressure dofs) creates a map with only the pressure dofs 2, 5, 8, ...

Note:
: there's no support for global offset, yet.

Definition at line 100 of file Xpetra_StridedMap.hpp.


Constructor & Destructor Documentation

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap ( global_size_t  numGlobalElements,
GlobalOrdinal  indexBase,
std::vector< size_t > &  stridingInfo,
const Teuchos::RCP< const Teuchos::Comm< int > > &  comm,
LocalOrdinal  stridedBlockId,
GlobalOrdinal  offset = 0 
) [inline]

Definition at line 109 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap ( global_size_t  numGlobalElements,
size_t  numLocalElements,
GlobalOrdinal  indexBase,
std::vector< size_t > &  stridingInfo,
const Teuchos::RCP< const Teuchos::Comm< int > > &  comm,
LocalOrdinal  stridedBlockId,
GlobalOrdinal  offset = 0 
) [inline]

Definition at line 117 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap ( std::vector< size_t > &  stridingInfo,
LocalOrdinal  stridedBlockId,
GlobalOrdinal  offset = 0 
) [inline]

Definition at line 126 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::StridedMap ( 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 
) [inline]

Definition at line 131 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
virtual Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::~StridedMap ( ) [inline, virtual]

Destructor.

Definition at line 168 of file Xpetra_StridedMap.hpp.


Member Function Documentation

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
std::vector<size_t> Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getStridingData ( ) const [inline]

Definition at line 175 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
void Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::setStridingData ( std::vector< size_t >  stridingInfo) [inline]

Definition at line 177 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
size_t Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getFixedBlockSize ( ) const [inline]

Definition at line 179 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
LocalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getStridedBlockId ( ) const [inline]

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 191 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
bool Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::isStrided ( ) [inline]

returns true, if this is a strided map (i.e. more than 1 strided blocks)

Definition at line 194 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
bool Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::isBlocked ( ) [inline]

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 198 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
GlobalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::getOffset ( ) const [inline]

Definition at line 200 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
void Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::setOffset ( GlobalOrdinal  offset) [inline]

Definition at line 202 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
size_t Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::GID2StridingBlockId ( GlobalOrdinal  gid) const [inline]

Definition at line 205 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
virtual bool Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::CheckConsistency ( ) [private, pure virtual]

Member Data Documentation

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
std::vector<size_t> Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::stridingInfo_ [protected]

vector with size of strided blocks (dofs)

Definition at line 259 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
LocalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::stridedBlockId_ [protected]

member variable denoting which dofs are stored in map

Definition at line 260 of file Xpetra_StridedMap.hpp.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
GlobalOrdinal Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node >::offset_ [protected]

offset for gids in map (default = 0).

Definition at line 263 of file Xpetra_StridedMap.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines