Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario, Canada.
Department of Chemistry and Quantum Theory Project, University of Florida, Gainesville, Florida, USA.
J Comput Chem. 2023 Feb 15;44(5):697-709. doi: 10.1002/jcc.27034. Epub 2022 Nov 28.
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 convert the mathematical formulation of a new wavefunction ansätze to a working implementation. Fanpy is designed based on our recently introduced Flexible Ansatz for N-electron Configuration Interaction (FANCI) framework, 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 explore new ideas. Fanpy is written purely in Python with standard dependencies, making it accessible for various operating systems. In addition, it adheres to principles of modern software development, including comprehensive documentation, extensive testing, quality assurance, and continuous integration and delivery protocols. This article is considered to be the official release notes for the Fanpy library.
Fanpy 是一个免费的、开源的 Python 库,用于开发和测试电子结构理论中的多行列式波函数和相关的从头算方法。Fanpy 的主要用途是通过更容易将新波函数 ansätze 的数学公式转换为可工作的实现,从而快速原型化新方法。Fanpy 是基于我们最近引入的用于多电子组态相互作用的灵活 ansätze (FANCI) 框架设计的,其中多行列式波函数由它们与正交自旋轨道 Slater 行列式的重叠来表示。在最简单的情况下,通过简单地编写一个函数来计算其与任意 Slater 行列式的重叠,就可以实现新的波函数 ansätze。Fanpy 在实现和理论上都是模块化的:波函数模型、系统的哈密顿量和目标函数的选择都是独立的模块。这种模块化结构使用户可以轻松混合和匹配不同的方法,也使开发人员能够快速探索新的想法。Fanpy 完全用 Python 编写,使用标准依赖项,因此可用于各种操作系统。此外,它还遵循现代软件开发的原则,包括全面的文档、广泛的测试、质量保证以及持续集成和交付协议。本文被认为是 Fanpy 库的官方发行说明。