-
Notifications
You must be signed in to change notification settings - Fork 475
IncFock Standardization Part 2: DirectJK #2808
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
Conversation
loriab
left a comment
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.
Thanks for looking at stability. Probably later we can add a test for each of the stabilities that parameterizes all the scf methods and incfock combinations.
| #ifdef USING_BrianQC | ||
| if (brianEnable) { | ||
| // zero out J, K, and wK matrices | ||
| zero(); |
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 checking that editing brianqc code intentional.
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.
Indeed it is!
The original DirectJK code has a call to zero() at the very beginning of compute_JK(). Unfortunately, this zero() call breaks the IncFock code when using the new IncFock formalism, so essentially, the call to zero() was moved down further in DirectJK. However, the call to zero() also occurs before the BrianQC code. So, I assumed that just flat-out getting rid of the call to zero() at the beginning would break the BrianQC code. The addition of zero() to BrianQC, then, is essentially making sure that zero() is still called at the beginning when BrianQC is used.
Thinking about it further, though, it's possible this same effect can be had by just replacing the original call to zero() with something like
if (!incfock_) zero();
Then, the zero() call is only done for non-IncFock runs without changing the BrianQC code at all. Might be safer to do it that way, since I am not sure if we have immediate access to BrianQC to test changes to BrianQC code.
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.
We don't have immediate BrianQC access, so I think the consolidated zero() you propose would be good.
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'll admit, my only concern is some edge case where someone uses BrianQC while requesting IncFock, then the initial zeroing doesn't happen because IncFock is requested, and then BrianQC possibly breaks.
You're welcome! This would probably be a good idea, especially since, from my testing, some issues pop up with stability tests UHF references depending on the SCF_TYPE method used currently. |
|
Ping me for review after Pt 1.5 gets merged in. I'm worried about possible merge conflicts. |
JonathonMisiewicz
left a comment
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.
This all looks good to me. Let us know when this is ready to merge.
Will do! I think I want to run a quick final test set with the DFJLinK PR merged in, to make sure nothing broke. Then, it should be good to go! |
7943e4f to
fde9a15
Compare
|
So the CI error here is... interesting.
Two overall errors on the Windows Psi4 build in this vein. |
|
I've gotten that once today, too. Then I've gotten distracted by other matters. Even if a restart fixes it, another CI failure will crop up later on, so please rebase, and we'll see if this is a consistent issue. |
|
I got the static_assert error again now. The file it's triggering on hasn't had recent changes, so I don't know why it's popping up now, unless it's an intermittant/brownout strategy to push upgrades. Anyways, switching the llvm version https://github.com/psi4/psi4/pull/2791/files#diff-9f5f8e4d87a7d1fbb0e8f30d1c680c5f42f6af10c04aa81d342c7dfa5af9a99fR10 at least gets the build started. |
fde9a15 to
772eea5
Compare
Hmmmm, I see. Thank you for looking into this! I just rebased and pushed again, so we will see if that helps. |
|
The LLVM bump was a trial in a branch, not master, so you'll have to edit, not just rebase. Sorry I was unclear. |
Description
This PR is a continuation of the IncFock standardization effort initially started in #2682, and restarted in #2792. It is the second PR listed in the PR submission scheme discussed in the comments in #2682.
For all intents and purposes, the PR has basically the same changes as #2792, except applied to DirectJK instead of DFJLinK. The same benefits to DFJLinK seen in #2792 are applied to DirectJK here, and many of the same points of the benefits of that PR apply here, as well.
A couple of notes to be had for reviewers, some of which arise from discussions in #2792:
User API & Changelog headlines
N/A
Dev notes & details
Questions
Checklist
Status