Skip to content

Conversation

JonathonMisiewicz
Copy link
Contributor

Description

This PR removes some convergence checks in the dct module that are redundant (when formulated correctly) and currently not implemented correctly.

In the current dct code, my threaded computations with near linear dependencies were taking a variable number of iterations to converge, due to the condition update_scf_density_RHF() < orbitals_threshold_ being false. That check is intended to enforce convergence of the orbitals, which change iteration-to-iteration. update_SCF_density_RHF returns a measure of how much the reference density changed but does not treat it with an orthogonalizer, so in the near linearly-dependent case, numerical noise leads to the computation proceeding even after all other convergence metrics are flat.

Given the choice between fixing the check or removing it, this PR removes it.

  • In the case where orbitals are optimized to satisfy a commutator equation, all of our orbital convergence metrics are motivated by SCF. We already have the SCF check for small orbital residual elsewhere in the code. We don't check that the absolute change in the density is small in the SCF case, so we shouldn't check it here, either.
  • In the case where orbitals are optimized to minimize the energy, there is no theoretical justification for this check. We have existing checks that the residual of the orbital gradient is small.

Todos

  • Removes an unnecessary, buggy dct convergence metric

Checklist

  • dct tests still pass

Status

  • Ready for review
  • Ready for merge

@JonathonMisiewicz JonathonMisiewicz added bug dct For issues with the DCT module. labels Dec 11, 2021
@JonathonMisiewicz JonathonMisiewicz merged commit e8e4dc3 into psi4:master Dec 14, 2021
@JonathonMisiewicz JonathonMisiewicz deleted the nearlindep_check branch December 14, 2021 13:08
@loriab loriab added this to the Psi4 1.6 milestone Dec 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug dct For issues with the DCT module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants