Multilevel support

Collaboration diagram for Multilevel support:

Classes

class  MGMatrixBase< VECTOR >
class  MGCoarseGridBase< VECTOR >
class  MGTransferBase< VECTOR >
class  MGSmootherBase< VECTOR >
class  MGSmootherBlock< MATRIX, RELAX, number >
class  MGCoarseGridLACIteration< SOLVER, VECTOR >
class  MGCoarseGridHouseholder< number, VECTOR >
class  MGDoFAccessor< structdim, dim, spacedim >
class  MGDoFCellAccessor< dim, spacedim >
class  MGDoFHandler< dim, spacedim >
class  internal::MGDoFHandler::Iterators< 1, spacedim >
class  internal::MGDoFHandler::Iterators< 2, spacedim >
class  internal::MGDoFHandler::Iterators< 3, spacedim >
class  MGLevelObject< Object >
class  MGMatrix< MATRIX, VECTOR >
class  MGMatrixSelect< MATRIX, number >
class  MGSmoother< VECTOR >
class  MGSmootherIdentity< VECTOR >
class  MGSmootherRelaxation< MATRIX, RELAX, VECTOR >
class  MGSmootherPrecondition< MATRIX, PRECONDITIONER, VECTOR >
class  MGTools
class  MGTransferPrebuilt< VECTOR >
class  MGTransferBlockBase
class  MGTransferBlock< number >
class  MGTransferBlockSelect< number >
class  MGTransferComponentBase
class  MGTransferSelect< number >
class  Multigrid< VECTOR >
class  PreconditionMG< dim, VECTOR, TRANSFER >

Namespaces

namespace  internal

Typedefs

typedef TriaIterator
<::MGDoFCellAccessor
< 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::line_iterator
typedef TriaActiveIterator
<::MGDoFCellAccessor
< 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::active_line_iterator
typedef TriaRawIterator
< InvalidAccessor
< 2, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::raw_quad_iterator
typedef TriaIterator
< InvalidAccessor
< 2, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::quad_iterator
typedef TriaActiveIterator
< InvalidAccessor
< 2, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::active_quad_iterator
typedef TriaRawIterator
< InvalidAccessor
< 3, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::raw_hex_iterator
typedef TriaIterator
< InvalidAccessor
< 3, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::hex_iterator
typedef TriaActiveIterator
< InvalidAccessor
< 3, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::active_hex_iterator
typedef raw_line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::raw_cell_iterator
typedef line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::cell_iterator
typedef active_line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::active_cell_iterator
typedef TriaRawIterator
< InvalidAccessor
< 0, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::raw_face_iterator
typedef TriaIterator
< InvalidAccessor
< 0, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::face_iterator
typedef TriaActiveIterator
< InvalidAccessor
< 0, 1, spacedim > > 
internal::MGDoFHandler::Iterators< 1, spacedim >::active_face_iterator
typedef TriaIterator
<::MGDoFAccessor
< 1, 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::line_iterator
typedef TriaActiveIterator
<::MGDoFAccessor
< 1, 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::active_line_iterator
typedef TriaRawIterator
<::MGDoFCellAccessor
< 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::raw_quad_iterator
typedef TriaIterator
<::MGDoFCellAccessor
< 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::quad_iterator
typedef TriaActiveIterator
<::MGDoFCellAccessor
< 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::active_quad_iterator
typedef TriaRawIterator
< InvalidAccessor
< 3, 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::raw_hex_iterator
typedef TriaIterator
< InvalidAccessor
< 3, 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::hex_iterator
typedef TriaActiveIterator
< InvalidAccessor
< 3, 2, spacedim > > 
internal::MGDoFHandler::Iterators< 2, spacedim >::active_hex_iterator
typedef raw_quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::raw_cell_iterator
typedef quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::cell_iterator
typedef active_quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::active_cell_iterator
typedef raw_line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::raw_face_iterator
typedef line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::face_iterator
typedef active_line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::active_face_iterator
typedef TriaIterator
<::MGDoFAccessor
< 1, 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::line_iterator
typedef TriaActiveIterator
<::MGDoFAccessor
< 1, 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::active_line_iterator
typedef TriaRawIterator
<::MGDoFAccessor
< 2, 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::raw_quad_iterator
typedef TriaIterator
<::MGDoFAccessor
< 2, 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::quad_iterator
typedef TriaActiveIterator
<::MGDoFAccessor
< 2, 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::active_quad_iterator
typedef TriaRawIterator
<::MGDoFCellAccessor
< 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::raw_hex_iterator
typedef TriaIterator
<::MGDoFCellAccessor
< 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::hex_iterator
typedef TriaActiveIterator
<::MGDoFCellAccessor
< 3, spacedim > > 
internal::MGDoFHandler::Iterators< 3, spacedim >::active_hex_iterator
typedef raw_hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::raw_cell_iterator
typedef hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::cell_iterator
typedef active_hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::active_cell_iterator
typedef raw_quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::raw_face_iterator
typedef quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::face_iterator
typedef active_quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::active_face_iterator

Detailed Description

Classes that have to do with multigrid algorithms.

The main class with implementation of the multigrid scheme is Multigrid with its function Multigrid::cycle(). It uses the following abstract classes in order to perform the multigrid cycle:

  1. MGMatrixBase contains the level matrices with a fairly general implementation in MGMatrix
  2. MGCoarseGridBase is the solver on the coarsest level.
  3. MGSmootherBase performs smoothing on each level.
  4. MGTransferBase organizes the transfer between levels.

Additionally, there is a class PreconditionMG, which is a wrapper around Multigrid with the standard interface of deal.II Preconditioners. PreconditionMG also uses the classes inheriting from MGTransferBase, for instance MGTransferPrebuilt, where it uses MGTransferPrebuilt::copy_to_mg() and MGTransferPrebuilt::copy_from_mg_add(), which transfer between the global vector and the level vectors.

Finally, we have several auxiliary classes, namely MGLevelObject, which stores an object on each level

See the step-16 example program on how to use this functionality.


Typedef Documentation

template<int spacedim>
typedef TriaIterator<::MGDoFCellAccessor<1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::line_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFCellAccessor<1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::active_line_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<InvalidAccessor<2,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::raw_quad_iterator [inherited]

template<int spacedim>
typedef TriaIterator<InvalidAccessor<2,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::quad_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<InvalidAccessor<2,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::active_quad_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<InvalidAccessor<3,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::raw_hex_iterator [inherited]

template<int spacedim>
typedef TriaIterator<InvalidAccessor<3,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::hex_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<InvalidAccessor<3,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::active_hex_iterator [inherited]

template<int spacedim>
typedef raw_line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::raw_cell_iterator [inherited]

template<int spacedim>
typedef line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::cell_iterator [inherited]

template<int spacedim>
typedef active_line_iterator internal::MGDoFHandler::Iterators< 1, spacedim >::active_cell_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<InvalidAccessor<0,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::raw_face_iterator [inherited]

template<int spacedim>
typedef TriaIterator<InvalidAccessor<0,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::face_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<InvalidAccessor<0,1,spacedim> > internal::MGDoFHandler::Iterators< 1, spacedim >::active_face_iterator [inherited]

template<int spacedim>
typedef TriaIterator<::MGDoFAccessor<1,2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::line_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFAccessor<1,2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::active_line_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<::MGDoFCellAccessor<2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::raw_quad_iterator [inherited]

template<int spacedim>
typedef TriaIterator<::MGDoFCellAccessor<2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::quad_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFCellAccessor<2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::active_quad_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<InvalidAccessor<3,2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::raw_hex_iterator [inherited]

template<int spacedim>
typedef TriaIterator<InvalidAccessor<3,2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::hex_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<InvalidAccessor<3,2,spacedim> > internal::MGDoFHandler::Iterators< 2, spacedim >::active_hex_iterator [inherited]

template<int spacedim>
typedef raw_quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::raw_cell_iterator [inherited]

template<int spacedim>
typedef quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::cell_iterator [inherited]

template<int spacedim>
typedef active_quad_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::active_cell_iterator [inherited]

template<int spacedim>
typedef raw_line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::raw_face_iterator [inherited]

template<int spacedim>
typedef line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::face_iterator [inherited]

template<int spacedim>
typedef active_line_iterator internal::MGDoFHandler::Iterators< 2, spacedim >::active_face_iterator [inherited]

template<int spacedim>
typedef TriaIterator<::MGDoFAccessor<1,3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::line_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFAccessor<1,3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::active_line_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<::MGDoFAccessor<2,3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::raw_quad_iterator [inherited]

template<int spacedim>
typedef TriaIterator<::MGDoFAccessor<2,3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::quad_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFAccessor<2,3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::active_quad_iterator [inherited]

template<int spacedim>
typedef TriaRawIterator<::MGDoFCellAccessor<3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::raw_hex_iterator [inherited]

template<int spacedim>
typedef TriaIterator<::MGDoFCellAccessor<3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::hex_iterator [inherited]

template<int spacedim>
typedef TriaActiveIterator<::MGDoFCellAccessor<3,spacedim> > internal::MGDoFHandler::Iterators< 3, spacedim >::active_hex_iterator [inherited]

template<int spacedim>
typedef raw_hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::raw_cell_iterator [inherited]

template<int spacedim>
typedef hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::cell_iterator [inherited]

template<int spacedim>
typedef active_hex_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::active_cell_iterator [inherited]

template<int spacedim>
typedef raw_quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::raw_face_iterator [inherited]

template<int spacedim>
typedef quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::face_iterator [inherited]

template<int spacedim>
typedef active_quad_iterator internal::MGDoFHandler::Iterators< 3, spacedim >::active_face_iterator [inherited]


deal.II documentation generated on Thu Mar 11 23:09:56 2010 by doxygen 1.5.9