Skip to main content

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. You might also be interested in the paper about ffsim.

Installation

On Linux and macOS, you can install ffsim using pip:

pip install ffsim

See the installation instructions for information about using ffsim on Windows, as well as instructions for installing from source and running ffsim in a container.

Get started

Visit State vectors and gates to start learning ffsim's core concepts, or jump straight into a tutorial. Check out the guides for help with specific tasks, or visit the API reference for detailed documentation of all function and classes available in the library.

Multithreading

Some ffsim functions implemented in Rust use multithreading. The number of threads can be controlled using the environment variable RAYON_NUM_THREADS. For example, to disable multithreading, set this variable as RAYON_NUM_THREADS=1.

Code example

import numpy as np
import pyscf

import ffsim

# Generate the Hamiltonian for an N2 molecule using PySCF and ffsim's wrapper for it
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
hamiltonian = mol_data.hamiltonian

# Convert the Hamiltonian to a SciPy LinearOperator
linop = ffsim.linear_operator(hamiltonian, norb=norb, nelec=nelec)

# Generate a random orbital rotation
orbital_rotation = ffsim.random.random_unitary(norb, seed=1234)

# Create the Hartree-Fock state and apply the orbital rotation to it
vec = ffsim.hartree_fock_state(norb, nelec)
vec = ffsim.apply_orbital_rotation(vec, orbital_rotation, norb=norb, nelec=nelec)

# Compute the energy of the state
energy = np.vdot(vec, linop @ vec).real
print(energy)  # prints -104.17181289596

Citing ffsim

You can cite ffsim using the following BibTeX:

@misc{sung2026ffsim,
      title={ffsim: Faster simulation of fermionic quantum circuits},
      author={Kevin J. Sung and Inho Choi and Mirko Amico and Bartholomew Andrews and Esra Ayantuna and Yukio Kawashima and Wan-Hsuan Lin and David Omanovic and Samuele Piccinelli and Javier Robledo Moreno and Abdullah Ash Saki and James Shee and Soyoung Shin and Minh C. Tran and Kento Ueda and Haimeng Zhang and Mario Motta},
      year={2026},
      eprint={2605.03123},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2605.03123},
}

Developer guide

See the developer guide for instructions on contributing code to ffsim.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ffsim-0.0.83.tar.gz (1.8 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ffsim-0.0.83-cp311-abi3-manylinux_2_28_x86_64.whl (742.8 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

ffsim-0.0.83-cp311-abi3-manylinux_2_28_aarch64.whl (736.0 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

ffsim-0.0.83-cp311-abi3-macosx_11_0_arm64.whl (678.2 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file ffsim-0.0.83.tar.gz.

File metadata

  • Download URL: ffsim-0.0.83.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffsim-0.0.83.tar.gz
Algorithm Hash digest
SHA256 4cf90a91acecd38ebd0c090d5fa60b43116e8261a081692b1c7f05661d5babd2
MD5 280191e9f42908d909c21a32860c24b0
BLAKE2b-256 9dd9363443b96df5fc835a9c2a583ad4b66ec1853c96832cb81b1f54e203db1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.83.tar.gz:

Publisher: build-and-release.yml on qiskit-community/ffsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ffsim-0.0.83-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.83-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3758e6ad17288a0cb9dd70e6bf50b3ee9f100fb24c15450448e836a48a5e98d1
MD5 3722f821072157ef4ab1e4cbeb998ead
BLAKE2b-256 85146b9291d44e37590b626f8f5ce40d9fa0ffa20bbf573d6bd304bfa2bed677

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.83-cp311-abi3-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on qiskit-community/ffsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ffsim-0.0.83-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.83-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e44a3b87097fa00b82cc5509b55a1fd70b59e4c12e7472282984d1bd250a0a4
MD5 988e7d43b3a577a6796c4f7f23287219
BLAKE2b-256 59d76487de8173e1d1212f28a97ea8929291deee260f470609100c5d1f2f74e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.83-cp311-abi3-manylinux_2_28_aarch64.whl:

Publisher: build-and-release.yml on qiskit-community/ffsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ffsim-0.0.83-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.83-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dec0c81374cfb0ea1cefbf9cf170351488b663d6deef338aff16ee125e2333c9
MD5 5330698516643209a243e6e1586657b1
BLAKE2b-256 c26ae188940e4f514c915c85a9e208762d3fd72efbca4c59db62ec9f6f60a442

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.83-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on qiskit-community/ffsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page