Replace the generalized eigensolver by a divide and conquer version
Description
Replace the generalized eigensolver by a divide and conquer eigensolver, which is much faster.
Tests on bulk silicon with extra states shows that this is better for the subspace diagonalization
| Extra states | Main | This branch |
|---|---|---|
| 250 | 1.092464 | 0.496664 |
| 500 | 7.909831 | 3.258576 |
For 500 extra states, this was the main contribution to the subspace diagonalization.
This affects:
- LCAO
- Chebyshev filtering subspace diagonalization
News snippet
Optimization of the subspace diagonalization
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.