Reference documentation for deal.II version 8.1.0
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
EigenPower< VECTOR > Class Template Reference

#include <eigen.h>

Inheritance diagram for EigenPower< VECTOR >:
[legend]

Classes

struct  AdditionalData
 

Public Types

typedef types::global_dof_index size_type
 

Public Member Functions

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

Protected Attributes

AdditionalData additional_data
 

Additional Inherited Members

- Private Member Functions inherited from Solver< VECTOR >
 Solver (SolverControl &solver_control, VectorMemory< VECTOR > &vector_memory)
 
 Solver (SolverControl &solver_control)
 
SolverControlcontrol () const
 
- Private 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 inherited from Solver< VECTOR >
GrowingVectorMemory< VECTOR > static_vector_memory
 
SolverControlcntrl
 
VectorMemory< VECTOR > & memory
 

Detailed Description

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

Power method (von Mises) for eigenvalue computations.

This method determines the largest eigenvalue of a matrix by applying increasing powers of this matrix to a vector. If there is an eigenvalue $l$ with dominant absolute value, the iteration vectors will become aligned to its eigenspace and $Ax = lx$.

A shift parameter allows to shift the spectrum, so it is possible to compute the smallest eigenvalue, too.

Convergence of this method is known to be slow.

Author
Guido Kanschat, 2000

Definition at line 55 of file eigen.h.

Member Typedef Documentation

template<class VECTOR = Vector<double>>
typedef types::global_dof_index EigenPower< VECTOR >::size_type

Declare type of container size.

Definition at line 61 of file eigen.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 236 of file eigen.h.

template<class VECTOR >
EigenPower< VECTOR >::~EigenPower ( )
virtual

Virtual destructor.

Definition at line 247 of file eigen.h.

Member Function Documentation

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

Power method. 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 255 of file eigen.h.

Member Data Documentation

template<class VECTOR = Vector<double>>
AdditionalData EigenPower< VECTOR >::additional_data
protected

Shift parameter.

Definition at line 120 of file eigen.h.


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