LifeV
MatrixBlockStructure Class Reference

MatrixBlockStructure - class representing the structure of a vector. More...

#include <MatrixBlockStructure.hpp>

+ Collaboration diagram for MatrixBlockStructure:

Private Attributes

VectorBlockStructure M_rowsBlockStructure
 
VectorBlockStructure M_columnsBlockStructure
 

Public Types

typedef Real data_Type
 Type of data stored. More...
 
typedef MapEpetra map_Type
 Type of the map to be used. More...
 
typedef MapVector< map_TypemapVector_Type
 Type of the MapVector to be used with this class. More...
 
typedef MapEpetraType mapType_Type
 Type of the map (Unique/Repeated) More...
 

Constructor & Destructor

 MatrixBlockStructure ()
 Default constructor. More...
 
 MatrixBlockStructure (const map_Type &rowMap, const map_Type &columnMap)
 Constructor with the monolithic maps. More...
 
 MatrixBlockStructure (const map_Type &map)
 Constructor with a unique monolithic map. More...
 
 MatrixBlockStructure (const mapVector_Type &rowMapVector, const mapVector_Type &columnMapVector)
 Construction with a map. More...
 
 MatrixBlockStructure (const mapVector_Type &mapVector)
 Construction with a map. More...
 
 MatrixBlockStructure (const VectorBlockStructure &rowsBlockStructure, const VectorBlockStructure &columnsBlockStructure)
 Construction with row and column structure. More...
 
 MatrixBlockStructure (const VectorBlockStructure &vectorStructure)
 Construction with vector structure. More...
 
 MatrixBlockStructure (const MatrixBlockStructure &blockStructure)
 Copy constructor. More...
 
 ~MatrixBlockStructure ()
 Destructor. More...
 

Set Methods

void setBlockStructure (const std::vector< UInt > &blockNumRows, const std::vector< UInt > &blockNumColumns)
 
void setBlockStructure (const std::vector< UInt > &blocksSize)
 
void setBlockStructure (const MapVector< MapEpetra > &rowMapVector, const MapVector< MapEpetra > &columnMapVector)
 
void setBlockStructure (const MapVector< MapEpetra > &mapVector)
 
void setBlockStructure (const MatrixBlockStructure &blockStructure)
 Set the block structure from a matrix structure object. More...
 
void setBlockStructure (const VectorBlockStructure &rowsBlockStructure, const VectorBlockStructure &columnsBlockStructure)
 Set the block structure from row and column structures. More...
 
void setBlockStructure (const VectorBlockStructure &vectorBlockStructure)
 Set the block structure from row and column structures. More...
 

Get Methods

UInt blockNumRows (const UInt &rowIndex) const
 Returns the number of rows of the block. More...
 
UInt blockNumColumns (const UInt &columnIndex) const
 Returns the number of columns of the block. More...
 
UInt rowBlockFirstIndex (const UInt &index) const
 
UInt columnBlockFirstIndex (const UInt &index) const
 
UInt numRowBlocks () const
 Number of row blocks. More...
 
UInt numColumnBlocks () const
 Number of column blocks. More...
 
UInt numRows () const
 Number of rows. More...
 
UInt numColumns () const
 Number of rows. More...
 
const VectorBlockStructurerowsBlockStructure () const
 Get the rows block structure. More...
 
const VectorBlockStructurecolumnsBlockStructure () const
 Get the columns block structure. More...
 

Detailed Description

MatrixBlockStructure - class representing the structure of a vector.

Author
Gwenol Grandperrin gweno.nosp@m.l.gr.nosp@m.andpe.nosp@m.rrin.nosp@m.@gmai.nosp@m.l.co.nosp@m.m

Definition at line 52 of file MatrixBlockStructure.hpp.

Member Typedef Documentation

◆ data_Type

typedef Real data_Type

Type of data stored.

Definition at line 60 of file MatrixBlockStructure.hpp.

◆ map_Type

Type of the map to be used.

Definition at line 63 of file MatrixBlockStructure.hpp.

◆ mapVector_Type

Type of the MapVector to be used with this class.

Definition at line 66 of file MatrixBlockStructure.hpp.

◆ mapType_Type

Type of the map (Unique/Repeated)

Definition at line 69 of file MatrixBlockStructure.hpp.

Constructor & Destructor Documentation

◆ MatrixBlockStructure() [1/8]

Default constructor.

Definition at line 44 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [2/8]

MatrixBlockStructure ( const map_Type rowMap,
const map_Type columnMap 
)

Constructor with the monolithic maps.

Definition at line 50 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [3/8]

MatrixBlockStructure ( const map_Type map)

Constructor with a unique monolithic map.

Definition at line 57 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [4/8]

MatrixBlockStructure ( const mapVector_Type rowMapVector,
const mapVector_Type columnMapVector 
)

Construction with a map.

With this constructor, the block structure is automatically deduced from the maps in the vectors. The monolithic map and vectors are also built by concatenating the different maps in the vector.

Definition at line 63 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [5/8]

MatrixBlockStructure ( const mapVector_Type mapVector)

Construction with a map.

