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

#include <deal.II/multigrid/mg_matrix.h>

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

Public Member Functions

 MGMatrixSelect (const unsigned int row=0, const unsigned int col=0, MGLevelObject< MatrixType > *matrix=0)
 
void set_matrix (MGLevelObject< MatrixType > *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 MGMatrixBase< Vector< number > >
virtual unsigned int get_minlevel () const=0
 
virtual unsigned int get_maxlevel () const=0
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

SmartPointer< MGLevelObject< MatrixType >, MGMatrixSelect< MatrixType, number > > matrix
 
unsigned int row
 
unsigned int col
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 

Detailed Description

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

Multilevel matrix selecting from block matrices. This class implements the interface defined by MGMatrixBase. The template parameter MatrixType 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 100 of file mg_matrix.h.

Constructor & Destructor Documentation

◆ MGMatrixSelect()

template<typename MatrixType , typename number >
MGMatrixSelect< MatrixType, number >::MGMatrixSelect ( const unsigned int  row = 0,
const unsigned int  col = 0,
MGLevelObject< MatrixType > *  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 290 of file mg_matrix.h.

Member Function Documentation

◆ set_matrix()

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

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

Definition at line 303 of file mg_matrix.h.

◆ select_block()

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

Select the block for multiplication.

Definition at line 313 of file mg_matrix.h.

◆ vmult()

template<typename MatrixType , typename number >
void MGMatrixSelect< MatrixType, 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 325 of file mg_matrix.h.

◆ vmult_add()

template<typename MatrixType , typename number >
void MGMatrixSelect< MatrixType, 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 340 of file mg_matrix.h.

◆ Tvmult()

template<typename MatrixType , typename number >
void MGMatrixSelect< MatrixType, 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 355 of file mg_matrix.h.

◆ Tvmult_add()

template<typename MatrixType , typename number >
void MGMatrixSelect< MatrixType, 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 370 of file mg_matrix.h.

Member Data Documentation

◆ matrix

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

Pointer to the matrix objects on each level.

Definition at line 155 of file mg_matrix.h.

◆ row

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

Row coordinate of selected block.

Definition at line 159 of file mg_matrix.h.

◆ col

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

Column coordinate of selected block.

Definition at line 163 of file mg_matrix.h.


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