-
Notifications
You must be signed in to change notification settings - Fork 467
Begone, ERISieve! #2933
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
Begone, ERISieve! #2933
Conversation
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.
Just a formality in this case, but marking arguments that are not modified in the function const
is good practice.
Ah, so it seems I made a mistake in my assumptions. The failed CI tells me this:
It seems that PKJK is, in fact, not the only place that uses ERISieve. This v2rdm_casscf plugin does, as well. |
v2rdm strikes again! :-) fwiw, the original author (DePrince) isn't dedicated to preserving the plugin, but it's handy for catching things that may affect downstream users. Right now we're pulling from https://github.com/loriab/v2rdm_casscf/tree/v2rdm8, so if you want to PR a switchout of ERISeive to there for post-1.8, that'd be fine. In any case, it might be worth getting in a deprecation warning now for v1.8 on ERISeive. |
Thank you for the heads-up on this! I'll work on getting rid of ERISieve there, as well, and deprecate ERISieve here for 1.8. With this PR being connected to v2rdm_casscf, it'd probably be wise to make this PR post-1.8. |
I just put up #2935 to deprecate |
1c23e23
to
a15ecf7
Compare
Co-authored-by: TiborGY <tibor.gyori@chem.u-szeged.hu>
Co-authored-by: TiborGY <tibor.gyori@chem.u-szeged.hu>
a15ecf7
to
6097690
Compare
I officially opened up a PR for v2rdm_casscf, at loriab/v2rdm_casscf#5, which removes ERISieve from v2rdm_casscf and replaces it with TwoBodyAOInt. Once that is added in, we can progress with this PR, as that is the current bottleneck preventing this PR from passing CI testing. Ideally, there's no fun surprises after that. |
All right, the necessary v2rdm_casscf changes have been made and incorporated into this PR. So, the review process can proceed! |
category=FutureWarning, | ||
stacklevel=2) | ||
|
||
return core.ERISieve(orbital_basis, cutoff, do_csam) |
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.
you could raise an UpgradeHelper build-48s/src/lib/libint/library-prefix/src/library-build/src/configuration.cc saying how to replace this instead of deleting completely. that is, instead of warning and continuing, it stops with advice. up to you.
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.
helps if I send a link to the code rather than a path on my local machine :-)
psi4/psi4/driver/p4util/python_helpers.py
Line 824 in 819c588
raise UpgradeHelper(key.upper(), key.upper()[:-2], 1.6, " Note the Debye -> a.u. units change.") |
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.
I think this is a pretty good idea! I will give it a look.
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.
So I do have a version of the code that raises an UpgradeHelper
for calling core.ERISieve.build
instead of deleting ERISieve
completely, at https://github.com/davpoolechem/psi4/tree/dpoole34/erisieve-upgrade-helper. That is probably better from an API maintenance approach than simply deleting ERISieve
, but we would probably want to close down this PR and push the other branch instead if we wanted the UpgradeHelper
approach. Which is totally fine by me, to be honest!
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.
ok, new PR is fine. or you could push your alternate branch to this PR's remote branch and continue here.
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.
I'm thinking a new PR would be easier, so I will likely do that.
Closing this one up in favor of #2974. |
Description
This PR is something of an independent project, although it is also a precursor of the continuation of #2695, as agreed upon by discussion there.
This PR completely eliminates the
ERISieve
class, and replaces all of its old functionalities with that ofTwoBodyAOInt
.ERISieve
is a class in libmints that does many of the same things asTwoBodyAOInt
. The amount of features thatERISieve
has, thatTwoBodyAOInt
doesn't, is minimal. It's really just absolute redundancy. Currently,ERISieve
only finds use within the PKJK class and its subalgorithms.As mentioned, this PR eliminates
ERISieve
and replaces it withTwoBodyAOInt
in all of the former's previous use cases. Any previously-utilized functionality that was present inERISieve
and not inTwoBodyAOInt
(a couple functions determining basis function significance) were added toTwoBodyAOInt
. Furthermore, any adjustments needed to supportTwoBodyAOInt
within the PKJK code were made.With all of this,
ERISieve
was also ripped out of the code entirely. Maybe it could go into the attic.User API & Changelog headlines
Dev notes & details
ERISieve
class in libmints has been removed from Psi4 and replaced withTwoBodyAOInt
.ERISieve
that were not inTwoBodyAOInt
and were required in the code, were added toTwoBodyAOInt
.TwoBodyAOInt
.TODO
Questions
ERISieve
can go into the attic now?Checklist
Status