Fanpy is a free, open-source, and cross-platform Python 3 library designed for ab initio electronic structure calculations. The Fanpy implementation is based on the mathematical framework called Flexible Ansatz for N-electron Configuration Interaction (FANCI). The adoption of the FANCI framework gives a highly modular structure to Fanpy resulting in 5 modules - Hamiltonian, Wavefunction, Objective, Solver, and Tools. The modular structure offers two greatest virtues, The first is its 'sandbox-like' ability to handle any combinations of wavefunction ansatz and different methods, and the second is the ease of transition from the formal conception of a method to its working implementation.
The following wavefunctions are already implemented in Fanpy.
Configuration Interaction
Coupled-Cluster
Geminal wavefunctions
Coupled Cluster-Inspired Geminal Wavefunctions
The following Hamiltonians are implemented:
Electronic Hamiltonian - restricted, unrestricted, and generalized basis
The Objective module combines the wavefunction and Hamiltonian to represent the following forms of Schrodinger Equations.
The Solver module supports the following optimizers to optimize/solve the equations from the Objective module.
The Tool module provides different utility functions used throughout the Fanpy package—for example, tools for generating and manipulating Slater determinants.
For detailed information about the mathematical formulation, please take a look at the FANCI publication. The official notes of the Fanpy library can be found in this article.