Reference documentation for deal.II version 9.0.0
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 &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (const char *identifier=nullptr) const
 
void unsubscribe (const char *identifier=nullptr) 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, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string 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 106 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 304 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 317 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 327 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 339 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 354 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 369 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 384 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 161 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 165 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 169 of file mg_matrix.h.


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