LifeV
|
A derived class from Epetra_MultiVector
specialized to handle parallel block structured Vectors.
More...
#include <BlockEpetra_MultiVector.hpp>
Private Member Functions | |
void | createBlockViews () |
Private Attributes | |
UInt | M_nBlocks |
BlockEpetra_Map | M_blockMap |
std::vector< UInt > | M_myLocalOffsets |
vectorPtrContainer_Type | M_blocks |
typedef Epetra_MultiVector | vector_Type |
typedef boost::shared_ptr< vector_Type > | vectorPtr_Type |
typedef std::vector< vectorPtr_Type > | vectorPtrContainer_Type |
BlockEpetra_MultiVector (const BlockEpetra_Map &map, int numVectors, bool zeroOut=true) | |
Generate a BlockEpetra_MultiVector from a BlockEpetra_Map. More... | |
BlockEpetra_MultiVector (const BlockEpetra_MultiVector &Source) | |
Copy Constructor. More... | |
BlockEpetra_MultiVector (Epetra_DataAccess CV, const vector_Type &source, const BlockEpetra_Map &map) | |
Overlay a block structure to a source. More... | |
Epetra_MultiVector & | block (UInt iblock) |
Return a Epetra_MultiVector (view) object for block iblock. More... | |
const Epetra_MultiVector & | block (UInt iblock) const |
const version More... | |
const BlockEpetra_Map & | blockEpetraMap () const |
retrieve the BlockEpetra_Map More... | |
A derived class from Epetra_MultiVector
specialized to handle parallel block structured Vectors.
BlockEpetra_MultiVector
provides monolithic or block access to an Epetra_MultiVector. A BlockEpetra_MultiVector
object can be constructed or by striding Epetra_MultiVector
or from a BlockEpetra_Map
.
This class can be also used to overly a block structure to a given Epetra_MultiVector. In this case, to maximize performances and reduce memory footprint the original object and it's block view will share the same data in memory. If a BlockEpetra_MultiVector
object is a view of another Epetra_MultiVector each modification on the data value of one vector will also affect the other vector and viceversa.
Definition at line 39 of file BlockEpetra_MultiVector.hpp.
typedef Epetra_MultiVector vector_Type |
Definition at line 46 of file BlockEpetra_MultiVector.hpp.
typedef boost::shared_ptr<vector_Type> vectorPtr_Type |
Definition at line 47 of file BlockEpetra_MultiVector.hpp.
typedef std::vector<vectorPtr_Type> vectorPtrContainer_Type |
Definition at line 48 of file BlockEpetra_MultiVector.hpp.
BlockEpetra_MultiVector | ( | const BlockEpetra_Map & | map, |
int | numVectors, | ||
bool | zeroOut = true |
||
) |
Generate a BlockEpetra_MultiVector from a BlockEpetra_Map.
Definition at line 12 of file BlockEpetra_MultiVector.cpp.
BlockEpetra_MultiVector | ( | const BlockEpetra_MultiVector & | Source | ) |
Copy Constructor.
Definition at line 22 of file BlockEpetra_MultiVector.cpp.
BlockEpetra_MultiVector | ( | Epetra_DataAccess | CV, |
const vector_Type & | source, | ||
const BlockEpetra_Map & | map | ||
) |
Overlay a block structure to a source.
If the DataAccess type is Copy, then this object will make a deep copy of all the data structure of source If the DataAccess type is View, then this object will only copy the pointers to the datas in source. (shallow copy).
source
will not be deallocated before this
Definition at line 32 of file BlockEpetra_MultiVector.cpp.
Epetra_MultiVector & block | ( | UInt | iblock | ) |
Return a Epetra_MultiVector (view) object for block iblock.
Definition at line 43 of file BlockEpetra_MultiVector.cpp.
const Epetra_MultiVector & block | ( | UInt | iblock | ) | const |
const version
Definition at line 61 of file BlockEpetra_MultiVector.cpp.
const BlockEpetra_Map & blockEpetraMap | ( | ) | const |
retrieve the BlockEpetra_Map
Definition at line 79 of file BlockEpetra_MultiVector.cpp.
|
private |
Definition at line 85 of file BlockEpetra_MultiVector.cpp.
|
private |
Definition at line 83 of file BlockEpetra_MultiVector.hpp.
|
private |
Definition at line 84 of file BlockEpetra_MultiVector.hpp.
|
private |
Definition at line 85 of file BlockEpetra_MultiVector.hpp.
|
private |
Definition at line 86 of file BlockEpetra_MultiVector.hpp.