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
Modularize Libint2 constructor #3037
Conversation
Let me make sure I understand this: The old behavior was that l2_shells_ was being populated at object construct time. This makes perfect sense if various fields used in constructing the libint2::shell were const, but they are not. Instead, we're migrating the libint2 construction to its own function so it can be called if these fields ever get changed, as #3036 does. Is that all correct? |
Yes. The point is that if you change data in BasisSet, the data in the Libint2 shells don't update, and one needs the ability to refresh that data as well based on the master data in BasisSet. |
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.
Looks good to me. I ping @jturney on libmints changes, by default.
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.
Seems good to me!
* Modularize the construction of Libint2 shell data * n_prim_per_shell_ was never initialized
Description
To implement the SAP guess (#3036), I need to toy with the contraction coefficients. Currently, there is duplicated data in BasisSet, as the Libint2 shells are built alongside the basis set itself. The idea of this PR is to modularize the Libint2 shell data creation so that the data can be refreshed based on the data in the BasisSet.
The PR also fixes an issue in that the
n_prim_per_shell_
member of BasisSet was never populated.User API & Changelog headlines
Dev notes & details
Questions
Checklist
Status