With this constructor, the block structure is automatically deduced from the maps in the vector. The monolithic map and vectors are also built by concatenating the different maps in the vector.

Definition at line 70 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [6/8]

MatrixBlockStructure ( const VectorBlockStructure rowsBlockStructure,
const VectorBlockStructure columnsBlockStructure 
)

Construction with row and column structure.

Definition at line 76 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [7/8]

MatrixBlockStructure ( const VectorBlockStructure vectorStructure)

Construction with vector structure.

Definition at line 83 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ MatrixBlockStructure() [8/8]

MatrixBlockStructure ( const MatrixBlockStructure blockStructure)

Copy constructor.

Definition at line 89 of file MatrixBlockStructure.cpp.

+ Here is the caller graph for this function:

◆ ~MatrixBlockStructure()

Destructor.

Definition at line 96 of file MatrixBlockStructure.cpp.

Member Function Documentation

◆ setBlockStructure() [1/7]

void setBlockStructure ( const std::vector< UInt > &  blockNumRows,
const std::vector< UInt > &  blockNumColumns 
)

Set the size of the blocks of the matrix

Parameters
blockNumRowsNumber of rows in the blocks
blockNumColumnsNumber of columns in the blocks

Definition at line 106 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [2/7]

void setBlockStructure ( const std::vector< UInt > &  blocksSize)

Set the size of the blocks of the matrix

Parameters
blocksSizeNumber of rows/columns in the blocks

Definition at line 114 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [3/7]

void setBlockStructure ( const MapVector< MapEpetra > &  rowMapVector,
const MapVector< MapEpetra > &  columnMapVector 
)

Set the size of the blocks of the matrix using the maps stored in the vector of map. The resulting block structure in symmetric (same blocks in the rows and in the columns).

This method does not involve large computations. The global size and the map of the matrix cannot be changed with this method (and the block structure has to be compatible with the global size).

Definition at line 121 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [4/7]

void setBlockStructure ( const MapVector< MapEpetra > &  mapVector)

Set the size of the blocks of the matrix using the maps stored in the vector of map. The resulting block structure in symmetric (same blocks in the rows and in the columns).

This method does not involve large computations. The global size and the map of the matrix cannot be changed with this method (and the block structure has to be compatible with the global size).

Definition at line 129 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [5/7]

void setBlockStructure ( const MatrixBlockStructure blockStructure)

Set the block structure from a matrix structure object.

Definition at line 136 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [6/7]

void setBlockStructure ( const VectorBlockStructure rowsBlockStructure,
const VectorBlockStructure columnsBlockStructure 
)

Set the block structure from row and column structures.

Definition at line 143 of file MatrixBlockStructure.cpp.

◆ setBlockStructure() [7/7]

void setBlockStructure ( const VectorBlockStructure vectorBlockStructure)

Set the block structure from row and column structures.

Definition at line 151 of file MatrixBlockStructure.cpp.

◆ blockNumRows()

UInt blockNumRows ( const UInt rowIndex) const

Returns the number of rows of the block.

Parameters
rowIndexRow index of the block

Definition at line 162 of file MatrixBlockStructure.cpp.

◆ blockNumColumns()

UInt blockNumColumns ( const UInt columnIndex) const

Returns the number of columns of the block.

Parameters
columnIndexColumn index of the block

Definition at line 168 of file MatrixBlockStructure.cpp.

◆ rowBlockFirstIndex()

UInt rowBlockFirstIndex ( const UInt index) const
Parameters
indexIndex of the block
Returns
index of the first entry in the index-th block

Definition at line 174 of file MatrixBlockStructure.cpp.

◆ columnBlockFirstIndex()

UInt columnBlockFirstIndex ( const UInt index) const
Parameters
indexIndex of the block
Returns
index of the first entry in the index-th block

Definition at line 180 of file MatrixBlockStructure.cpp.

◆ numRowBlocks()

UInt numRowBlocks ( ) const

Number of row blocks.

Definition at line 186 of file MatrixBlockStructure.cpp.

◆ numColumnBlocks()

UInt numColumnBlocks ( ) const

Number of column blocks.

Definition at line 192 of file MatrixBlockStructure.cpp.

◆ numRows()

UInt numRows ( ) const

Number of rows.

Definition at line 198 of file MatrixBlockStructure.cpp.

◆ numColumns()

UInt numColumns ( ) const

Number of rows.

Definition at line 204 of file MatrixBlockStructure.cpp.

◆ rowsBlockStructure()

const VectorBlockStructure & rowsBlockStructure ( ) const

Get the rows block structure.

Definition at line 210 of file MatrixBlockStructure.cpp.

◆ columnsBlockStructure()

const VectorBlockStructure & columnsBlockStructure ( ) const

Get the columns block structure.

Definition at line 216 of file MatrixBlockStructure.cpp.

Field Documentation

◆ M_rowsBlockStructure

VectorBlockStructure M_rowsBlockStructure
private

Definition at line 218 of file MatrixBlockStructure.hpp.

◆ M_columnsBlockStructure

VectorBlockStructure M_columnsBlockStructure
private

Definition at line 219 of file MatrixBlockStructure.hpp.


The documentation for this class was generated from the following files: