Variational eom excitation energies

What has been done:

  • Input keyword variational energy has been added to the cc response section, enabling the computation of the variational excitation energy (E = L^T A R) for eom response calculations.
  • Test has been added which reproduces the excitation energies in the ccsd_right_es_energies test to ~2.5e-10 while only using residual thresholds in the es calculation of 10e-4. The resulting left and right es energies are off by ~4e-7.
    • In the ccsd_right_es_energies it takes 30 iterations to converge the right states. In the new test the right states take 20 iterations, the left 7, and then an additional two jacobian transformations are used to perform the sandwich.
  • The current implementation perform one additional jacobian transformation per excited state, but I assume there might be a way of storing the transformed vectors from the davidson solver, but I do not know how easy that is, and how much the biorthonormalisation messes that up.
  • The new code is called from the eom_transition_moment_engine directly which feels a bit wrong so maybe the calculate_and_print_variational_es_energies routine should be moved out of ccs_class and into a new task?

ToDo-list

The boxes below need to be checked before merge review will start

  • Testing
    • All tests pass -rcheck flag enabled in setup.py
    • All tests pass -fbatch flag enabled in setup.py
  • Versioning
    • Changelog.md is up to date
    • If merge into master: The patch number in parameters.F90 and changelog.md is up to date
  • Website (Needs to be done before merge)
    • Updates (if any) to the website have been added
  • Compliance with style guide
Edited by Marcus Takvam Lexander

Merge request reports

Loading