Skip to content

GSoC 2026: Improve performance of 2-electron integrals using screening #230

@PaulWAyers

Description

@PaulWAyers

Description

Use screening based on the overlap between basis functions to improve performance.

📚 Package Description and Impact

For large molecules, textbook expressions for quantities expanded in Gaussian basis functions (e.g., the electron density) or integrals based on Gaussian basis functions (e.g., the kinetic-energy integral) typically include many negligible terms. By screening out these terms, and only evaluating terms that are nonnegligible, the performance of GBasis can be greatly enhanced.

👷 What will you do?

In GBasis we provide a utility for screening these terms using their overlap, is_overlap_included. A generalization of this approach allows fast evaluation of spatial quantities and 2-electron integrals. Your main goal would be to screen 2-electron integrals.

🏁 Expected Outcomes

  1. Implement screening of 2-electron integrals. This will probably involve several tiers, starting with a simple Cauchy-Schwartz screening and extending to Ochsenfeld-style screening.
  2. Document and test the new feature.
  3. Test the performance of the code.
  4. Provide a tutorial notebook demonstration for the new feature.
Required skills Python, OOP
Preferred skills Be comfortable with math, physics. Experience with scientific programming, quantum chemistry would be huge plus
Project size 175 hours, Medium
Difficulty Medium 😉

🙋 Mentors

Marco Martínez-González mmg870630_at_gmail_dot_com @marco-2023
Omid Hossainzadeh ohosseinzade0_at_gmail_dot_com @ohzde
Esteban Vöhringer-Martinez estebanvohringer_at_qcmmlab_dot_com @evohringer
Paul Ayers ayers_at_mcmaster_dot_ca @PaulWAyers
Gabriela Sánchez-Díaz sanchezg_at_mcmaster_dot_ca @gabrielasd

📝 Notes & References

🏋️ Stretch Goals

Implement another way to speed up the 2-electron integrals, e.g. density-fitting or Cholesky decomposition.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions