
Public Member Functions | |
| BlockDiagonalMatrix (const MATRIX &M, const unsigned int n_blocks) | |
| template<typename number1 , typename number2 > | |
| void | vmult (BlockVector< number1 > &dst, const BlockVector< number2 > &src) const |
| template<typename number1 , typename number2 > | |
| void | Tvmult (BlockVector< number1 > &dst, const BlockVector< number2 > &src) const |
Private Attributes | |
| unsigned int | num_blocks |
| SmartPointer< const MATRIX > | matrix |
A matrix with several copies of the same block on the diagonal.
This matrix implements an m by m block matrix. Each diagonal block consists of the same (non-block) matrix, while off-diagonal blocks are void.
One special application is a one by one block matrix, allowing to apply the vmult of the original matrix (or preconditioner) to a block vector.
| BlockDiagonalMatrix< MATRIX >::BlockDiagonalMatrix | ( | const MATRIX & | M, | |
| const unsigned int | n_blocks | |||
| ) | [inline] |
Constructor for an n_blocks by n_blocks matrix with diagonal blocks M.
| void BlockDiagonalMatrix< MATRIX >::vmult | ( | BlockVector< number1 > & | dst, | |
| const BlockVector< number2 > & | src | |||
| ) | const [inline] |
Matrix-vector-multiplication.
References Assert, BlockVectorBase< Vector< Number > >::block(), BlockDiagonalMatrix< MATRIX >::matrix, BlockVectorBase< Vector< Number > >::n_blocks(), and BlockDiagonalMatrix< MATRIX >::num_blocks.
| void BlockDiagonalMatrix< MATRIX >::Tvmult | ( | BlockVector< number1 > & | dst, | |
| const BlockVector< number2 > & | src | |||
| ) | const [inline] |
Transposed matrix-vector-multiplication.
References Assert, BlockVectorBase< Vector< Number > >::block(), BlockDiagonalMatrix< MATRIX >::matrix, BlockVectorBase< Vector< Number > >::n_blocks(), and BlockDiagonalMatrix< MATRIX >::num_blocks.
unsigned int BlockDiagonalMatrix< MATRIX >::num_blocks [private] |
Number of blocks.
Referenced by BlockDiagonalMatrix< MATRIX >::Tvmult(), and BlockDiagonalMatrix< MATRIX >::vmult().
SmartPointer<const MATRIX> BlockDiagonalMatrix< MATRIX >::matrix [private] |
Diagonal entry.
Referenced by BlockDiagonalMatrix< MATRIX >::Tvmult(), and BlockDiagonalMatrix< MATRIX >::vmult().
documentation generated on Mon Nov 23 22:57:29 2009 by
doxygen
1.6.1