ffsim
ffsim is a software library for simulating fermionic quantum circuits that conserve particle number and the Z component of spin. This category includes many quantum circuits used for quantum chemistry simulations. By exploiting the symmetries and using specialized algorithms, ffsim can simulate these circuits much faster than a generic quantum circuit simulator.
Documentation
Documentation is located at the project website.
Installation
We recommend installing ffsim using pip when possible:
pip install ffsim
This method won't work natively on Windows, however. Refer to the installation instructions for information about using ffsim on Windows, as well as instructions for installing from source and running ffsim in a container.
Code example
import numpy as np
import pyscf
import ffsim
mol = pyscf.gto.Mole()
mol.build(atom=[["N", (0, 0, 0)], ["N", (1.0, 0, 0)]], basis="6-31g", symmetry="Dooh")
scf = pyscf.scf.RHF(mol).run()
mol_data = ffsim.MolecularData.from_scf(scf, active_space=range(4, mol.nao_nr()))
norb, nelec = mol_data.norb, mol_data.nelec
orbital_rotation = ffsim.random.random_unitary(norb, seed=1234)
vec = ffsim.hartree_fock_state(norb, nelec)
vec = ffsim.apply_orbital_rotation(vec, orbital_rotation, norb=norb, nelec=nelec)
linop = ffsim.linear_operator(mol_data.hamiltonian, norb=norb, nelec=nelec)
energy = np.vdot(vec, linop @ vec).real
print(energy)
Citing ffsim
You can cite ffsim using the following BibTeX:
@software{ffsim,
author = {{The ffsim developers}},
title = {{ffsim: Faster simulations of fermionic quantum circuits.}},
url = {https://github.com/qiskit-community/ffsim}
}
Developer guide
See the developer guide for instructions on contributing code to ffsim.