
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 |
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.
| 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.
| void MGSmootherBlock< MATRIX, RELAX, number >::initialize | ( | const MGMATRIX & | matrices, | |
| const MGRELAX & | smoothers | |||
| ) | [inline] |
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.
| void MGSmootherBlock< MATRIX, RELAX, number >::clear | ( | ) | [virtual] |
Empty all vectors.
Implements MGSmootherBase< BlockVector< number > >.
| void MGSmootherBlock< MATRIX, RELAX, number >::set_steps | ( | const unsigned | int | ) |
Modify the number of smoothing steps on finest level.
| void MGSmootherBlock< MATRIX, RELAX, number >::set_variable | ( | const | bool | ) |
Switch on/off variable smoothing.
| void MGSmootherBlock< MATRIX, RELAX, number >::set_symmetric | ( | const | bool | ) |
Switch on/off symmetric smoothing.
| void MGSmootherBlock< MATRIX, RELAX, number >::set_transpose | ( | const | bool | ) |
Switch on/off transposed. This is mutually exclusive with reverse().
| void MGSmootherBlock< MATRIX, RELAX, number >::set_reverse | ( | const | bool | ) |
Switch on/off reversed. This is mutually exclusive with transpose().
| 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 > >.
MGLevelObject<PointerMatrix<MATRIX, BlockVector<number> > > MGSmootherBlock< MATRIX, RELAX, number >::matrices [private] |
Pointer to the matrices.
MGLevelObject<PointerMatrix<RELAX, BlockVector<number> > > MGSmootherBlock< MATRIX, RELAX, number >::smoothers [private] |
Pointer to the matrices.
unsigned int MGSmootherBlock< MATRIX, RELAX, number >::steps [private] |
Number of smoothing steps.
bool MGSmootherBlock< MATRIX, RELAX, number >::variable [private] |
Variable smoothing?
bool MGSmootherBlock< MATRIX, RELAX, number >::symmetric [private] |
Symmetric smoothing?
bool MGSmootherBlock< MATRIX, RELAX, number >::transpose [private] |
bool MGSmootherBlock< MATRIX, RELAX, number >::reverse [private] |
Reverse?
VectorMemory<BlockVector<number> >& MGSmootherBlock< MATRIX, RELAX, number >::mem [private] |
Memory for auxiliary vectors.
documentation generated on Mon Nov 23 22:57:56 2009 by
doxygen
1.6.1