PyCI: A Python-scriptable library for arbitrary determinant CI

Recently, I contributed to the PyCI codebase, a free, open-source Python library designed to simplify and accelerate arbitrary determinant-based configuration interaction (CI) computations. PyCI is developed and maintained by the Paul W. Ayers Group at McMaster University, and its main focus is on aiding method development while ensuring high computational efficiency.

PyCI enables users to perform CI calculations and their extensions, where the determinants’ coefficients are nonlinear functions of optimizable parameters. It also offers tools for calculating residual correlation energies and spin-polarized one- and two-electron (transition) reduced density matrices. Originally developed as a replacement for the quantum chemistry functionality in the HORTON library, PyCI has since grown into a standalone tool suitable for both research and practical applications.

To meet modern software standards, PyCI is written in Python and employs best practices such as comprehensive documentation, extensive testing, and continuous integration/delivery protocols. For computationally intensive tasks, like generating Slater determinants and calculating their expectation values, the library relies on optimized C++ code.

My contribution focuses on implementing the Flexible Ansatz for N-body Perturbation Theory (FanPT) to solve CI-based wavefunctions. While currently limited to FanCI wavefunctions (Ap1RoG, APIG, and pCCSD) implemented in PyCI, this new method is significantly more efficient than the initial Fanpy implementation. Future developments will further enhance performance and expand its capabilities.

Best regards!