Class documentation of Concepts

Loading...
Searching...
No Matches
eigensolver::InexactInv< F > Class Template Reference

#include <inexactInv.hh>

Inheritance diagram for eigensolver::InexactInv< F >:
eigensolver::EigenSolver< F > concepts::OutputOperator

Public Member Functions

 InexactInv (concepts::Operator< F > &A, concepts::Operator< F > &B, const concepts::Vector< F > &EFguess, const Real innerTol=0.5, const uint innerMax=100, const Real outerTol=1e-6, const uint outerMax=100)
 
virtual const concepts::Array< F > & getEV ()
 
virtual const concepts::Array< concepts::Vector< F > * > & getEF ()
 
virtual uint iterations () const
 Returns the number of iterations.
 
virtual uint converged () const
 Returns the number of converged eigen pairs.
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 

Detailed Description

template<typename F>
class eigensolver::InexactInv< F >

Inexact inverse iteration to solve a generalized Eigen value problem. The problem to be solved is $Ax = \lambda Bx$. This algorithm uses the inexact solution of a linear system to converge to the first Eigen pair of the Eigen problem.

The class is templated on the value type but only the real part works.

Author
Philipp Frauenfelder, 2003
Test:

test::GolubExample

test::GolubExampleSum

test::MaxwellTransmissionEVP

See also
Gene H. Golub and Qiang Ye, Inexact inverse iteration for generalized Eigenvalue problems, BIT Vol. 40, No. 4 (2000), 671-684.

Definition at line 36 of file inexactInv.hh.

Constructor & Destructor Documentation

◆ InexactInv()

template<typename F >
eigensolver::InexactInv< F >::InexactInv ( concepts::Operator< F > &  A,
concepts::Operator< F > &  B,
const concepts::Vector< F > &  EFguess,
const Real  innerTol = 0.5,
const uint  innerMax = 100,
const Real  outerTol = 1e-6,
const uint  outerMax = 100 
)

Constructor. The relative tolerance $\epsilon$ for the innner iteration can be kept fairly high. In fact, $\rho <
\epsilon \leq 1$ where $\rho = |\lambda_1 / \lambda_2| <
1$. Best results are achieved for $\epsilon$ only slightly larger than $\rho$.

Parameters
AA
BB
EFguessInitial value for the Eigen function
innerTolRelative tolerance for the inner iteration (solution of the linear system)
innerMaxMaximal number of iterations for the inner iteration
outerTolTolerance for the outer iteration (residual of the Eigen function)
outerMaxMaximal number of outer iterations

Member Function Documentation

◆ converged()

template<typename F >
virtual uint eigensolver::InexactInv< F >::converged ( ) const
inlinevirtual

Returns the number of converged eigen pairs.

Implements eigensolver::EigenSolver< F >.

Definition at line 67 of file inexactInv.hh.

◆ getEF()

template<typename F >
virtual const concepts::Array< concepts::Vector< F > * > & eigensolver::InexactInv< F >::getEF ( )
inlinevirtual

Implements eigensolver::EigenSolver< F >.

Definition at line 62 of file inexactInv.hh.

◆ getEV()

template<typename F >
virtual const concepts::Array< F > & eigensolver::InexactInv< F >::getEV ( )
inlinevirtual

Returns an array with the eigen values

Deprecated:
: this interface requires that the returned array must be hold as a member variable of the class. (use std::auto_pointer or similar)

Implements eigensolver::EigenSolver< F >.

Definition at line 59 of file inexactInv.hh.

◆ info()

template<typename F >
virtual std::ostream & eigensolver::InexactInv< F >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from eigensolver::EigenSolver< F >.

◆ iterations()

template<typename F >
virtual uint eigensolver::InexactInv< F >::iterations ( ) const
inlinevirtual

Returns the number of iterations.

Implements eigensolver::EigenSolver< F >.

Definition at line 66 of file inexactInv.hh.


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