Richer Michelle, Sánchez-Díaz Gabriela, Martínez-González Marco, Chuiko Valerii, Kim Taewon David, Tehrani Alireza, Wang Shuoyang, Gaikwad Pratiksha B, de Moura Carlos E V, Masschelein Cassandra, Miranda-Quintana Ramón Alain, Gerolin Augusto, Heidar-Zadeh Farnaz, Ayers Paul W
Department of Chemistry, Queen's University, 90 Bader Lane, Kingston, Ontario K7L 3N6, Canada.
Department of Chemistry and Chemical Biology, McMaster University, 1280 Main St. West, Hamilton, Ontario L8S 4M1, Canada.
J Chem Phys. 2024 Oct 7;161(13). doi: 10.1063/5.0219010.
PyCI is a free and open-source Python library for setting up and running arbitrary determinant-driven configuration interaction (CI) computations, as well as their generalizations to cases where the coefficients of the determinant are nonlinear functions of optimizable parameters. PyCI also includes functionality for computing the residual correlation energy, along with the ability to compute spin-polarized one- and two-electron (transition) reduced density matrices. PyCI was originally intended to replace the ab initio quantum chemistry functionality in the HORTON library but emerged as a standalone research tool, primarily intended to aid in method development, while maintaining high performance so that it is suitable for practical calculations. To this end, PyCI is written in Python, adopting principles of modern software development, including comprehensive documentation, extensive testing, continuous integration/delivery protocols, and package management. Computationally intensive steps, notably operations related to generating Slater determinants and computing their expectation values, are delegated to low-level C++ code. This article marks the official release of the PyCI library, showcasing its functionality and scope.
PyCI是一个免费的开源Python库,用于设置和运行任意行列式驱动的组态相互作用(CI)计算,以及将其推广到行列式系数为可优化参数的非线性函数的情况。PyCI还包括计算残余相关能的功能,以及计算自旋极化的单电子和双电子(跃迁)约化密度矩阵的能力。PyCI最初旨在取代HORTON库中的从头算量子化学功能,但后来成为一个独立的研究工具,主要用于辅助方法开发,同时保持高性能,使其适用于实际计算。为此,PyCI用Python编写,采用现代软件开发原则,包括全面的文档、广泛的测试、持续集成/交付协议和包管理。计算密集型步骤,特别是与生成斯莱特行列式及其期望值计算相关的操作,委托给低级C++代码。本文标志着PyCI库的正式发布,展示了其功能和范围。