eigensolver::InexactInv< F > Class Template Reference
Inexact inverse iteration to solve a generalized Eigen value problem. More...
#include <inexactInv.hh>
Public Member Functions | |
virtual uint | converged () const |
Returns the number of converged eigen pairs. More... | |
virtual const concepts::Array< concepts::Vector< F > * > & | getEF () |
virtual const concepts::Array< F > & | getEV () |
Returns an array with the eigen values. More... | |
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. More... | |
virtual uint | iterations () const |
Returns the number of iterations. More... | |
virtual | ~InexactInv () |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Private Member Functions | |
void | compute_ () |
Does the computations. More... | |
Private Attributes | |
concepts::Operator< F > & | A_ |
concepts::Operator< F > & | B_ |
bool | computed_ |
concepts::Vector< F > | eigenfunction_ |
F & | eigenvalue_ |
Real | epsilon_ |
uint | innerIter_ |
uint | innerMax_ |
Real | innerTol_ |
uint | iterations_ |
uint | outerMax_ |
Real | outerTol_ |
concepts::Array< F > | returnValue1_ |
concepts::Array< concepts::Vector< F > * > | returnValue2_ |
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 . 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.
- 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()
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 for the innner iteration can be kept fairly high. In fact, where . Best results are achieved for only slightly larger than .
- Parameters
-
A A B B EFguess Initial value for the Eigen function innerTol Relative tolerance for the inner iteration (solution of the linear system) innerMax Maximal number of iterations for the inner iteration outerTol Tolerance for the outer iteration (residual of the Eigen function) outerMax Maximal number of outer iterations
◆ ~InexactInv()
|
virtual |
Member Function Documentation
◆ compute_()
|
private |
Does the computations.
◆ converged()
|
inlinevirtual |
Returns the number of converged eigen pairs.
Implements eigensolver::EigenSolver< F >.
Definition at line 67 of file inexactInv.hh.
◆ getEF()
|
inlinevirtual |
Implements eigensolver::EigenSolver< F >.
Definition at line 62 of file inexactInv.hh.
◆ 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()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from eigensolver::EigenSolver< F >.
◆ iterations()
|
inlinevirtual |
Returns the number of iterations.
Implements eigensolver::EigenSolver< F >.
Definition at line 66 of file inexactInv.hh.
Member Data Documentation
◆ A_
|
private |
Definition at line 73 of file inexactInv.hh.
◆ B_
|
private |
Definition at line 73 of file inexactInv.hh.
◆ computed_
|
private |
Definition at line 84 of file inexactInv.hh.
◆ eigenfunction_
|
private |
Definition at line 76 of file inexactInv.hh.
◆ eigenvalue_
|
private |
Definition at line 75 of file inexactInv.hh.
◆ epsilon_
|
private |
Definition at line 82 of file inexactInv.hh.
◆ innerIter_
|
private |
Definition at line 81 of file inexactInv.hh.
◆ innerMax_
|
private |
Definition at line 79 of file inexactInv.hh.
◆ innerTol_
|
private |
Definition at line 78 of file inexactInv.hh.
◆ iterations_
|
private |
Definition at line 81 of file inexactInv.hh.
◆ outerMax_
|
private |
Definition at line 79 of file inexactInv.hh.
◆ outerTol_
|
private |
Definition at line 78 of file inexactInv.hh.
◆ returnValue1_
|
private |
Definition at line 74 of file inexactInv.hh.
◆ returnValue2_
|
private |
Definition at line 77 of file inexactInv.hh.
The documentation for this class was generated from the following file:
- eigensolver/inexactInv.hh