Fanpy: A Python Library for Prototyping Multideterminant Methods in Ab Initio Quantum Chemistry

T. D. Kim, M. Richer, G. Sánchez-Díaz, F. Heidar-Zadeh, T. Verstraelen, R.A. Miranda-Quintana, P.W. Ayers
Journal of Computational Chemistry
44, 5, 697-709


Fanpy is a free and open-source Python library for developing and testing multideterminant wavefunctions and related ab initio methods in electronic structure theory. The main use of Fanpy is to quickly prototype new methods by making it easier to transfer the mathematical conception of a new wavefunction ans¨atze to a working implementation. Fanpy uses the framework of our recently introduced Flexible Ansatz for N-electron Configuration Interaction (FANCI), where multideterminant wavefunctions are represented by their overlaps with Slater determinants of orthonormal spin-orbitals. In the simplest case, a new wavefunction ansatz can be implemented by simply writing a function for evaluating its overlap with an arbitrary Slater determinant. Fanpy is modular in both implementation and theory: the wavefunction model, the system’s Hamiltonian, and the choice of objective function are all independent modules. This modular structure makes it easy for users to mix and match different methods and for developers to quickly try new ideas. Fanpy is written purely in Python with standard dependencies, making it accessible for most operating systems; it adheres to principles of modern software development, including comprehensive documentation, extensive testing, and continuous integration and delivery protocols. This article is considered to be the official release notes for the Fanpy library.