eigensolver::ArPackSymm Class Referenceabstract
Eigenvalue solver using ArPack, the routine dsaupd
.
More...
#include <ARPACKsymm.hh>
Public Types | |
enum | modus { NORMAL = 1, REGINV = 2, SHIFTINV = 3, BUCKLING = 4, CAYLEY = 5 } |
Specify mode of ArPackSymm which should be used to compute the Ritz values of OP. More... | |
enum | which { LA, SA, LM, SM, BE } |
Specify which of the Ritz values of OP (described in modus ) to compute. More... | |
Public Member Functions | |
ArPackSymm (concepts::Operator< Real > &OP, concepts::Operator< Real > &A, concepts::Operator< Real > &B, const int kmax=1, const Real tol=0.0, const int maxiter=300, enum which target=SM, enum modus mode=REGINV, const Real sigma=0.0, const concepts::Vector< Real > *start=0) | |
Constructor. More... | |
virtual uint | converged () const |
virtual uint | converged () const=0 |
Returns the number of converged eigen pairs. More... | |
virtual const concepts::Array< concepts::Vector< Real > * > & | getEF () |
virtual const concepts::Array< Real > & | getEV () |
Returns an array with the eigen values. More... | |
virtual uint | iterations () const |
virtual uint | iterations () const=0 |
Returns the number of iterations. More... | |
virtual | ~ArPackSymm () |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Private Member Functions | |
void | compute_ () |
Private Attributes | |
concepts::Operator< Real > & | A_ |
Stiffness matrix. More... | |
concepts::Operator< Real > & | B_ |
Operator B as descirbed in modus . More... | |
bool | computed_ |
concepts::Array< Real > | eigenvalues_ |
Storage space for eigenvalues. More... | |
concepts::Array< Real > | eigenvectors_ |
Storage space for eigenvectors. More... | |
concepts::Array< concepts::Vector< Real > * > | ev_ |
References into storage for eigenvectors. More... | |
int | iter_ |
int | k_conv_ |
int | kmax_ |
Number of eigenpairs to be computed. More... | |
int | maxiter_ |
Maximum number of Arnoldi iterations allowed. More... | |
enum modus | mode_ |
Mode in which ArPackSymm should be used. More... | |
int | numop_ |
int | numopb_ |
int | numreo_ |
concepts::Operator< Real > & | OP_ |
Operator OP as described in modus . More... | |
const Real | sigma_ |
Shift for the shift-invert, Buckling or Cayley mode. More... | |
const concepts::Vector< Real > * | start_ |
Starting vector, if not given ArPackSymm invents one. More... | |
enum which | target_ |
Sort of eigenvalues to compute. More... | |
Real | tol_ |
Convergence tolerance for the eigenpairs. More... | |
Detailed Description
Eigenvalue solver using ArPack, the routine dsaupd
.
ArPack is designed to solve large scale eigenvalue problems. The package is designed to compute a few eigenvalues and corresponding eigenvectors of a general n by n matrix A. It is most appropriate for large sparse or structured matrices A. This software is based upon an algorithmic variant of the Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it reduces to a variant of the Lanczos process called the Implicitly Restarted Lanczos Method (IRLM). These variants may be viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR technique that is suitable for large scale problems.
ArPack software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. No auxiliary storage is required. A set of Schur basis vectors for the desired k-dimensional eigen-space is computed which is numerically orthogonal to working precision. Numerically accurate eigenvectors are available on request.
dsaupd
uses implicitly restarted Arnoldi iteration to solve the generalized eigenvalue problem with B symmetric and positive definite. For symmetric problems this reduces to a variant of the Lanczos method.
- See also
- Richard B. Lehoucq, Kristyn J. Maschhoff, Danny C. Sorensen, and Chao Yang, ArPackSymm Homepage.
- Richard B. Lehoucq, Danny C. Sorensen, and Chao Yang. ArPackSymm users' guide. Software, Environments, and Tools. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 1998.
Definition at line 65 of file ARPACKsymm.hh.
Member Enumeration Documentation
◆ modus
Specify mode of ArPackSymm which should be used to compute the Ritz values of OP.
Enumerator | |
---|---|
NORMAL | |
REGINV | |
SHIFTINV | |
BUCKLING | |
CAYLEY |
Definition at line 87 of file ARPACKsymm.hh.
◆ which
Specify which of the Ritz values of OP (described in modus
) to compute.
Enumerator | |
---|---|
LA | |
SA | |
LM | |
SM | |
BE |
Definition at line 70 of file ARPACKsymm.hh.
Constructor & Destructor Documentation
◆ ArPackSymm()
eigensolver::ArPackSymm::ArPackSymm | ( | concepts::Operator< Real > & | OP, |
concepts::Operator< Real > & | A, | ||
concepts::Operator< Real > & | B, | ||
const int | kmax = 1 , |
||
const Real | tol = 0.0 , |
||
const int | maxiter = 300 , |
||
enum which | target = SM , |
||
enum modus | mode = REGINV , |
||
const Real | sigma = 0.0 , |
||
const concepts::Vector< Real > * | start = 0 |
||
) |
Constructor.
- Parameters
-
OP Operator OP as described in modus
A Stiffness matrix B Operator B as descirbed in modus
kmax Number of eigenpairs to be computed tol Convergence tolerance for the eigenpairs. The default value 0.0 is replaced by DLAMCH
('EPS') from LAPACK.maxiter Maximum number of Arnoldi iterations allowed target What sort of eigenvalues to compute mode Mode in which ArPackSymm should be used sigma Shift for the shift-invert, Buckling or Cayley mode
◆ ~ArPackSymm()
|
virtual |
Member Function Documentation
◆ compute_()
|
private |
◆ converged() [1/2]
|
inlinevirtual |
Definition at line 133 of file ARPACKsymm.hh.
◆ converged() [2/2]
|
pure virtualinherited |
Returns the number of converged eigen pairs.
Implemented in eigensolver::ArPack< Real >.
◆ getEF()
|
virtual |
Implements eigensolver::EigenSolver< Real >.
◆ getEV()
|
virtual |
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< Real >.
◆ info()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from eigensolver::EigenSolver< Real >.
◆ iterations() [1/2]
|
inlinevirtual |
Definition at line 132 of file ARPACKsymm.hh.
◆ iterations() [2/2]
|
pure virtualinherited |
Returns the number of iterations.
Implemented in eigensolver::ArPack< Real >.
Member Data Documentation
◆ A_
|
private |
Stiffness matrix.
Definition at line 140 of file ARPACKsymm.hh.
◆ B_
|
private |
Operator B as descirbed in modus
.
Definition at line 142 of file ARPACKsymm.hh.
◆ computed_
|
private |
Definition at line 164 of file ARPACKsymm.hh.
◆ eigenvalues_
|
private |
Storage space for eigenvalues.
Definition at line 151 of file ARPACKsymm.hh.
◆ eigenvectors_
|
private |
Storage space for eigenvectors.
Definition at line 153 of file ARPACKsymm.hh.
◆ ev_
|
private |
References into storage for eigenvectors.
Definition at line 155 of file ARPACKsymm.hh.
◆ iter_
|
private |
Definition at line 149 of file ARPACKsymm.hh.
◆ k_conv_
|
private |
Definition at line 149 of file ARPACKsymm.hh.
◆ kmax_
|
private |
Number of eigenpairs to be computed.
Definition at line 144 of file ARPACKsymm.hh.
◆ maxiter_
|
private |
Maximum number of Arnoldi iterations allowed.
Definition at line 146 of file ARPACKsymm.hh.
◆ mode_
|
private |
Mode in which ArPackSymm should be used.
Definition at line 155 of file ARPACKsymm.hh.
◆ numop_
|
private |
Definition at line 149 of file ARPACKsymm.hh.
◆ numopb_
|
private |
Definition at line 149 of file ARPACKsymm.hh.
◆ numreo_
|
private |
Definition at line 149 of file ARPACKsymm.hh.
◆ OP_
|
private |
Operator OP as described in modus
.
Definition at line 138 of file ARPACKsymm.hh.
◆ sigma_
|
private |
Shift for the shift-invert, Buckling or Cayley mode.
Definition at line 161 of file ARPACKsymm.hh.
◆ start_
|
private |
Starting vector, if not given ArPackSymm invents one.
Definition at line 163 of file ARPACKsymm.hh.
◆ target_
|
private |
Sort of eigenvalues to compute.
Definition at line 155 of file ARPACKsymm.hh.
◆ tol_
|
private |
Convergence tolerance for the eigenpairs.
Definition at line 148 of file ARPACKsymm.hh.
The documentation for this class was generated from the following file:
- eigensolver/ARPACKsymm.hh