#include <inexactInv.hh>
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. | |
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.
Definition at line 36 of file inexactInv.hh.
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 .
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 |
|
inlinevirtual |
Returns the number of converged eigen pairs.
Implements eigensolver::EigenSolver< F >.
Definition at line 67 of file inexactInv.hh.
|
inlinevirtual |
Implements eigensolver::EigenSolver< F >.
Definition at line 62 of file inexactInv.hh.
|
inlinevirtual |
Returns an array with the eigen values
Implements eigensolver::EigenSolver< F >.
Definition at line 59 of file inexactInv.hh.
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from eigensolver::EigenSolver< F >.
|
inlinevirtual |
Returns the number of iterations.
Implements eigensolver::EigenSolver< F >.
Definition at line 66 of file inexactInv.hh.