BlockDiagonalMatrix< MATRIX > Class Template Reference
[Derived matrices]

Inheritance diagram for BlockDiagonalMatrix< MATRIX >:
Inheritance graph
[legend]

List of all members.

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

Detailed Description

template<class MATRIX>
class BlockDiagonalMatrix< 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.

Author:
Guido Kanschat, 2000

Constructor & Destructor Documentation

template<class MATRIX >
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.


Member Function Documentation

template<class MATRIX >
template<typename number1 , typename number2 >
void BlockDiagonalMatrix< MATRIX >::vmult ( BlockVector< number1 > &  dst,
const BlockVector< number2 > &  src 
) const [inline]
template<class MATRIX >
template<typename number1 , typename number2 >
void BlockDiagonalMatrix< MATRIX >::Tvmult ( BlockVector< number1 > &  dst,
const BlockVector< number2 > &  src 
) const [inline]

Member Data Documentation

template<class MATRIX >
unsigned int BlockDiagonalMatrix< MATRIX >::num_blocks [private]
template<class MATRIX >
SmartPointer<const MATRIX> BlockDiagonalMatrix< MATRIX >::matrix [private]

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

deal.II documentation generated on Mon Nov 23 22:57:29 2009 by doxygen 1.6.1