This article summarizes recent updates to the p$^\dagger$q package, which is a C++ accelerated Python library for generating equations and computer code corresponding to singly-reference many-body quantum chemistry methods such as coupled-cluster (CC) and equation-of-motion (EOM) CC theory. Since 2021, the functionality in \pq has expanded to include boson operators, coupled fermion-boson operators, unitary cluster operators, non-particle-conserving EOM operators, spin tracing, multiple single-particle subspaces, and more. Additional developments allow for the generation of C++ and Python code that minimizes floating-point operations via contraction order optimization, sub-expression elimination, and the fusion of similar terms.
Automated Quantum Chemistry Code Generation with the p†q Package
This article summarizes recent updates to the p†q package, which is a C++ accelerated Python library for generating equations and computer code corresponding to singly-reference many-body quantum chemistry methods such as coupled-cluster (CC) and equation-of-motion (EOM) CC theory. Since 2021, the functionality in \pq has expanded to include boson operators, coupled fermion-boson operators, unitary cluster operators, non-particle-conserving EOM operators, spin tracing, multiple single-particle subspaces, and more. Additional developments allow for the generation of C++ and Python code that minimizes floating-point operations via contraction order optimization, sub-expression elimination, and the fusion of similar terms.
This article summarizes recent updates to the p † q package, which is a C++ accelerated Python library for generating equations and computer code corresponding to singly referenced many-body quantum chemistry methods such as coupled-cluster (CC) and equation-of-motion (EOM) CC theory. Since 2021, the functionality in p † q has expanded to include boson operators, coupled fermion-boson operators, unitary cluster operators, non-particle-conserving EOM operators, spin tracing, multiple single-particle subspaces, and more. Additional developments allow for the generation of C++ and Python code that minimizes floating-point operations via contraction order optimization, subexpression elimination, and the fusion of similar terms.
PyCC is a Python-based quantum chemistry package that emphasizes coupled cluster and related methods. Developed over the last five years, PyCC's purpose is to provide a clear reference implementation that will serve as a validation suite for production code, a platform for rapid prototyping and testing of new methods, and an educational resource for newcomers to the field. The package covers both closed- and open-shell single-determinant references in spatial- and spin-orbital formulations for the coupled cluster hierarchy through triples-including methods such as CC3, as well as for MP2 and CI methods. PyCC provides a broad range of molecular properties such as analytic first and second energy derivatives including gradients, Hessians, polarizabilities and atomic polar tensors, as well as non-energy-derivative properties, such as velocity-gauge atomic polar tensors and diagonal Born-Oppenheimer corrections, plus dynamic linear response functions, and excitation energies. The package includes a number of unique capabilities, such as real-time CC propagation (up through CC3), atomic axial tensors for simulating vibrational circular dichroism spectra at the MP2 and CI levels, and local correlation methods including perturbation-aware correlation domains. The code is designed around a shared Wavefunction base and a method-agnostic derivative layer that enables a new method to inherit the full property set once it supplies its reduced densities and their first-order responses. PyCC is fully open source and available on GitHub under the BSD 3-clause license.
p†q is a C++ accelerated Python library designed to generate equations for many-body quantum chemistry methods and to realise proof-of-concept implementations of these equations for rapid prototyping. Central to this library is a simple interface to define strings of second-quantised creation and annihilation operators and to bring these strings to normal order with respect to either the true vacuum state or the Fermi vacuum. Tensor contractions over fully-contracted strings can then be evaluated using standard Python functions (e.g. NumPy's einsum). Given one- and two-electron integrals, these features allow for the rapid implementation and assessment of a wide array of many-body quantum chemistry methods.
Psi4NumPy demonstrates the use of efficient computational kernels from the open-source Psi4 program through the popular NumPy library for linear algebra in Python to facilitate the rapid development of clear, understandable Python computer code for new quantum chemical methods, while maintaining a relatively low execution time. Using these tools, reference implementations have been created for a number of methods, including self-consistent field (SCF), SCF response, many-body perturbation theory, coupled-cluster theory, configuration interaction, and symmetry-adapted perturbation theory. Furthermore, several reference codes have been integrated into Jupyter notebooks, allowing background, underlying theory, and formula information to be associated with the implementation. Psi4NumPy tools and associated reference implementations can lower the barrier for future development of quantum chemistry methods. These implementations also demonstrate the power of the hybrid C++/Python programming approach employed by the Psi4 program.
The continuous demand for higher accuracy in computational chemistry necessitates the development of advanced many-body electronic structure methods. However, the derivation and efficient implementation of these theories constitute a significant bottleneck. As the rank of the associated tensors increases, the governing equations explode in complexity, rendering manual implementation labor-intensive, error-prone, and difficult to optimize for modern hardware. To address this challenge, this dissertation presents SeQuant, a comprehensive framework for the automated derivation and parallel implementation of many-body quantum chemistry methods. Built upon a robust symbolic algebra engine, SeQuant allows for the expression of theories in the natural language of second quantization. It automates the transformation of high-level theoretical ansatzes into explicit tensor contraction expressions and subsequently generates optimized, high-performance C++ code. A central innovation of this work is the extension of automated implementation to reduced-scaling methods, which exploit the sparsity inherent in electronic correlation. We introduce a novel "tensor-of-tensors" data structure designed to manage the irregular sparsity patterns of Pair Natural Orbital (PNO) formulations. This development enables the first fully automated implementation of PNO-Coupled Cluster (PNO-CC) methods, bridging the gap between symbolic abstraction and the runtime requirements of sparse tensor algebra. The results demonstrate that SeQuant not only reproduces established dense methods (such as CCSD and CCSDT) with high fidelity but also effectively handles the complexity of sparse, local correlation approaches. By decoupling the complexity of the physics from the details of the implementation, this framework establishes a new paradigm for method development, dramatically accelerating the translation of theoretical insights into computational reality.
The ultimate goal of electronic structure theory is solving the electronic Schr¨odinger Equation. However, even accurate approximations of solving Schr¨odinger Equation, such as high order coupled cluster theories, require computational efforts that are too demanding to be applied on large chemical systems. This thesis tackles the problem of curse of dimensionality: how to reduce the time complexity of high-accuracy coupled cluster methods in order to accelerate computations of molecular energy. On one hand, we believe that low-rank approximation (i.e. Tensor HyperContraction) of high-order tensors appearing in coupled cluster theory is a promising way to achieve rank-reduced coupled cluster theory. On the other hand, we think that the work of deriving, optimizing and implementing low-rank approximated coupled cluster theory is both tedious and repetitious, and shall be performed by an automatic code engine other than chemists. In this thesis, we introduce our chemistry equation compiler, Autom: a code engine that is designed for automatically deriving, optimizing and implementing low-rank approximated coupled cluster theories. With Autom, the development of electronic theories is greatly simplified. Autom can easily generate runnable codes in minutes for tensor-algebra based chemistry equations with customized low-rank approximation rules; conventionally, such procedure may take an expert weeks or even months to manually program. This thesis roughly consists of two parts. In the first part, we aim to cover the lowrank approximation techniques for high-accuracy coupled cluster theories, emphasizing on two new factorization techniques we developed especially for several coupled cluster theories including triple contributions. In the second part, we demonstrate the algorithms of our automatic code engine. We also summarize recent advances of domain specific compilers in Machine Learning community and discuss future directions for compute graph optimization. We believe that this new software infrastructure holds great promise for future chemistry package designs.