Reference documentation for deal.II version 8.5.1
Public Member Functions | Private Attributes | List of all members
PreconditionMG< dim, VectorType, TRANSFER > Class Template Reference

#include <deal.II/multigrid/multigrid.h>

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

Public Member Functions

 PreconditionMG (const DoFHandler< dim > &dof_handler, Multigrid< VectorType > &mg, const TRANSFER &transfer)
 
bool empty () const
 
template<class OtherVectorType >
void vmult (OtherVectorType &dst, const OtherVectorType &src) const
 
template<class OtherVectorType >
void vmult_add (OtherVectorType &dst, const OtherVectorType &src) const
 
template<class OtherVectorType >
void Tvmult (OtherVectorType &dst, const OtherVectorType &src) const
 
template<class OtherVectorType >
void Tvmult_add (OtherVectorType &dst, const OtherVectorType &src) const
 
IndexSet locally_owned_range_indices () const
 
IndexSet locally_owned_domain_indices () const
 
MPI_Comm get_mpi_communicator () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

SmartPointer< const DoFHandler< dim >, PreconditionMG< dim, VectorType, TRANSFER > > dof_handler
 
SmartPointer< Multigrid< VectorType >, PreconditionMG< dim, VectorType, TRANSFER > > multigrid
 
SmartPointer< const TRANSFER, PreconditionMG< dim, VectorType, TRANSFER > > transfer
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 

Detailed Description

template<int dim, typename VectorType, class TRANSFER>
class PreconditionMG< dim, VectorType, 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 VectorType&) to store src in the right hand side of the multi-level method and void copy_from_mg(VectorType&) to store the result of the v-cycle in dst.

Author
Guido Kanschat, 1999, 2000, 2001, 2002

Definition at line 362 of file multigrid.h.

Constructor & Destructor Documentation

◆ PreconditionMG()

template<int dim, typename VectorType, class TRANSFER>
PreconditionMG< dim, VectorType, TRANSFER >::PreconditionMG ( const DoFHandler< dim > &  dof_handler,
Multigrid< VectorType > &  mg,
const TRANSFER &  transfer 
)

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

Member Function Documentation

◆ empty()

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

Dummy function needed by other classes.

◆ vmult()

template<int dim, typename VectorType, class TRANSFER>
template<class OtherVectorType >
void PreconditionMG< dim, VectorType, TRANSFER >::vmult ( OtherVectorType &  dst,
const OtherVectorType &  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.

◆ vmult_add()

template<int dim, typename VectorType, class TRANSFER>
template<class OtherVectorType >
void PreconditionMG< dim, VectorType, TRANSFER >::vmult_add ( OtherVectorType &  dst,
const OtherVectorType &  src 
) const

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

◆ Tvmult()

template<int dim, typename VectorType, class TRANSFER>
template<class OtherVectorType >
void PreconditionMG< dim, VectorType, TRANSFER >::Tvmult ( OtherVectorType &  dst,
const OtherVectorType &  src 
) const

Tranposed preconditioning operator.

Not implemented, but the definition may be needed.

◆ Tvmult_add()

template<int dim, typename VectorType, class TRANSFER>
template<class OtherVectorType >
void PreconditionMG< dim, VectorType, TRANSFER >::Tvmult_add ( OtherVectorType &  dst,
const OtherVectorType &  src 
) const

Tranposed preconditioning operator.

Not implemented, but the definition may be needed.

◆ locally_owned_range_indices()

template<int dim, typename VectorType, class TRANSFER>
IndexSet PreconditionMG< dim, VectorType, TRANSFER >::locally_owned_range_indices ( ) const

Return the partitioning of the range space of this preconditioner, i.e., the partitioning of the vectors that are result from matrix-vector products.

◆ locally_owned_domain_indices()

template<int dim, typename VectorType, class TRANSFER>
IndexSet PreconditionMG< dim, VectorType, TRANSFER >::locally_owned_domain_indices ( ) const

Return the partitioning of the domain space of this preconditioner, i.e., the partitioning of the vectors this matrix has to be multiplied with.

◆ get_mpi_communicator()

template<int dim, typename VectorType, class TRANSFER>
MPI_Comm PreconditionMG< dim, VectorType, TRANSFER >::get_mpi_communicator ( ) const

Return the MPI communicator object in use with this preconditioner.

Member Data Documentation

◆ dof_handler

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

Associated DoFHandler.

Definition at line 433 of file multigrid.h.

◆ multigrid

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

The multigrid object.

Definition at line 438 of file multigrid.h.

◆ transfer

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

Object for grid tranfer.

Definition at line 443 of file multigrid.h.


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