eigvals
Computes the neigs algebraically smallest eigenvalues of a hermitian operator using the LOBPCG block eigensolver. In contrast to the Lanczos algorithm, LOBPCG reliably resolves excited states and their degeneracies, at the cost of a higher memory footprint. Only the eigenvalues are returned; use eigs to additionally obtain the eigenvectors.
The algorithm can be run either on-the-fly (matrix-free) or using a sparse matrix in the compressed-sparse-row format (see CSRMatrix).
Sources: sparse_diag.hpp ยท sparse_diag.cpp
Definition
On-the-fly
Sparse matrix
Parameters
| Name | Description | Default |
|---|---|---|
| ops | OpSum or CSRMatrix defining the bonds of the operator | |
| block | block on which the operator is defined | |
| neigs | number of (lowest) eigenvalues to compute | |
| precision | accuracy of the computed eigenvalues | 1e-12 |
| max_iterations | maximum number of iterations | 1000 |
| random_seed | random seed for setting up the initial block of vectors | 42 |
Returns
An arma::vec (Julia: Vector{Float64}) holding the neigs lowest eigenvalues in ascending order.