InverseMatrixRichardson< VECTOR > Class Template Reference
[Derived matrices]

Inheritance diagram for InverseMatrixRichardson< VECTOR >:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 InverseMatrixRichardson (SolverControl &control, VectorMemory< VECTOR > &mem)
 ~InverseMatrixRichardson ()
template<class MATRIX , class PRECONDITION >
void initialize (const MATRIX &, const PRECONDITION &)
SolverControlcontrol () const
void vmult (VECTOR &, const VECTOR &) const
void vmult_add (VECTOR &, const VECTOR &) const
void Tvmult (VECTOR &, const VECTOR &) const
void Tvmult_add (VECTOR &, const VECTOR &) const

Private Attributes

VectorMemory< VECTOR > & mem
SolverRichardson< VECTOR > solver
PointerMatrixBase< VECTOR > * matrix
PointerMatrixBase< VECTOR > * precondition


Detailed Description

template<class VECTOR>
class InverseMatrixRichardson< VECTOR >

Inverse matrix computed approximately by using the SolverRichardson iterative solver. In particular, the function SolverRichardson::Tsolve() allows for the implementation of transpose matrix vector products.

The functions vmult() and Tvmult() appoximate the inverse iteratively starting with the vector dst. Functions vmult_add() and Tvmult_add() start the iteration with a zero vector.

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:
Guido Kanschat, 2005

Constructor & Destructor Documentation

template<class VECTOR >
InverseMatrixRichardson< VECTOR >::InverseMatrixRichardson ( SolverControl control,
VectorMemory< VECTOR > &  mem 
)

Constructor, initializing the solver with a control and memory object. The inverted matrix and the preconditioner are added in initialize().

template<class VECTOR >
InverseMatrixRichardson< VECTOR >::~InverseMatrixRichardson (  ) 

Since we use two pointers, we must implement a destructor.


Member Function Documentation

template<class VECTOR >
template<class MATRIX , class PRECONDITION >
void InverseMatrixRichardson< VECTOR >::initialize ( const MATRIX &  m,
const PRECONDITION &  p 
) [inline]

Initialization function. Provide a solver object, a matrix, and another preconditioner for this.

References InverseMatrixRichardson< VECTOR >::matrix, and InverseMatrixRichardson< VECTOR >::precondition.

template<class VECTOR >
SolverControl& InverseMatrixRichardson< VECTOR >::control (  )  const

Access to the SolverControl object used by the solver.

template<class VECTOR >
void InverseMatrixRichardson< VECTOR >::vmult ( VECTOR &  ,
const VECTOR &   
) const

Execute solver.

template<class VECTOR >
void InverseMatrixRichardson< VECTOR >::vmult_add ( VECTOR &  ,
const VECTOR &   
) const

Execute solver.

template<class VECTOR >
void InverseMatrixRichardson< VECTOR >::Tvmult ( VECTOR &  ,
const VECTOR &   
) const

Execute transpose solver.

template<class VECTOR >
void InverseMatrixRichardson< VECTOR >::Tvmult_add ( VECTOR &  ,
const VECTOR &   
) const

Execute transpose solver.


Member Data Documentation

template<class VECTOR >
VectorMemory<VECTOR>& InverseMatrixRichardson< VECTOR >::mem [private]

A reference to the provided VectorMemory object.

template<class VECTOR >
SolverRichardson<VECTOR> InverseMatrixRichardson< VECTOR >::solver [mutable, private]

The solver object.

template<class VECTOR >
PointerMatrixBase<VECTOR>* InverseMatrixRichardson< VECTOR >::matrix [private]

The matrix in use.

Referenced by InverseMatrixRichardson< VECTOR >::initialize().

template<class VECTOR >
PointerMatrixBase<VECTOR>* InverseMatrixRichardson< VECTOR >::precondition [private]

The preconditioner to use.

Referenced by InverseMatrixRichardson< VECTOR >::initialize().


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

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