4. Parameters and Configurations
4.1. General Parameters
Parameter |
Description |
Suggested value |
Default value |
|---|---|---|---|
|
Rank of the matrix \(A\). |
N/A |
|
|
Number of desired eigenpairs |
No more than 20% of the total number of eigenvalues (or rank of \(A\)) |
N/A |
|
Search space increment such that the overall size of the search space is |
In most cases 20% of the value of |
N/A |
|
An optional flag indicating whether the user provides ChASE with approximate eigenvectors or uses ChASE in isolation as a traditional black-box solver |
When |
|
|
An optional parameter indicating the minimal value for the residual such that the corresponding eigenpair is declared converged. |
As a rule of thumb a minimum value of |
|
|
An optional parameter set as to avoid that ChASE internal while loop runs unchecked in the rare cases where convergence of the desired eigenpairs cannot be secured. Once reached the |
Typically ChASE does not need more than 10 iterations even in the most complex cases and averages 4-5 iterations to convergence. |
|
4.2. Chebyshev Filter
Parameter |
Description |
Suggested value |
Default value |
|---|---|---|---|
|
Polynomial degree for the Chebyshev filter. When the value of |
When |
|
|
An optional flag indicating that the filter uses a vector of degrees optimized for each single filtered vector. |
Despite the fact that the default value is set to |
|
|
A small value used only in combination with |
Usually a small number never larger than |
|
|
A parameter which avoids that vectors with a rather small convergence ratio get overfiltered entering in a regime of numerical instability. |
This value is a result of practice and experience. It can be lowered in case of early instabilities but should not be lower than |
|
4.3. Lanczos DoS (Spectral Estimator)
Parameter |
Description |
Suggested value |
Default value |
|---|---|---|---|
|
In order to estimate the spectral bounds, ChASE executes a limited number of Lanczos steps. These steps are then used to compute an estimate of \(\lambda_1\), \(\lambda_{nev+nex}\), and \(\lambda_N\) based on the Density of State (DoS) algorithm. |
ChASE does not need very precise spectral estimates because at each iteration such estimates are automatically improved by the approximate spectrum computed. For the DoS algorithm to work effectively without overburdening the eigensolver, the number of Lanczos iteration should be not less than |
|
|
After having executed a number of Lanczos steps, ChASE uses a cheap and efficient estimator to calculate the value of the upper extremum of the search space. Such an estimator uses a small number of stochastic vectors indicated by the variable |
Because ChASE does not need precise estimates of the upper extremum of the search space, the number of vectors used is quite small. The expert user can change the value to a larger number than the default value (it is not suggested to use a smaller value) and pay a higher computing cost. It is suggested to not set a value for |
|
4.4. Additional Parameters
Parameter |
Description |
Suggested value |
Default value |
|---|---|---|---|
|
An optional flag indicating whether to use flexible CholeskyQR or Householder QR for orthonormalization. |
Use flexible CholQR ( |
|
|
An optional flag indicating whether to enable symmetry checking to verify matrix properties during computation. |
Enable symmetry checking ( |
|
|
An optional parameter controlling the decaying rate for the polynomial lower bound. The lower bound of the Chebyshev polynomial is set based on an approximation of eigenvalues by few iterations of Lanczos. |
Usually keep the default value of |
|
|
An optional parameter controlling how the upper bound is scaled based on its sign. For positive upper bound, it’s multiplied by this rate. For negative upper bound, it’s multiplied by (2 - rate). |
Default value |
|
|
An optional flag indicating whether to use cluster-aware degree optimization. When enabled, the algorithm detects clusters of eigenvalues and adjusts polynomial degrees accordingly. |
Enable cluster-aware degree optimization ( |
|
4.5. Configuration Object
The chase::ChaseConfig<T> class provides the API for configuring all ChASE
parameters programmatically. This class is accessed through the GetConfig()
method of any ChASE solver instance.
Note
For detailed API documentation of the chase::ChaseConfig<T> class, including
all available methods and their descriptions, please refer to the Doxygen-generated
documentation in the build directory or visit the online documentation.