Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
EigenPower< VectorType > Class Template Reference

#include <deal.II/lac/eigen.h>

Inheritance diagram for EigenPower< VectorType >:


struct  AdditionalData

Public Types

using size_type = types::global_dof_index

Public Member Functions

 EigenPower (SolverControl &cn, VectorMemory< VectorType > &mem, const AdditionalData &data=AdditionalData())
template<typename MatrixType >
void solve (double &value, const MatrixType &A, VectorType &x)

Protected Attributes

AdditionalData additional_data

Additional Inherited Members

- Private Types inherited from SolverBase< VectorType >
using vector_type = VectorType
- Private Member Functions inherited from SolverBase< VectorType >
 SolverBase (SolverControl &solver_control, VectorMemory< VectorType > &vector_memory)
 SolverBase (SolverControl &solver_control)
boost::signals2::connection connect (const std::function< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType &current_iterate)> &slot)
- Private Member Functions inherited from Subscriptor
 Subscriptor ()
 Subscriptor (const Subscriptor &)
 Subscriptor (Subscriptor &&) noexcept
virtual ~Subscriptor ()
Subscriptoroperator= (const Subscriptor &)
Subscriptoroperator= (Subscriptor &&) noexcept
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
unsigned int n_subscriptions () const
template<typename StreamType >
void list_subscribers (StreamType &stream) const
void list_subscribers () const
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
- Static Private Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
- Private Attributes inherited from SolverBase< VectorType >
GrowingVectorMemory< VectorTypestatic_vector_memory
VectorMemory< VectorType > & memory
boost::signals2::signal< SolverControl::State(const unsigned int iteration, const double check_value, const VectorType &current_iterate), StateCombineriteration_status

Detailed Description

template<typename VectorType = Vector<double>>
class EigenPower< VectorType >

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.

Guido Kanschat, 2000

Definition at line 55 of file eigen.h.

Member Typedef Documentation

◆ size_type

template<typename VectorType = Vector<double>>
using EigenPower< VectorType >::size_type = types::global_dof_index

Declare type of container size.

Definition at line 61 of file eigen.h.

Constructor & Destructor Documentation

◆ EigenPower()

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


Definition at line 198 of file eigen.h.

Member Function Documentation

◆ solve()

template<class VectorType >
template<typename MatrixType >
void EigenPower< VectorType >::solve ( double value,
const MatrixType &  A,
VectorType 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 210 of file eigen.h.

Member Data Documentation

◆ additional_data

template<typename VectorType = Vector<double>>
AdditionalData EigenPower< VectorType >::additional_data

Shift parameter.

Definition at line 103 of file eigen.h.

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