eigensolver::ArPackppSymGen Class Referenceabstract
EigenSolver for symmetric, real-valued, general eigenproblems. More...
#include <arpackpp.hh>
Public Member Functions | |
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. More... | |
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. More... | |
virtual uint | converged () const |
Returns the number of converged eigenpairs. More... | |
virtual uint | converged () const=0 |
Returns the number of converged eigen pairs. More... | |
virtual concepts::Array< concepts::Vector< Real > * > & | getEF () |
Getter for the computed eigenvectors. More... | |
virtual const concepts::Array< Real > & | getEV () |
Getter for the computed eigenvalues. More... | |
concepts::Array< Real > | getRESID () |
Returns the RESID vector. More... | |
virtual uint | iterations () const |
Returns the actual number of Arnoldi iterations. More... | |
virtual uint | iterations () const=0 |
Returns the number of iterations. More... | |
virtual | ~ArPackppSymGen () |
Deconstructor. More... | |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Private Member Functions | |
void | compute_ () |
Computes and stores the eigenpairs. More... | |
Private Attributes | |
ArpackOperatorWrapper< concepts::Real, concepts::Real, concepts::Real > | aow_ |
Wrapper. More... | |
ARSymGenEig< Real, ArpackOperatorWrapper< concepts::Real, concepts::Real, concepts::Real >, ArpackOperatorWrapper< concepts::Real, concepts::Real, concepts::Real > > | arpackSolver_ |
Arpack solver. More... | |
bool | computed_ |
Whether or not eigenpairs have already been computed. More... | |
uint | convEigenvalues_ |
Number of converged eigenpairs. More... | |
concepts::Array< Real > | eigenValues_ |
References into storage for eigenvalues. More... | |
concepts::Array< concepts::Vector< Real > * > | eigenVectors_ |
References into storage for eigenvectors. More... | |
uint | iter_ |
Number of Arnoldi iterations. More... | |
ArPack< Real >::modus | modus_ |
Mode of the Arpack solver. More... | |
char * | whichEV_ |
Identifier indicating which eigenvalues should be calculated. More... | |
Detailed Description
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.
Constructor & Destructor Documentation
◆ ArPackppSymGen() [1/2]
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.
- Parameters
-
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
- Warning
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 -
In Cayley mode
sigma
must not be 0. Therefore the default value is set to 0.1.
◆ ArPackppSymGen() [2/2]
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.
- Parameters
-
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
- Warning
- The matrix
A
of the left hand side has to be real and symmetric. -
The matrix
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. -
In both modes, buckling and standard mode,
sigma
must not be 0. Therefore the default value is set to 0.1.
◆ ~ArPackppSymGen()
|
inlinevirtual |
Deconstructor.
Definition at line 433 of file arpackpp.hh.
Member Function Documentation
◆ compute_()
|
private |
Computes and stores the eigenpairs.
◆ converged() [1/2]
|
inlinevirtual |
Returns the number of converged eigenpairs.
Definition at line 464 of file arpackpp.hh.
◆ converged() [2/2]
|
pure virtualinherited |
Returns the number of converged eigen pairs.
Implemented in eigensolver::ArPack< Real >.
◆ getEF()
|
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.
◆ getEV()
|
inlinevirtual |
Getter for the computed eigenvalues.
Computes eigenvalues and eigenvectors if they have not yet been computed.
Implements eigensolver::EigenSolver< Real >.
- Examples
- arpackppTutorial.cc.
Definition at line 442 of file arpackpp.hh.
◆ getRESID()
|
inline |
Returns the RESID vector.
Definition at line 469 of file arpackpp.hh.
◆ info()
|
inlineprotectedvirtual |
Returns information in an output stream.
Reimplemented from eigensolver::EigenSolver< Real >.
Definition at line 476 of file arpackpp.hh.
◆ iterations() [1/2]
|
inlinevirtual |
Returns the actual number of Arnoldi iterations.
Definition at line 459 of file arpackpp.hh.
◆ iterations() [2/2]
|
pure virtualinherited |
Returns the number of iterations.
Implemented in eigensolver::ArPack< Real >.
Member Data Documentation
◆ aow_
|
private |
Wrapper.
Definition at line 507 of file arpackpp.hh.
◆ arpackSolver_
|
private |
Arpack solver.
Definition at line 512 of file arpackpp.hh.
◆ computed_
|
private |
Whether or not eigenpairs have already been computed.
Definition at line 524 of file arpackpp.hh.
◆ convEigenvalues_
|
private |
Number of converged eigenpairs.
Definition at line 521 of file arpackpp.hh.
◆ eigenValues_
|
private |
References into storage for eigenvalues.
Definition at line 527 of file arpackpp.hh.
◆ eigenVectors_
|
private |
References into storage for eigenvectors.
Definition at line 530 of file arpackpp.hh.
◆ iter_
|
private |
Number of Arnoldi iterations.
Definition at line 518 of file arpackpp.hh.
◆ modus_
|
private |
Mode of the Arpack solver.
Definition at line 504 of file arpackpp.hh.
◆ whichEV_
|
private |
Identifier indicating which eigenvalues should be calculated.
Definition at line 501 of file arpackpp.hh.
The documentation for this class was generated from the following file:
- eigensolver/arpackpp.hh