-
Notifications
You must be signed in to change notification settings - Fork 35
Description
Description
Gbasis uses libcint as a back end for efficient integral evaluation. Unfortunately, the default installation of GBasis (with PyPi) doesn't include libcint, and installation from source is not easy for some users. The primary goal of this project is to fix this. The secondary, subsidiary, goal is to provide better support for the very rich set of integrals that libcint supports.
📚 Package Description and Impact
GBasis is a pure-Python package for evaluating and analytically integrating Gaussian-type orbitals and their related quantities. The goal is to build a set of tools to the quantum chemistry community that are easily accessible and easy to use as to facilitate future scientific works.
👷 What will you do?
Your main focus will be to prepare a release of GBasis that includes libcint for PyPi. We want to support Windows, Linux, and Mac. Note that when we say libcint this includes libcint (generic C library) and its high-performance version qcint, for hardware platforms that support it. There might be multiple ways to do this, using, for example, Hatch. We are agnostic as to the way it is done, but we note that (a) compiling libcint can be hairy and (b) we want an automated workflow so that updating GBasis is easy and new versions of libcint are easily supported.
The C/Python interface can be written using a few different methods, such as the Python/C API, or Python's built-in foreign function interface library ctypes. Note that NumPy works with either of these.
🏁 Expected Outcomes
- It becomes possible to pip install
GBasiswith thelibcintintegral engine. - More (most?) of the integrals in
libcintare accessible fromGBasis. (This is basically wrapping more integrals. It isn't always trivial. Evauation of angular momentum in GBasis vs. Libcint bindings #149 ) - Write comprehensive tests and documentation for all new functionality.
- Write tutorial Jupyter notebooks that show how to use the new functionality.
| Required skills | C, Python, OOP, DevOps |
| Preferred skills | Experience with building complex Python packages and linking C/Python |
| Project size | Large |
| Difficulty | Medium to Hard 🥵 |
🙋 Mentors
| Marco Martínez-González | mmg870630_at_gmail_dot_com | @marco-2023 |
| Michelle Richer | michellericher93_at_gmail_dot_com | @msricher |
| Toon Verstraelen | toon_dot_verstraelen_at_ugent_dot_be | @tovrstra |
| Paul Ayers | ayers_at_mcmaster_dot_ca | @PaulWAyers |
📝 Notes
- See the existing
pyproject.tomland the current link to libcint. - Refer to our guidelines for contributors.