36 #ifndef VECTOR_BLOCK_MONOLITHIC_EPETRA_H 37 #define VECTOR_BLOCK_MONOLITHIC_EPETRA_H 1
39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/core/array/MapEpetra.hpp> 42 #include <lifev/core/array/VectorEpetra.hpp> 43 #include <lifev/core/array/MapVector.hpp> 44 #include <lifev/core/array/VectorBlockMonolithicEpetraView.hpp> 46 #include <boost/shared_ptr.hpp> 71 class VectorBlockMonolithicEpetra
83 typedef MapEpetra map_Type;
86 typedef MapVector<map_Type> mapVector_type;
92 typedef Epetra_CombineMode combine_type;
95 typedef VectorBlockMonolithicEpetraView block_type;
98 typedef std::shared_ptr<block_type> block_ptrType;
107 VectorBlockMonolithicEpetra (
const map_Type& map,
const mapType_type& mapType =
Unique);
115 VectorBlockMonolithicEpetra (
const mapVector_type& mapVector,
const mapType_type& mapType =
Unique);
118 VectorBlockMonolithicEpetra (
const VectorBlockMonolithicEpetra& vector);
121 VectorBlockMonolithicEpetra (
const VectorBlockMonolithicEpetra& vector,
const mapType_type& mapType);
124 VectorBlockMonolithicEpetra (
const VectorBlockMonolithicEpetra& vector,
const mapType_type& mapType,
const combine_type& combineMode);
127 ~VectorBlockMonolithicEpetra() {}
138 void setBlockStructure (
const std::vector<UInt>& blockSizes );
150 void setBlockStructure (
const mapVector_type& mapVector);
165 ASSERT ( index < M_blockSize.size(),
"Invalid block index");
166 return M_blockSize[index];
174 void blockView (
const UInt& index, block_type& blockView);
181 block_ptrType block (
const UInt& index);
187 std::vector<UInt> M_blockSize;
188 std::vector<UInt> M_blockFirstIndex;
void assignFunction(bcBase_Type &base)
Assign the function to the base of the BCHandler.
double Real
Generic real data.
uint32_type UInt
generic unsigned integer (used mainly for addressing)