35 #ifndef _MATRIXBLOCKSTRUCTURE_HPP_ 36 #define _MATRIXBLOCKSTRUCTURE_HPP_ 1
38 #include <boost/shared_ptr.hpp> 39 #include <lifev/core/LifeV.hpp> 40 #include <lifev/core/array/MapEpetra.hpp> 41 #include <lifev/core/array/MapVector.hpp> 42 #include <lifev/core/array/VectorBlockStructure.hpp> 52 class MatrixBlockStructure
63 typedef MapEpetra map_Type;
66 typedef MapVector<map_Type> mapVector_Type;
77 MatrixBlockStructure();
80 MatrixBlockStructure (
const map_Type& rowMap,
81 const map_Type& columnMap );
84 MatrixBlockStructure (
const map_Type& map );
92 MatrixBlockStructure (
const mapVector_Type& rowMapVector,
93 const mapVector_Type& columnMapVector );
101 MatrixBlockStructure (
const mapVector_Type& mapVector );
104 MatrixBlockStructure (
const VectorBlockStructure& rowsBlockStructure,
105 const VectorBlockStructure& columnsBlockStructure );
108 MatrixBlockStructure (
const VectorBlockStructure& vectorStructure );
111 MatrixBlockStructure (
const MatrixBlockStructure& blockStructure );
114 ~MatrixBlockStructure();
126 void setBlockStructure (
const std::vector<UInt>& blockNumRows,
127 const std::vector<UInt>& blockNumColumns );
132 void setBlockStructure (
const std::vector<UInt>& blocksSize );
143 void setBlockStructure (
const MapVector<MapEpetra>& rowMapVector,
144 const MapVector<MapEpetra>& columnMapVector );
155 void setBlockStructure (
const MapVector<MapEpetra>& mapVector );
158 void setBlockStructure (
const MatrixBlockStructure& blockStructure );
161 void setBlockStructure (
const VectorBlockStructure& rowsBlockStructure,
162 const VectorBlockStructure& columnsBlockStructure );
165 void setBlockStructure (
const VectorBlockStructure& vectorBlockStructure );
176 UInt blockNumRows (
const UInt& rowIndex )
const;
182 UInt blockNumColumns (
const UInt& columnIndex )
const;
188 UInt rowBlockFirstIndex (
const UInt& index )
const;
194 UInt columnBlockFirstIndex (
const UInt& index )
const;
197 UInt numRowBlocks()
const;
200 UInt numColumnBlocks()
const;
203 UInt numRows()
const;
206 UInt numColumns()
const;
209 const VectorBlockStructure& rowsBlockStructure()
const;
212 const VectorBlockStructure& columnsBlockStructure()
const;
218 VectorBlockStructure M_rowsBlockStructure;
219 VectorBlockStructure M_columnsBlockStructure;
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)