Classes | Public Member Functions | Private Types | Private Member Functions | Friends

PreconditionBlockJacobi< MATRIX, inverse_type > Class Template Reference
[Preconditioners and Relaxation Operators]

Inheritance diagram for PreconditionBlockJacobi< MATRIX, inverse_type >:
Inheritance graph
[legend]

List of all members.

Classes

class  const_iterator

Public Member Functions

template<typename number2 >
void vmult (Vector< number2 > &, const Vector< number2 > &) const
template<typename number2 >
void Tvmult (Vector< number2 > &, const Vector< number2 > &) const
template<typename number2 >
void vmult_add (Vector< number2 > &, const Vector< number2 > &) const
template<typename number2 >
void Tvmult_add (Vector< number2 > &, const Vector< number2 > &) const
template<typename number2 >
void step (Vector< number2 > &dst, const Vector< number2 > &rhs) const
template<typename number2 >
void Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const
const_iterator begin () const
const_iterator end () const
const_iterator begin (const unsigned int r) const
const_iterator end (const unsigned int r) const

Private Types

typedef MATRIX::value_type number

Private Member Functions

template<typename number2 >
void do_vmult (Vector< number2 > &, const Vector< number2 > &, bool adding) const

Friends

class Accessor
class const_iterator

Detailed Description

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
class PreconditionBlockJacobi< MATRIX, inverse_type >

Block Jacobi preconditioning. See PreconditionBlock for requirements on the matrix.

Note:
Instantiations for this template are provided for <float> and <double>; others can be generated in application programs (see the section on Template instantiations in the manual).
Author:
Ralf Hartmann, Guido Kanschat, 1999, 2000, 2003

Definition at line 460 of file precondition_block.h.


Member Typedef Documentation

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
typedef MATRIX::value_type PreconditionBlockJacobi< MATRIX, inverse_type >::number [private]

Define number type of matrix.

Reimplemented from PreconditionBlock< MATRIX, inverse_type >.

Definition at line 467 of file precondition_block.h.


Member Function Documentation

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::vmult ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block Jacobi preconditioning.

This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tvmult ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Same as vmult, since Jacobi is symmetric.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::vmult_add ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block Jacobi preconditioning, adding to dst.

This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tvmult_add ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Same as vmult_add, since Jacobi is symmetric.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::step ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the Jacobi iteration.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::Tstep ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the Jacobi iteration.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::begin (  ) const

STL-like iterator with the first entry.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::end (  ) const

Final iterator.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::begin ( const unsigned int  r ) const

STL-like iterator with the first entry of row r.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
const_iterator PreconditionBlockJacobi< MATRIX, inverse_type >::end ( const unsigned int  r ) const

Final iterator of row r.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MATRIX, inverse_type >::do_vmult ( Vector< number2 > &  ,
const Vector< number2 > &  ,
bool  adding 
) const [private]

Actual implementation of the preconditioner.

Depending on adding, the result of preconditioning is added to the destination vector.


Friends And Related Function Documentation

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
friend class Accessor [friend]

Definition at line 715 of file precondition_block.h.

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
friend class const_iterator [friend]

Definition at line 716 of file precondition_block.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Fri Feb 3 2012 06:04:10 by doxygen 1.7.2