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

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
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

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 >.


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 [inline]

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 [inline]

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 [inline]

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 [inline]

Same as vmult_add, since Jacobi is symmetric.

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 [inline, 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]

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


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

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