FILTLAN  1.0a
Public Member Functions | Public Attributes | List of all members

An instance of this class, taken by FilteredLanczosEigenSolver(), is a collection of options for the filtered Lanczos procedure to solve symmetric eigenvalue problems. More...

#include <filtlan.h>

Inheritance diagram for FilteredLanczosOptions:
LanczosOptions

Public Member Functions

 FilteredLanczosOptions ()
 A constructor to set default options.
 
- Public Member Functions inherited from LanczosOptions
 LanczosOptions ()
 A default constructor to set default options.
 

Public Attributes

bool wantEigVal
 This parameter tells whether eigenvalues are wanted or not (default true). More...
 
mkIndex neigWanted
 Number of eigenvalues/eigenvectors desired. More...
 
mkIndex numIterForEigenRange
 Number of Lanczos iterations to determine an interval which (tightly) contains all eigenvalues (default 30). More...
 
IntervalOptions intervalOpts
 A collection of options to determine the intervals.
 
- Public Attributes inherited from LanczosOptions
bool wantEigVec
 This parameter tells whether eigenvectors are wanted or not (default true). More...
 
mkIndex minIter
 Minimum number of Lanczos iterations. More...
 
mkIndex maxIter
 Maximum number of Lanczos iterations. More...
 
mkIndex extraIter
 Extra number of Lanczos iterations (default 100). More...
 
mkIndex stride
 The convergence is checked every ‘stride’ iterations (default 10).
 
mkIndex defaultMinIterFactor
 The default LanczosOptions::minIter, if not set, is LanczosOptions::defaultMinIterFactor times the number of (largest or smallest) eigenvalues requested. More...
 
mkIndex defaultMaxIterFactor
 The default LanczosOptions::maxIter, if not set, is 500 plus LanczosOptions::defaultMaxIterFactor times the number of (largest or smallest) eigenvalues requested. More...
 
Real tol
 Tolerance of eigenvalues, defined in the relative and average sense, for convergence check (default $\sqrt[5]{\epsilon^4}$, with $\epsilon$ the machine epsilon).
 
Vector v0
 The initial Lanczos vector. More...
 
int reorth
 A flag to tell which reorthogonalization scheme is used (default 1). The value can be 0,1,2. More...
 
Real doubleReorthGamma
 Reorthogonalization is doubled in the iterations with nrm < doubleReorthGamma*nrm_old, where nrm_old and nrm are the norms of the latest Lanczos vector before and after reorthogonalization. More...
 
Real localReorthGamma
 Local reorthogonalization is performed if beta[j-1]<localReorthGamma*beta[j] or localReorthGamma>=1.0, where beta[j] is the latest beta and beta[j-1] is the previous beta at jth Lanczos iteration. More...
 
int partialReorthStrategy
 A flag to tell which partial reorthogonalization strategy is used. The value can be 0,1,2,3. More...
 
bool checkReorth
 Set checkReorth=true for checking whether semi-orthogonality is preserved with partial reorthogonalization. More...
 
Real memoryExpansionFactor
 This parameter determines how much the memory should be expanded when the allocated memory is not sufficient to store the Lanczos vectors and the elements alpha's and beta's which form the symmetric tridiagonal matrix.
 
Real eigLowCut
 Eigenvalues larger than eigLowCut in the lower end will not be computed. More...
 
Real eigHighCut
 Eigenvalues smaller than eigHighCut in the upper end will not be computed. More...
 
int eigSort
 A flag which indicates how to sort eigenvalues (default -1). The value should be no less than -2. More...
 
int disp
 Diagnostic information display level (default 1). The value can be 0,1,2. More...
 
std::ostream * out
 A pointer to an output stream for diagnostic information. By default, it points to std::cout.
 
std::ostream * err
 A pointer to an output stream for error messages. By default, it points to std::cerr.
 

Detailed Description

An instance of this class, taken by FilteredLanczosEigenSolver(), is a collection of options for the filtered Lanczos procedure to solve symmetric eigenvalue problems.

Member Data Documentation

◆ neigWanted

mkIndex FilteredLanczosOptions::neigWanted

Number of eigenvalues/eigenvectors desired.

If neigWanted==0 is given (the default), then it means that all eigenvalues/eigenvectors in the requested interval are to be sought. Otherwise, let nev be the number of eigenvalues in the requested interval. Then

  • If nev <= neigWanted, then the iteration continues until all nev eigenvalues/eigenvectors in the requested interval converge.
  • If nev > neigWanted, then the iteration stops when neigWanted eigenvalues in the requested interval converge.

◆ numIterForEigenRange

mkIndex FilteredLanczosOptions::numIterForEigenRange

Number of Lanczos iterations to determine an interval which (tightly) contains all eigenvalues (default 30).

The filtered Lanczos procedure requires an interval which (tightly) contains all eigenvalues. If it is not provided, then we use a standard Lanczos procedure with numIterForEigenRange iterations to compute one. The higher the numIterForEigenRange, the tighter the interval.

◆ wantEigVal

bool FilteredLanczosOptions::wantEigVal

This parameter tells whether eigenvalues are wanted or not (default true).

Note that the filtered Lanczos procedure computes the eigenvectors first. The computation of eigenvalues is unnecessary if only the invariant subspace is needed.

Remarks
The option wantEigVec inherited from LanczosOptions is no longer effective in the filtered Lanczos procedure.

The documentation for this struct was generated from the following file: