Classes | Public Member Functions | Protected Attributes

EigenInverse< VECTOR > Class Template Reference
[Linear solver classes]

Inheritance diagram for EigenInverse< VECTOR >:
Inheritance graph
[legend]

List of all members.

Classes

struct  AdditionalData

Public Member Functions

 EigenInverse (SolverControl &cn, VectorMemory< VECTOR > &mem, const AdditionalData &data=AdditionalData())
virtual ~EigenInverse ()
template<class MATRIX >
void solve (double &value, const MATRIX &A, VECTOR &x)

Protected Attributes

AdditionalData additional_data

Detailed Description

template<class VECTOR = Vector<double>>
class EigenInverse< VECTOR >

Inverse iteration (Wieland) for eigenvalue computations.

This class implements an adaptive version of the inverse iteration by Wieland.

There are two choices for the stopping criterion: by default, the norm of the residual $A x - l x$ is computed. Since this might not converge to zero for non-symmetric matrices with non-trivial Jordan blocks, it can be replaced by checking the difference of successive eigenvalues. Use AdditionalData::use_residual for switching this option.

Usually, the initial guess entering this method is updated after each step, replacing it with the new approximation of the eigenvalue. Using a parameter AdditionalData::relaxation between 0 and 1, this update can be damped. With relaxation parameter 0, no update is performed. This damping allows for slower adaption of the shift value to make sure that the method converges to the eigenvalue closest to the initial guess. This can be aided by the parameter AdditionalData::start_adaption, which indicates the first iteration step in which the shift value should be adapted.

Author:
Guido Kanschat, 2000, 2003

Definition at line 139 of file eigen.h.


Constructor & Destructor Documentation

template<class VECTOR >
EigenInverse< VECTOR >::EigenInverse ( SolverControl cn,
VectorMemory< VECTOR > &  mem,
const AdditionalData data = AdditionalData() 
)

Constructor.

Definition at line 311 of file eigen.h.

template<class VECTOR >
EigenInverse< VECTOR >::~EigenInverse (  ) [virtual]

Virtual destructor.

Definition at line 322 of file eigen.h.


Member Function Documentation

template<class VECTOR >
template<class MATRIX >
void EigenInverse< VECTOR >::solve ( double value,
const MATRIX A,
VECTOR &  x 
)

Inverse method. value is the start guess for the eigenvalue and x is the (not necessarily normalized, but nonzero) start vector for the power method. After the iteration, value is the approximated eigenvalue and x is the corresponding eigenvector, normalized with respect to the l2-norm.

Definition at line 330 of file eigen.h.

References Assert, deallog, StandardExceptions::ExcInternalError(), SolverControl::iterate, LogStream::pop(), LogStream::push(), ShiftedMatrix< MATRIX >::shift(), SolverGMRES< VECTOR >::solve(), SolverControl::success, and MATRIX< VECTOR >::vmult().


Member Data Documentation

template<class VECTOR = Vector<double>>
AdditionalData EigenInverse< VECTOR >::additional_data [protected]

Flags for execution.

Definition at line 213 of file eigen.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:07 by doxygen 1.7.2