Finite Element Domain Decomposition Library
FEDDLib
|
Block Variant of Map class. More...
#include <BlockMap_decl.hpp>
Public Types | |
typedef BlockMap< LO, GO, NO > | BlockMap_Type |
typedef Teuchos::RCP< BlockMap_Type > | BlockMapPtr_Type |
typedef Map< LO, GO, NO > | Map_Type |
typedef Map_Type::MapPtr_Type | MapPtr_Type |
typedef Map_Type::MapConstPtr_Type | MapConstPtr_Type |
typedef Map_Type::Comm_Type | Comm_Type |
typedef Map_Type::CommPtr_Type | CommPtr_Type |
typedef Map_Type::CommConstPtr_Type | CommConstPtr_Type |
Public Member Functions | |
BlockMap (UN size) | |
Initializing block maps with the size of system (i.e. 2 for Stokes problem). As systems are distributed row-wise, block i corresponds to row-block i. | |
void | resize (UN size) |
void | addBlock (MapConstPtr_Type map, int i) |
Adding map to corresponding block i. Block i is row-wise distrubted according to the underlying map. | |
void | merge () |
Merging the map of different blocks together. Relevant for monolithic solving/precondtioning. | |
void | print () |
void | info () |
std::string | getUnderlyingLib () const |
MapConstPtr_Type | getMergedMap () |
Getting merged map of block maps. | |
CommConstPtr_Type | getComm () |
Get underlying communicator. | |
CommPtr_Type | getCommNonConst () |
MapPtr_Type | getBlock (UN i) |
MapConstPtr_Type | getBlock (UN i) const |
UN | size () const |
Block Variant of Map class.
This becomes relevant for block systems and when we attempt to use monolithic preconditioning or solving to determine the merged map of system.
LO | The local ordinal type. The is the index type for local indices |
GO | The global ordinal type. The is the index type for global indices |
NO | The Kokkos Node type. This would allow for performance portibility when using Kokkos. Currently, this is not used. |
This becomes relevant for block systems and when we attempt to use monolithic preconditioning or solving to determine the merged map of system.
1 | B^T 0 BlockMap->getBlock(1) of row-block 1
FEDD::BlockMap< LO, GO, NO >::BlockMap | ( | UN | size | ) |
Initializing block maps with the size of system (i.e. 2 for Stokes problem). As systems are distributed row-wise, block i corresponds to row-block i.
size | of system |
void FEDD::BlockMap< LO, GO, NO >::addBlock | ( | MapConstPtr_Type | map, |
int | i ) |
Adding map to corresponding block i. Block i is row-wise distrubted according to the underlying map.
map | local to global indexing of rows |
i | block id |
BlockMap< LO, GO, NO >::CommConstPtr_Type FEDD::BlockMap< LO, GO, NO >::getComm | ( | ) |
Get underlying communicator.
BlockMap< LO, GO, NO >::MapConstPtr_Type FEDD::BlockMap< LO, GO, NO >::getMergedMap | ( | ) |
Getting merged map of block maps.