MGMatrixSelect< MATRIX, number > Class Template Reference
[Multilevel support]

Inheritance diagram for MGMatrixSelect< MATRIX, number >:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 MGMatrixSelect (const unsigned int row=0, const unsigned int col=0, MGLevelObject< MATRIX > *=0)
void set_matrix (MGLevelObject< MATRIX > *M)
void select_block (const unsigned int row, const unsigned int col)
virtual void vmult (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void vmult_add (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void Tvmult (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void Tvmult_add (const unsigned int level, Vector< number > &dst, const Vector< number > &src) const

Private Attributes

SmartPointer< MGLevelObject
< MATRIX > > 
matrix
unsigned int row
unsigned int col


Detailed Description

template<class MATRIX, typename number>
class MGMatrixSelect< MATRIX, number >

Multilevel matrix selecting from block matrices. This class implements the interface defined by MGMatrixBase. The template parameter MATRIX should be a block matrix class like BlockSparseMatrix or BlockSparseMatrixEZ. Then, this class stores a pointer to a MGLevelObject of this matrix class. In each vmult, the block selected on initialization will be multiplied with the vector provided.

Author:
Guido Kanschat, 2002

Constructor & Destructor Documentation

template<class MATRIX , typename number >
MGMatrixSelect< MATRIX, number >::MGMatrixSelect ( const unsigned int  row = 0,
const unsigned int  col = 0,
MGLevelObject< MATRIX > *  p = 0 
) [inline]

Constructor. row and col are the coordinate of the selected block. The other argument is handed over to the SmartPointer constructor.


Member Function Documentation

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::set_matrix ( MGLevelObject< MATRIX > *  M  )  [inline]

Set the matrix object to be used. The matrix object must exist longer as the MGMatrix object, since only a pointer is stored.

References MGMatrixSelect< MATRIX, number >::matrix.

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::select_block ( const unsigned int  row,
const unsigned int  col 
) [inline]

Select the block for multiplication.

References MGMatrixSelect< MATRIX, number >::col, and MGMatrixSelect< MATRIX, number >::row.

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::vmult ( const unsigned int  level,
Vector< number > &  dst,
const Vector< number > &  src 
) const [inline, virtual]

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::vmult_add ( const unsigned int  level,
Vector< number > &  dst,
const Vector< number > &  src 
) const [inline, virtual]

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::Tvmult ( const unsigned int  level,
Vector< number > &  dst,
const Vector< number > &  src 
) const [inline, virtual]

template<class MATRIX , typename number >
void MGMatrixSelect< MATRIX, number >::Tvmult_add ( const unsigned int  level,
Vector< number > &  dst,
const Vector< number > &  src 
) const [inline, virtual]

Adding transpose matrix-vector-multiplication on a certain level.

Implements MGMatrixBase< Vector< number > >.

References Assert, MGMatrixSelect< MATRIX, number >::col, MGMatrixSelect< MATRIX, number >::matrix, and MGMatrixSelect< MATRIX, number >::row.


Member Data Documentation

template<class MATRIX , typename number >
SmartPointer<MGLevelObject<MATRIX> > MGMatrixSelect< MATRIX, number >::matrix [private]

template<class MATRIX , typename number >
unsigned int MGMatrixSelect< MATRIX, number >::row [private]

template<class MATRIX , typename number >
unsigned int MGMatrixSelect< MATRIX, number >::col [private]


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

deal.II documentation generated on Sat Aug 15 16:52:09 2009 by doxygen 1.5.9