Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QCManyBody in DDD #3160

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open

QCManyBody in DDD #3160

wants to merge 16 commits into from

Conversation

loriab
Copy link
Member

@loriab loriab commented Apr 23, 2024

Description

This is a snapshot in which all n-body tests pass using QCManyBody locally. There's lots of code to be erased and reworked yet. And qcmb isn't installed in CI, so tests aren't expected to pass.

User API & Changelog headlines

  • Internal code has been replaced by an external Python module, QCManyBody
  • Several n-body efficiency improvements and a new option supersystem_ie_only that computes the IE rather than MBE, useful for trimers and larger.
  • bug fix for gradient or Hessian vmfc for max_nbody >=3

Dev notes & details

  • Unrelated
    • updated basis_set_exchange to v0.10 and probably fixed the internal build
    • switched internal build of optking to a tag that can work with py312
    • qcvar GEOMETRY ITERATIONS wasn't actually getting set. OPTIMIZATION ITERATIONS is actually listed in the docs glossary, so switched to that and set it.
    • added resp to the codedeps now that it's on c-f, and thus to the ecosystem testing
    • fixed previously excused docs links to qcfractal
  • QCManyBody: build
    • Adds a new pure-python required dependency, qcmanybody, available from c-f or pypi
  • QCManyBody: BSSE efficiency improvements/bug fixes
    • bsse_type=cp + return_total_data=True (not default for energy) will now no longer do every species in both supersystem (for cp) and natural (for uncp) basis sets. It will do everything in the supersystem basis (since cp requested) and only monomers in the monomer basis (for rtd=T).
    • driver=g/h + return_total_data=False, an unlikely combination, won't just fail with syntax error
    • bsse_type=vmfc + driver=g/h + max_nbody`>2 are now computed correctly. Previously (at least since v1.6), only the two highest-body terms were getting summed into the contribution, so values were wrong for trimers and above (assuming max_nbody=fragment count).
    • bsse_type=vmfc + multilevel were running unnecessary calculations, so now more efficient
  • QCManyBody output
    • the internal driver_nbody code had been setting a lot of terse qcvariables like "2", "3CP", "GRADIENT 1". Those have all been removed. Where possible (and up to "4"), replacements are suggested. This required a good amount of changes to the tests.
    • the gradient and Hessian qcvars were previously of dimension appropriate for the subsystem. Now, they have been padded with zeros and have supersystem dimensions.
  • QCManyBody changes
    • most of the operative code for many-body analyses was moved into qcmb. what's left is a derived class that turns psi4 syntax into ManyBodyInput and ManyBodyResult into psi4 qcvars and wfn
    • new entry from task_planner into ManyBodyComputer. current setup isn't final, but there's going to be less logic in the task_planner
    • new option supersystem_ie_only skips the mbe analysis and does the IE directly. useful for trimers and larger.

Checklist

Status

  • Ready for review
  • Ready for merge

@loriab loriab marked this pull request as ready for review May 15, 2024 04:44
@loriab loriab added this to the Psi4 1.10 milestone May 15, 2024
@loriab loriab added bug schema deploys or develops MolSSI/QCSchema external-interface For issues about interfaces with external programs: ADCC, CheMPS2, GDMA, MRCC... driver For issues that are specifically about Psi's driver. labels May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug driver For issues that are specifically about Psi's driver. external-interface For issues about interfaces with external programs: ADCC, CheMPS2, GDMA, MRCC... schema deploys or develops MolSSI/QCSchema
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant