Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Private Attributes | List of all members
PreconditionMG< dim, VECTOR, TRANSFER > Class Template Reference

#include <multigrid.h>

Inheritance diagram for PreconditionMG< dim, VECTOR, TRANSFER >:
[legend]

Public Member Functions

 PreconditionMG (const DoFHandler< dim > &dof_handler, 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
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

SmartPointer< const DoFHandler
< dim >, PreconditionMG< dim,
VECTOR, TRANSFER > > 
dof_handler
 
SmartPointer< Multigrid
< VECTOR >, PreconditionMG
< dim, VECTOR, TRANSFER > > 
multigrid
 
SmartPointer< const TRANSFER,
PreconditionMG< dim, VECTOR,
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

Definition at line 511 of file multigrid.h.

Constructor & Destructor Documentation

template<int dim, class VECTOR, class TRANSFER>
PreconditionMG< dim, VECTOR, TRANSFER >::PreconditionMG ( const DoFHandler< dim > &  dof_handler,
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

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

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

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

Tranposed preconditioning operator.

Not implemented, but the definition may be needed.

Member Data Documentation

template<int dim, class VECTOR, class TRANSFER>
SmartPointer<const DoFHandler<dim>,PreconditionMG<dim,VECTOR,TRANSFER> > PreconditionMG< dim, VECTOR, TRANSFER >::dof_handler
private

Associated DoFHandler.

Definition at line 576 of file multigrid.h.

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

The multigrid object.

Definition at line 581 of file multigrid.h.

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

Object for grid tranfer.

Definition at line 586 of file multigrid.h.


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