LifeV
|
This class handles block access to parallel monolithic Vectors with an underling block structure. More...
#include <BlockEpetra_Map.hpp>
Public Member Functions | |
void | showMe () |
Print debug info. More... | |
Private Member Functions | |
void | build () |
Private Attributes | |
UInt | M_nBlocks |
std::vector< UInt > | M_myLocalOffsets |
mapPtr_Type | M_monolithicMap |
mapPtrContainer_Type | M_blockMap |
mapPtrContainer_Type | M_blockShiftedMap |
Friends | |
class | BlockEpetra_MultiVector |
typedef Operators::LinearOperatorAlgebra::comm_Type | comm_Type |
typedef Operators::LinearOperatorAlgebra::map_Type | map_Type |
typedef Operators::LinearOperatorAlgebra::mapPtr_Type | mapPtr_Type |
typedef Operators::LinearOperatorAlgebra::constMapPtr_Type | constMapPtr_Type |
typedef std::vector< mapPtr_Type > | mapPtrContainer_Type |
typedef mapPtrContainer_Type::iterator | mapPtrIterator_Type |
typedef mapPtrContainer_Type::const_iterator | mapPtrConstIterator_Type |
typedef Epetra_Import | import_Type |
typedef boost::shared_ptr< import_Type > | importPtr_Type |
typedef std::vector< importPtr_Type > | importPtrContainer_Type |
typedef importPtrContainer_Type::iterator | importPtrIterator_Type |
typedef importPtrContainer_Type::const_iterator | importPtrConstIterator_Type |
BlockEpetra_Map () | |
Default Constructor. More... | |
BlockEpetra_Map (const BlockEpetra_Map &map) | |
Copy constructor. More... | |
BlockEpetra_Map (const mapPtrContainer_Type &mapPtrContainer) | |
Construct a BlockEpetra_Map from an ordered list of Epetra_BlockMap objects. More... | |
void | setUp (const mapPtr_Type &map1, const mapPtr_Type &map2) |
simplified setup for the case of only 2 blocks More... | |
void | setUp (const mapPtr_Type &map1, const mapPtr_Type &map2, const mapPtr_Type &map3) |
simplified setup for the case of only 3 blocks More... | |
void | setUp (const mapPtrContainer_Type &mapPtrContainer) |
general setup for arbitrary number of blocks. The maps of the block to stride are collected in a mapPtrContainer_Type object More... | |
void | setUp (const Epetra_BlockMap &map1, const Epetra_BlockMap &map2) |
other set up routines to overcome a design problem in Trilinos (2 blocks) More... | |
void | setUp (const Epetra_BlockMap &map1, const Epetra_BlockMap &map2, const Epetra_BlockMap &map3) |
other set up routines to overcome a design problem in Trilinos (3 blocks) More... | |
UInt | nBlocks () const |
get the number of blocks More... | |
mapPtr_Type & | monolithicMap () |
returns the monolithicMap More... | |
const constMapPtr_Type | monolithicMap () const |
const version More... | |
mapPtr_Type & | blockMap (UInt iblock) |
returns the original map of block iblock More... | |
const constMapPtr_Type | blockMap (UInt iblock) const |
const version More... | |
mapPtr_Type & | blockShiftedMap (UInt iblock) |
returns the map relative to block iblock in the numbering of the monolithic map More... | |
const constMapPtr_Type | blockShiftedMap (UInt iblock) const |
const version More... | |
const import_Type & | block2monoImporter (UInt iblock) const |
return an Trilinos import_Type object from block iblock map to the monolithic map More... | |
const import_Type & | mono2blockImporter (UInt iblock) const |
return an Trilinos import_Type object from the monolithic map to block iblock map. More... | |
Importers | |
importPtrContainer_Type | M_block2mono |
merge block vectors in the monolithic vector More... | |
importPtrContainer_Type | M_mono2block |
split the monolithic vector in the block vectors More... | |
This class handles block access to parallel monolithic Vectors with an underling block structure.
The goal of BlockEpetra_Map is to provide block or monolithic access to block structured parallel Vectors. The BlockEpetra_Map takes as input a list of Epetra_BlockMap and construct a monolithic map by striding them together.
Definition at line 36 of file BlockEpetra_Map.hpp.
Definition at line 42 of file BlockEpetra_Map.hpp.
Definition at line 43 of file BlockEpetra_Map.hpp.
Definition at line 44 of file BlockEpetra_Map.hpp.
Definition at line 45 of file BlockEpetra_Map.hpp.
typedef std::vector<mapPtr_Type> mapPtrContainer_Type |
Definition at line 46 of file BlockEpetra_Map.hpp.
typedef mapPtrContainer_Type::iterator mapPtrIterator_Type |
Definition at line 47 of file BlockEpetra_Map.hpp.
typedef mapPtrContainer_Type::const_iterator mapPtrConstIterator_Type |
Definition at line 48 of file BlockEpetra_Map.hpp.
typedef Epetra_Import import_Type |
Definition at line 50 of file BlockEpetra_Map.hpp.
typedef boost::shared_ptr<import_Type> importPtr_Type |
Definition at line 51 of file BlockEpetra_Map.hpp.
typedef std::vector<importPtr_Type> importPtrContainer_Type |
Definition at line 52 of file BlockEpetra_Map.hpp.
typedef importPtrContainer_Type::iterator importPtrIterator_Type |
Definition at line 53 of file BlockEpetra_Map.hpp.
typedef importPtrContainer_Type::const_iterator importPtrConstIterator_Type |
Definition at line 54 of file BlockEpetra_Map.hpp.
BlockEpetra_Map | ( | ) |
Default Constructor.
Definition at line 12 of file BlockEpetra_Map.cpp.
BlockEpetra_Map | ( | const BlockEpetra_Map & | map | ) |
Copy constructor.
Definition at line 22 of file BlockEpetra_Map.cpp.
BlockEpetra_Map | ( | const mapPtrContainer_Type & | mapPtrContainer | ) |
Construct a BlockEpetra_Map from an ordered list of Epetra_BlockMap objects.
Definition at line 40 of file BlockEpetra_Map.cpp.
void setUp | ( | const mapPtr_Type & | map1, |
const mapPtr_Type & | map2 | ||
) |
simplified setup for the case of only 2 blocks
Definition at line 52 of file BlockEpetra_Map.cpp.
void setUp | ( | const mapPtr_Type & | map1, |
const mapPtr_Type & | map2, | ||
const mapPtr_Type & | map3 | ||
) |
simplified setup for the case of only 3 blocks
Definition at line 60 of file BlockEpetra_Map.cpp.
void setUp | ( | const mapPtrContainer_Type & | mapPtrContainer | ) |
general setup for arbitrary number of blocks. The maps of the block to stride are collected in a mapPtrContainer_Type object
Definition at line 69 of file BlockEpetra_Map.cpp.
void setUp | ( | const Epetra_BlockMap & | map1, |
const Epetra_BlockMap & | map2 | ||
) |
other set up routines to overcome a design problem in Trilinos (2 blocks)
Definition at line 87 of file BlockEpetra_Map.cpp.
void setUp | ( | const Epetra_BlockMap & | map1, |
const Epetra_BlockMap & | map2, | ||
const Epetra_BlockMap & | map3 | ||
) |
other set up routines to overcome a design problem in Trilinos (3 blocks)
Definition at line 95 of file BlockEpetra_Map.cpp.
UInt nBlocks | ( | ) | const |
get the number of blocks
Definition at line 105 of file BlockEpetra_Map.cpp.
BlockEpetra_Map::mapPtr_Type & monolithicMap | ( | ) |
returns the monolithicMap
Definition at line 110 of file BlockEpetra_Map.cpp.
const BlockEpetra_Map::constMapPtr_Type monolithicMap | ( | ) | const |
const version
Definition at line 114 of file BlockEpetra_Map.cpp.
BlockEpetra_Map::mapPtr_Type & blockMap | ( | UInt | iblock | ) |
returns the original map of block iblock
Definition at line 118 of file BlockEpetra_Map.cpp.
const BlockEpetra_Map::constMapPtr_Type blockMap | ( | UInt | iblock | ) | const |
const version
Definition at line 123 of file BlockEpetra_Map.cpp.
BlockEpetra_Map::mapPtr_Type & blockShiftedMap | ( | UInt | iblock | ) |
returns the map relative to block iblock in the numbering of the monolithic map
Definition at line 128 of file BlockEpetra_Map.cpp.
const BlockEpetra_Map::constMapPtr_Type blockShiftedMap | ( | UInt | iblock | ) | const |
const version
Definition at line 132 of file BlockEpetra_Map.cpp.
const BlockEpetra_Map::import_Type & block2monoImporter | ( | UInt | iblock | ) | const |
return an Trilinos import_Type object from block iblock
map to the monolithic map
Definition at line 137 of file BlockEpetra_Map.cpp.
const BlockEpetra_Map::import_Type & mono2blockImporter | ( | UInt | iblock | ) | const |
return an Trilinos import_Type object from the monolithic map to block iblock
map.
Definition at line 142 of file BlockEpetra_Map.cpp.
void showMe | ( | ) |
Print debug info.
Definition at line 147 of file BlockEpetra_Map.cpp.
|
private |
|
friend |
Definition at line 110 of file BlockEpetra_Map.hpp.
|
private |
Definition at line 118 of file BlockEpetra_Map.hpp.
|
private |
Definition at line 119 of file BlockEpetra_Map.hpp.
|
private |
Definition at line 120 of file BlockEpetra_Map.hpp.
|
private |
Definition at line 121 of file BlockEpetra_Map.hpp.
|
private |
Definition at line 122 of file BlockEpetra_Map.hpp.
|
private |
merge block vectors in the monolithic vector
Definition at line 127 of file BlockEpetra_Map.hpp.
|
private |
split the monolithic vector in the block vectors
Definition at line 129 of file BlockEpetra_Map.hpp.