#include <arpackpp.hh>
Public Member Functions | |
ArPackppSymGen (concepts::Operator< Real > &OP, concepts::Operator< Real > &A, concepts::Operator< Real > &B, int kmax=1, Real sigma=0.1, Real tol=0.0, int maxiter=300) | |
ArPackppSymGen (char invertType, concepts::Operator< Real > &OP, concepts::Operator< Real > &A, int kmax=1, Real sigma=0.1, Real tol=0.0, int maxiter=300) | |
virtual | ~ArPackppSymGen () |
Deconstructor. | |
virtual const concepts::Array< Real > & | getEV () |
virtual concepts::Array< concepts::Vector< Real > * > & | getEF () |
virtual uint | iterations () const |
Returns the actual number of Arnoldi iterations. | |
virtual uint | converged () const |
Returns the number of converged eigenpairs. | |
concepts::Array< Real > | getRESID () |
Returns the RESID vector. | |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
EigenSolver for symmetric, real-valued, general eigenproblems. Solves problems of the form with symmetric, real-valued matrices A and B using Arpack's Cayley or buckling mode.
Definition at line 349 of file arpackpp.hh.
eigensolver::ArPackppSymGen::ArPackppSymGen | ( | concepts::Operator< Real > & | OP, |
concepts::Operator< Real > & | A, | ||
concepts::Operator< Real > & | B, | ||
int | kmax = 1 , |
||
Real | sigma = 0.1 , |
||
Real | tol = 0.0 , |
||
int | maxiter = 300 |
||
) |
Shift and invert mode constructor, Cayley mode.
OP | multiplication operator, OP * x = inv(A-sigma*B) * x |
A | matrix of the left hand side |
B | matrix of the right hand side |
kmax | number of eigenpairs to be computed, default 1 |
sigma | real-valued shift for the shift-invert mode, default 0.1 |
tol | convergence tolerance for the eigenpairs, default 0.0 (is replaced by LAPACK's DLAMCH ('EPS')) |
maxiter | maximum number of Arnoldi iterations, default 300 |
A
has to be real and symmetric. B
has to be real, symmetric and positive definite. kmax
has to be larger than or equal to 1 and smaller than than dimension of the matrix sigma
must not be 0. Therefore the default value is set to 0.1. eigensolver::ArPackppSymGen::ArPackppSymGen | ( | char | invertType, |
concepts::Operator< Real > & | OP, | ||
concepts::Operator< Real > & | A, | ||
int | kmax = 1 , |
||
Real | sigma = 0.1 , |
||
Real | tol = 0.0 , |
||
int | maxiter = 300 |
||
) |
Shift and invert mode constructor, buckling and standard mode.
invertType | mode identifier, either "B" for buckling mode, or "S" for standard mode |
OP | multiplication operator, OP * x = inv(A-sigma*B) * x |
A | depending on the invertType , A is either the matrix A of the left hand side (buckling mode "B") or the matrix B of the right hand side (standard mode "S") |
kmax | number of eigenpairs to be computed, default 1 |
sigma | real-valued shift for the shift-invert mode, default 0.1 |
tol | convergence tolerance for the eigenpairs, default 0.0 (is replaced by LAPACK's DLAMCH ('EPS')) |
maxiter | maximum number of Arnoldi iterations, default 300 |
A
of the left hand side has to be real and symmetric. B
of the right hand side has to be real, symmetric and positive definite. kmax
has to be larger than or equal to 1 and smaller than or equal to the dimension of the matrix minus 2. sigma
must not be 0. Therefore the default value is set to 0.1.
|
inlinevirtual |
Deconstructor.
Definition at line 433 of file arpackpp.hh.
|
inlinevirtual |
Returns the number of converged eigenpairs.
Implements eigensolver::EigenSolver< Real >.
Definition at line 464 of file arpackpp.hh.
|
inlinevirtual |
Getter for the computed eigenvectors. Computes eigenvalues and eigenvectors if they have not yet been computed.
Implements eigensolver::EigenSolver< Real >.
Definition at line 452 of file arpackpp.hh.
|
inlinevirtual |
Getter for the computed eigenvalues. Computes eigenvalues and eigenvectors if they have not yet been computed.
Implements eigensolver::EigenSolver< Real >.
Definition at line 442 of file arpackpp.hh.
|
inline |
Returns the RESID vector.
Definition at line 469 of file arpackpp.hh.
|
inlineprotectedvirtual |
Returns information in an output stream.
Reimplemented from eigensolver::EigenSolver< Real >.
Definition at line 476 of file arpackpp.hh.
|
inlinevirtual |
Returns the actual number of Arnoldi iterations.
Implements eigensolver::EigenSolver< Real >.
Definition at line 459 of file arpackpp.hh.