-
Notifications
You must be signed in to change notification settings - Fork 438
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
split mbis oeprop #2273
split mbis oeprop #2273
Conversation
5a9b6e1
to
c2c53e4
Compare
The code looks anodyne, but I would appreciate information about how this fixes #2272. From my understanding, #2272 is that when QCEngine tasks Psi with computing MBIS charges, Psi (a) would try to compute atom volumes but (b) would not have set some necessary variables. I would like to understand why the call coming from QCEngine rather than a Psi input file means we get both (a) and (b) and how this PR disrupts that mechanism. |
Is this any clearer? It isn't the QCEngine involvement that causes trouble -- it's the breakdown in consistency btwn the two calling routes. And if you try the straightforward way of making them consistent (compute free atom volumes in scf_helper fn like the oeprop fn does), you fall into recursion. |
tests/mbis-1/input.dat
Outdated
@@ -76,7 +76,7 @@ set { | |||
} | |||
|
|||
e, wfn = energy('hf/cc-pvdz', return_wfn=True) | |||
oeprop(wfn, 'MBIS_CHARGES', title='H20 SCF') | |||
oeprop(wfn, 'MBIS_CHARGES', "MBIS_VOLUME_RATIOS", title='H20 SCF') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two things:
- it would make sense to check that
oeprop(wfn, 'MBIS_CHARGES')
works independently from runningoeprop(wfn, 'MBIS_VOLUME_RATIOS')
; either this test, ormbis-2
below are good candidates. - the quotation marks are inconsistent - is this also because of
black
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good idea -- I've split mbis-1
up now.
the quotes are just my style has changed from single to double to placate black
. the driver codebase will get a black
run someday, I expect, so I often convert any lines I touch for other reasons to minimize churn at format time. these tests won't likely get that treatment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reference test outputs are missing, but apart from that it looks OK so I've approved it.
Description
This is a start to addressing #2272
Todos
MBIS_CHARGES
andMBIS_VOLUME_RATIOS
are now separate oeprop tasks to the user but still reusing code.oeprop(wfn, "MBIS_VOLUME_RATIOS")
should be fine (indep oeprop fn), butset scf_properties mbis_volume_ratios; energy("scf")
will still fail as MBIS fails via QCEngine #2272 reported because those areOEProp
class instantiations called from proc.py, and the free atom volumes aren't available. The oeprop.cc code could exit gracefully when free atom volumes aren't available, but having different properties lists for the two calling routes isn't good.OEProp
s in proc.py so that atom volumes are available? nice thought, but the fn that produces them itself calls oeprop() and energy() and descends into endless recursion. I haven't sought the logic that makes this all work together.Checklist
Status