Chen Nuo

Results 24 comments of 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: ![diag_once](https://github.com/user-attachments/assets/866dc4df-1dde-4e07-be34-be4cad4cdb12)...