Skip to content

Numerical instability of Davidson iterative eigensolver in solving LR-TDDFT excited states #5376

@maki49

Description

@maki49

Describe the bug

Now lr_solver=dav_subspace has mainly two problems in solving LR-TDDFT excited states:

  1. "Assertion ( psi_norm > 0 ) failed" when doing normalizaiton in cal_grad (also appears in lr_solver=dav)
  2. 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

Metadata

Metadata

Labels

DiagoIssues related to diagonalizaiton methodsEXX and lr-TDDFTRelated to EXX or lr-TDDFT

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions