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

Modularize Libint2 constructor #3037

Merged
merged 3 commits into from Aug 28, 2023

Conversation

susilehtola
Copy link
Member

@susilehtola susilehtola commented Aug 28, 2023

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

  • RN 1
  • RN 2

Dev notes & details

  • Feature1
  • Feature2

Questions

  • Question1

Checklist

Status

  • Ready for review
  • Ready for merge

@JonathonMisiewicz
Copy link
Contributor

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?

@susilehtola
Copy link
Member Author

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.

Copy link
Contributor

@JonathonMisiewicz JonathonMisiewicz left a 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.

Copy link
Member

@jturney jturney left a 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!

@susilehtola susilehtola added this pull request to the merge queue Aug 28, 2023
Merged via the queue into psi4:master with commit d58c518 Aug 28, 2023
5 checks passed
@loriab loriab added this to the Psi4 1.9 milestone Sep 25, 2023
loriab pushed a commit that referenced this pull request Oct 4, 2023
* Modularize the construction of Libint2 shell data

* n_prim_per_shell_ was never initialized
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants