Describe the bug
Now lr_solver=dav_subspace has mainly two problems in solving LR-TDDFT excited states:
- "Assertion ( psi_norm > 0 ) failed" when doing normalizaiton in
cal_grad (also appears in lr_solver=dav)
- Large nonphysical negative eigenvalues (e.g., ~-1e10)
Both of them already exist before #5199, after which the problem 1 become worse.
To Reproduce
In tests/integrate/291_NO_KP_LR, enlarge lr_nstates (for example, 10), or use more k-points.
Possible Solution (with Refactor)
I'm going to try the following solutions that needs some refactor:
- Theoretically the number of initial-guess subspace basis vectors can be larger than the number of eigenpairs (bands or states) to be solved (expecially when the first several eigenpairs degenerate) , but in the present implementation, only
n_bands initial vectors are copied in.
- Pass a precondition function similar to
hpsi_func to enable custom preconditioner (which is hard-coded at present), such as sTDA or rid-preconditioner
Describe the bug
Now
lr_solver=dav_subspacehas mainly two problems in solving LR-TDDFT excited states:cal_grad(also appears inlr_solver=dav)Both of them already exist before #5199, after which the problem 1 become worse.
To Reproduce
In tests/integrate/291_NO_KP_LR, enlarge
lr_nstates(for example, 10), or use more k-points.Possible Solution (with Refactor)
I'm going to try the following solutions that needs some refactor:
n_bandsinitial vectors are copied in.hpsi_functo enable custom preconditioner (which is hard-coded at present), such as sTDA or rid-preconditioner