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
InverseMatrixRichardson< VECTOR > Class Template Reference

#include <matrix_lib.h>

Inheritance diagram for InverseMatrixRichardson< VECTOR >:
[legend]

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

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

Definition at line 431 of file matrix_lib.h.

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

Definition at line 129 of file matrix_lib.templates.h.

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

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

Definition at line 141 of file matrix_lib.templates.h.

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.

Definition at line 756 of file matrix_lib.h.

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 &  dst,
const VECTOR &  src 
) const

Execute solver.

Definition at line 150 of file matrix_lib.templates.h.

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

Execute solver.

Definition at line 167 of file matrix_lib.templates.h.

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

Execute transpose solver.

Definition at line 187 of file matrix_lib.templates.h.

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

Execute transpose solver.

Definition at line 204 of file matrix_lib.templates.h.

Member Data Documentation

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

A reference to the provided VectorMemory object.

Definition at line 489 of file matrix_lib.h.

template<class VECTOR >
SolverRichardson<VECTOR> InverseMatrixRichardson< VECTOR >::solver
mutableprivate

The solver object.

Definition at line 494 of file matrix_lib.h.

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

The matrix in use.

Definition at line 499 of file matrix_lib.h.

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

The preconditioner to use.

Definition at line 504 of file matrix_lib.h.


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