Skip to content

Conversation

@ryanmrichard
Copy link
Member

@ryanmrichard ryanmrichard commented Feb 21, 2025

Is this pull request associated with an issue(s)?
No.

Description
allocator::Eigen and buffer::Eigen being templated on the rank is causing problems in contractions. Realistically, allocator::Eigen should be able to allocate any buffer::Eigen based on RUNTIME information. This PR type erases the rank from the public API to accomplish this (the PIMPL is only templated on the floating point type).

Note this PR is going to be API breaking to anything that was directly touching Eigen tensors cough SCF and Integrals cough.

TODOs
I think I have moved all the functions to source that need moved. I still need to:

  • Add new methods to allocator::Eigen to support initializing the buffer.
  • Add new methods to allocator::Replicated to support getting elements.
  • Rewrite tests/input infrastructure that directly touched Eigen tensors.
  • Get whatever is still broken to compile.
  • Add tests for new functions.

I do not intend to fix the contraction issue @jwaldrop107 found in this PR (this PR is big enough already). I'll tackle that in the next PR.

@ryanmrichard ryanmrichard self-assigned this Feb 21, 2025
@ryanmrichard ryanmrichard marked this pull request as ready for review March 3, 2025 20:33
@ryanmrichard
Copy link
Member Author

@jwaldrop107 this is r2g.

jwaldrop107
jwaldrop107 previously approved these changes Mar 3, 2025
@ryanmrichard ryanmrichard merged commit cd689dc into master Mar 4, 2025
9 checks passed
@ryanmrichard ryanmrichard deleted the contraction_fix branch March 4, 2025 15:26
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.

3 participants