PreconditionMG< dim, VECTOR, TRANSFER > Class Template Reference
[Multilevel support]

Inheritance diagram for PreconditionMG< dim, VECTOR, TRANSFER >:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 PreconditionMG (const MGDoFHandler< dim > &mg_dof, Multigrid< VECTOR > &mg, const TRANSFER &transfer)
bool empty () const
template<class VECTOR2 >
void vmult (VECTOR2 &dst, const VECTOR2 &src) const
template<class VECTOR2 >
void vmult_add (VECTOR2 &dst, const VECTOR2 &src) const
template<class VECTOR2 >
void Tvmult (VECTOR2 &dst, const VECTOR2 &src) const
template<class VECTOR2 >
void Tvmult_add (VECTOR2 &dst, const VECTOR2 &src) const

Private Attributes

SmartPointer< const
MGDoFHandler< dim > > 
mg_dof_handler
SmartPointer< Multigrid< VECTOR > > multigrid
SmartPointer< const TRANSFER > transfer


Detailed Description

template<int dim, class VECTOR, class TRANSFER>
class PreconditionMG< dim, VECTOR, TRANSFER >

Multi-level preconditioner. Here, we collect all information needed for multi-level preconditioning and provide the standard interface for LAC iterative methods.

Furthermore, it needs functions void copy_to_mg(const VECTOR&) to store src in the right hand side of the multi-level method and void copy_from_mg(VECTOR&) to store the result of the v-cycle in dst.

Author:
Guido Kanschat, 1999, 2000, 2001, 2002

Constructor & Destructor Documentation

template<int dim, class VECTOR, class TRANSFER>
PreconditionMG< dim, VECTOR, TRANSFER >::PreconditionMG ( const MGDoFHandler< dim > &  mg_dof,
Multigrid< VECTOR > &  mg,
const TRANSFER &  transfer 
)

Constructor. Arguments are the multigrid object, pre-smoother, post-smoother and coarse grid solver.


Member Function Documentation

template<int dim, class VECTOR, class TRANSFER>
bool PreconditionMG< dim, VECTOR, TRANSFER >::empty (  )  const

Dummy function needed by other classes.

template<int dim, class VECTOR, class TRANSFER>
template<class VECTOR2 >
void PreconditionMG< dim, VECTOR, TRANSFER >::vmult ( VECTOR2 &  dst,
const VECTOR2 &  src 
) const [inline]

Preconditioning operator. Calls the vcycle function of the MG object passed to the constructor.

This is the operator used by LAC iterative solvers.

template<int dim, class VECTOR, class TRANSFER>
template<class VECTOR2 >
void PreconditionMG< dim, VECTOR, TRANSFER >::vmult_add ( VECTOR2 &  dst,
const VECTOR2 &  src 
) const [inline]

Preconditioning operator. Calls the vcycle function of the MG object passed to the constructor.

template<int dim, class VECTOR, class TRANSFER>
template<class VECTOR2 >
void PreconditionMG< dim, VECTOR, TRANSFER >::Tvmult ( VECTOR2 &  dst,
const VECTOR2 &  src 
) const [inline]

Tranposed preconditioning operator.

Not implemented, but the definition may be needed.

template<int dim, class VECTOR, class TRANSFER>
template<class VECTOR2 >
void PreconditionMG< dim, VECTOR, TRANSFER >::Tvmult_add ( VECTOR2 &  dst,
const VECTOR2 &  src 
) const [inline]

Tranposed preconditioning operator.

Not implemented, but the definition may be needed.


Member Data Documentation

template<int dim, class VECTOR, class TRANSFER>
SmartPointer<const MGDoFHandler<dim> > PreconditionMG< dim, VECTOR, TRANSFER >::mg_dof_handler [private]

Associated MGDoFHandler.

template<int dim, class VECTOR, class TRANSFER>
SmartPointer<Multigrid<VECTOR> > PreconditionMG< dim, VECTOR, TRANSFER >::multigrid [private]

The multigrid object.

template<int dim, class VECTOR, class TRANSFER>
SmartPointer<const TRANSFER> PreconditionMG< dim, VECTOR, TRANSFER >::transfer [private]

Object for grid tranfer.


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

deal.II documentation generated on Sat Aug 15 16:52:13 2009 by doxygen 1.5.9