Chen Nuo
Chen Nuo
Current way of convergence check by eigenvalue difference of two successive iterations will **NOT** be able to capture it if convergence is reached in the first cycle. ```cpp this->notconv =...
@WHUweiqingzhou This issue is still pending, since it will need a discussion on the convergence criteria, which may affect all the eigensolvers we have now.
@jinzx10 I'll try on small examples with matrices of around 10 by 10 to help locate the error.
I use a simple 3x3 identity matrix and produce the error as follows: ```bash 151: dim=3, nband=1, ld_psi=3 151: h_mat= 151: 1 0 0 151: 0 1 0 151: 0...
And test by a 6x6 identity: ```bash 151: dim=6, nband=1, ld_psi=6 151: h_mat= 151: 1 0 0 0 0 0 151: 0 1 0 0 0 0 151: 0 0...
@jinzx10 Will it be better to debug with small data file of H matrix? I'm considering adding new unittests for diagonalization methods now that they do not depend on `Hamilt`...
@Critsium-xy Here I provide some tiny toy matrices to demonstrate this phenomenon. You can use it to test dav&dav_sub
@WHUweiqingzhou Changes will be made later, along with kernel ops to make them more robust and clear. I find that some redundant MPI operations are included in GPU code. These...
I add one line in `cal_elem`, which is responsible to update `scc` each iter: ```cpp setmem_complex_op()(this->ctx, this->scc, 0, nbase_x * nbase_x); ``` This line set scc to 0. All tests...
Tests on some examples show an overall acceleration ratio of about 1.1 to 1.2 of HSolverPW. `cal_elem` has been sped up by a factor of about 2, as follows: ...