17 #ifndef BLOCKEPETRA_MAP_HPP_ 18 #define BLOCKEPETRA_MAP_HPP_ 20 #include <lifev/core/linear_algebra/LinearOperatorAlgebra.hpp> 21 #include <Epetra_Import.h> 70 void setUp(
const mapPtr_Type & map1,
const mapPtr_Type & map2);
72 void setUp(
const mapPtr_Type & map1,
const mapPtr_Type & map2,
const mapPtr_Type & map3);
76 void setUp(
const Epetra_BlockMap & map1,
const Epetra_BlockMap & map2);
78 void setUp(
const Epetra_BlockMap & map1,
const Epetra_BlockMap & map2,
const Epetra_BlockMap & map3);
const import_Type & mono2blockImporter(UInt iblock) const
return an Trilinos import_Type object from the monolithic map to block iblock map.
This class handles block access to parallel monolithic Vectors with an underling block structure...
mapPtr_Type & blockMap(UInt iblock)
returns the original map of block iblock
std::shared_ptr< map_Type > mapPtr_Type
mapPtr_Type M_monolithicMap
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)
mapPtrContainer_Type::const_iterator mapPtrConstIterator_Type
mapPtr_Type & blockShiftedMap(UInt iblock)
returns the map relative to block iblock in the numbering of the monolithic map
const constMapPtr_Type blockMap(UInt iblock) const
const version
void setUp(const mapPtrContainer_Type &mapPtrContainer)
general setup for arbitrary number of blocks. The maps of the block to stride are collected in a mapP...
std::vector< importPtr_Type > importPtrContainer_Type
BlockEpetra_Map(const mapPtrContainer_Type &mapPtrContainer)
Construct a BlockEpetra_Map from an ordered list of Epetra_BlockMap objects.
boost::shared_ptr< import_Type > importPtr_Type
std::shared_ptr< const map_Type > constMapPtr_Type
importPtrContainer_Type M_mono2block
split the monolithic vector in the block vectors
const constMapPtr_Type monolithicMap() const
const version
Abstract class which defines the interface of a Linear Operator.
importPtrContainer_Type::iterator importPtrIterator_Type
void updateInverseJacobian(const UInt &iQuadPt)
mapPtrContainer_Type M_blockMap
std::vector< UInt > M_myLocalOffsets
const constMapPtr_Type blockShiftedMap(UInt iblock) const
const version
BlockEpetra_Map(const BlockEpetra_Map &map)
Copy constructor.
std::vector< mapPtr_Type > mapPtrContainer_Type
BlockEpetra_Map()
Default Constructor.
importPtrContainer_Type M_block2mono
merge block vectors in the monolithic vector
Epetra_Import import_Type
mapPtrContainer_Type M_blockShiftedMap
const import_Type & block2monoImporter(UInt iblock) const
return an Trilinos import_Type object from block iblock map to the monolithic map ...
A derived class from Epetra_MultiVector specialized to handle parallel block structured Vectors...
importPtrContainer_Type::const_iterator importPtrConstIterator_Type
void setUp(const Epetra_BlockMap &map1, const Epetra_BlockMap &map2)
other set up routines to overcome a design problem in Trilinos (2 blocks)
mapPtr_Type & monolithicMap()
returns the monolithicMap
void showMe()
Print debug info.
UInt nBlocks() const
get the number of blocks
Epetra_Map * blockMap2Map(const Epetra_BlockMap *blockMap)
uint32_type UInt
generic unsigned integer (used mainly for addressing)
mapPtrContainer_Type::iterator mapPtrIterator_Type