Reference documentation for deal.II version 8.1.0
Public Member Functions | Private Attributes | List of all members
MGMatrixSelect< MATRIX, number > Class Template Reference

#include <mg_matrix.h>

Inheritance diagram for MGMatrixSelect< MATRIX, number >:
[legend]

Public Member Functions

 MGMatrixSelect (const unsigned int row=0, const unsigned int col=0, MGLevelObject< MATRIX > *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
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

SmartPointer< MGLevelObject< MATRIX >, MGMatrixSelect< MATRIX, number > > 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

Definition at line 132 of file mg_matrix.h.

Constructor & Destructor Documentation

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

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

Definition at line 385 of file mg_matrix.h.

Member Function Documentation

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

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

Definition at line 398 of file mg_matrix.h.

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

Select the block for multiplication.

Definition at line 407 of file mg_matrix.h.

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

Matrix-vector-multiplication on a certain level.

Implements MGMatrixBase< Vector< number > >.

Definition at line 418 of file mg_matrix.h.

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

Adding matrix-vector-multiplication on a certain level.

Implements MGMatrixBase< Vector< number > >.

Definition at line 432 of file mg_matrix.h.

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

Transpose matrix-vector-multiplication on a certain level.

Implements MGMatrixBase< Vector< number > >.

Definition at line 446 of file mg_matrix.h.

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

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

Implements MGMatrixBase< Vector< number > >.

Definition at line 460 of file mg_matrix.h.

Member Data Documentation

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

Pointer to the matrix objects on each level.

Definition at line 200 of file mg_matrix.h.

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

Row coordinate of selected block.

Definition at line 204 of file mg_matrix.h.

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

Column coordinate of selected block.

Definition at line 208 of file mg_matrix.h.


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