Public Member Functions | Private Attributes

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

Inheritance diagram for MGSmootherBlock< MATRIX, RELAX, number >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 MGSmootherBlock (VectorMemory< BlockVector< number > > &mem, const unsigned int steps=1, const bool variable=false, const bool symmetric=false, const bool transpose=false, const bool reverse=false)
template<class MGMATRIX , class MGRELAX >
void initialize (const MGMATRIX &matrices, const MGRELAX &smoothers)
void clear ()
void set_steps (const unsigned int)
void set_variable (const bool)
void set_symmetric (const bool)
void set_transpose (const bool)
void set_reverse (const bool)
virtual void smooth (const unsigned int level, BlockVector< number > &u, const BlockVector< number > &rhs) const

Private Attributes

MGLevelObject< PointerMatrix
< MATRIX, BlockVector< number > > > 
matrices
MGLevelObject< PointerMatrix
< RELAX, BlockVector< number > > > 
smoothers
unsigned int steps
bool variable
bool symmetric
bool transpose
bool reverse
VectorMemory< BlockVector
< number > > & 
mem

Detailed Description

template<class MATRIX, class RELAX, typename number>
class MGSmootherBlock< MATRIX, RELAX, number >

General smoother class for block vectors. This class gives complete freedom to the choice of a block smoother by being initialized with a matrix and a smoother object. Therefore, the smoother object for each level must be constructed by hand.

Author:
Guido Kanschat, 2005

Definition at line 46 of file mg_block_smoother.h.


Constructor & Destructor Documentation

template<class MATRIX , class RELAX , typename number >
MGSmootherBlock< MATRIX, RELAX, number >::MGSmootherBlock ( VectorMemory< BlockVector< number > > &  mem,
const unsigned int  steps = 1,
const bool  variable = false,
const bool  symmetric = false,
const bool  transpose = false,
const bool  reverse = false 
)

Constructor. Sets memory and smoothing parameters.


Member Function Documentation

template<class MATRIX , class RELAX , typename number >
template<class MGMATRIX , class MGRELAX >
void MGSmootherBlock< MATRIX, RELAX, number >::initialize ( const MGMATRIX &  matrices,
const MGRELAX &  smoothers 
)

Initialize for matrices. The parameter matrices can be any object having functions get_minlevel() and get_maxlevel() as well as an operator[] returning a reference to MATRIX.

The same convention is used for the parameter smoothers, such that operator[] returns the object doing the block-smoothing on a single level.

This function stores pointers to the level matrices and smoothing operator for each level.

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::clear (  ) [virtual]

Empty all vectors.

Implements MGSmootherBase< BlockVector< number > >.

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::set_steps ( const unsigned  int )

Modify the number of smoothing steps on finest level.

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::set_variable ( const   bool )

Switch on/off variable smoothing.

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::set_symmetric ( const   bool )

Switch on/off symmetric smoothing.

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::set_transpose ( const   bool )

Switch on/off transposed. This is mutually exclusive with reverse().

template<class MATRIX , class RELAX , typename number >
void MGSmootherBlock< MATRIX, RELAX, number >::set_reverse ( const   bool )

Switch on/off reversed. This is mutually exclusive with transpose().

template<class MATRIX , class RELAX , typename number >
virtual void MGSmootherBlock< MATRIX, RELAX, number >::smooth ( const unsigned int  level,
BlockVector< number > &  u,
const BlockVector< number > &  rhs 
) const [virtual]

Implementation of the interface for Multigrid. This function does nothing, which by comparison with the definition of this function means that the the smoothing operator equals the null operator.

Implements MGSmootherBase< BlockVector< number > >.


Member Data Documentation

template<class MATRIX , class RELAX , typename number >
MGLevelObject<PointerMatrix<MATRIX, BlockVector<number> > > MGSmootherBlock< MATRIX, RELAX, number >::matrices [private]

Pointer to the matrices.

Definition at line 141 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
MGLevelObject<PointerMatrix<RELAX, BlockVector<number> > > MGSmootherBlock< MATRIX, RELAX, number >::smoothers [private]

Pointer to the matrices.

Definition at line 146 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
unsigned int MGSmootherBlock< MATRIX, RELAX, number >::steps [private]

Number of smoothing steps.

Definition at line 151 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
bool MGSmootherBlock< MATRIX, RELAX, number >::variable [private]

Variable smoothing?

Definition at line 156 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
bool MGSmootherBlock< MATRIX, RELAX, number >::symmetric [private]

Symmetric smoothing?

Definition at line 161 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
bool MGSmootherBlock< MATRIX, RELAX, number >::transpose [private]

Definition at line 166 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
bool MGSmootherBlock< MATRIX, RELAX, number >::reverse [private]

Reverse?

Definition at line 171 of file mg_block_smoother.h.

template<class MATRIX , class RELAX , typename number >
VectorMemory<BlockVector<number> >& MGSmootherBlock< MATRIX, RELAX, number >::mem [private]

Memory for auxiliary vectors.

Definition at line 176 of file mg_block_smoother.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Fri Feb 3 2012 06:04:09 by doxygen 1.7.2