Skip to content
Carlos E. V. de Moura edited this page Dec 9, 2024 · 10 revisions

Welcome to the Fanpy Wiki!

Welcome to the official documentation for Fanpy, a free, open-source, cross-platform Python 3 library for ab initio electronic structure calculations. Fanpy is a tool designed for researchers and developers exploring novel wavefunction-based approaches to solve chemical problems.

Visit our group website: Miranda Quintana Group.


What is Fanpy?

Fanpy is built upon the mathematical framework of the Flexible Ansatz for N-electron Configuration Interaction (FANCI):

[ | \Psi_{\mathrm{FANCI}} \rangle = \sum_{\mathbf{m} \in \mathbf{S_m}} f\left( \mathbf{m}, \vec{P} \right) | \mathbf{m} \rangle ]

Here:

  • ( \mathbf{S_m} ) is a set of allowed Slater determinants.
  • ( f(\mathbf{m}, \vec{P}) ) determines the weight of each Slater determinant ( \mathbf{m} ), parameterized by ( \vec{P} ).

The FANCI ansatz provides a flexible wavefunction structure applicable to various electronic structure methods, including:

  • Configuration Interaction (CI)
  • Coupled-Cluster (CC)
  • Tensor Product States (TPS)
  • Antisymmetrized Product of Interacting Geminals (APIG)

What is Fanpy for?

Fanpy empowers researchers to develop, implement, and test novel electronic structure methods. Unlike traditional quantum chemistry software designed for well-established methods, Fanpy offers:

  • Customizability: Design and experiment with new wavefunctions to tackle unique chemical problems.
  • Research Support: Transition seamlessly from theoretical formulation to practical implementation.

How Does Fanpy Work? The Modular Structure of Fanpy

Fanpy's design is inspired by the FANCI framework, featuring a modular structure with five key components:

  1. Hamiltonian Module: Defines the system's energy and properties.
  2. Wavefunction Module: Manages various wavefunction ansatz.
  3. Objective Module: Constructs optimization objectives for parameter fitting.
  4. Solver Module: Solves the defined optimization problems.
  5. Tools Module: Provides utility functions for pre- and post-processing.

This modularity offers two key benefits:

  • Flexibility: Combine wavefunction ansatz and methods in a "sandbox-like" environment.
  • Ease of Development: Streamline the process of implementing new theories and algorithms.

Fanpy Modules Figure: Overview of Fanpy's Modular Structure.

Publications

For detailed insights into Fanpy's mathematical and theoretical foundations, refer to the following publications:

  1. FANCI: Theoretical Framework.
  2. Fanpy Library Overview.

Next Steps

Getting Started with Fanpy:

Contributing:

We welcome contributions! Please see our Contributing Guidelines for more information.

Questions or Feedback?

Feel free to open an issue on our GitHub repository or contact us directly through the Miranda Quintana Group.

Clone this wiki locally