Skip to main content

Faster simulation of fermionic quantum circuits.

Project description

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

# 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

Multithreading

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

Citing ffsim

You can cite ffsim using the following BibTeX:

@misc{ffsim,
  author = {{The ffsim developers}},
  title = {ffsim: Faster simulations of fermionic quantum circuits},
  howpublished = {\url{https://github.com/qiskit-community/ffsim}},
}

Developer guide

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

Project details


Release history Release notifications | RSS feed

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.75.tar.gz (1.7 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.75-cp310-abi3-manylinux_2_28_x86_64.whl (12.7 MB view details)

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

ffsim-0.0.75-cp310-abi3-manylinux_2_28_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

ffsim-0.0.75-cp310-abi3-macosx_11_0_arm64.whl (680.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ffsim-0.0.75.tar.gz
Algorithm Hash digest
SHA256 61dd1721765468f947dda18ebd1f932488c850b27b348b9f8994ed23c3e2028a
MD5 8fe1604a459962c8c25cf886e8a995df
BLAKE2b-256 1b5b5dc046652e6c9d55090ca4967cb7966c2934ee8f734fc81feedd06825537

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.75.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.75-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.75-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 edd57234ae83c828d9e5d817bd09c92e8a41632fc387eef236201ef2f543e70f
MD5 972ce6d54d96e47237893f9c4be5fef4
BLAKE2b-256 51759d6528a015791e134afe0962d0cc070672fe0f293375cb45d5cb60576c07

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.75-cp310-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.75-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.75-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 05e60f0f95b8df0e6cf4d14a8921cfcdf94c86726d0d2dddea89c6b76461068d
MD5 d53f3196a9676b4522ea9df956df3050
BLAKE2b-256 fa6c085330196cc17eea0851fcc069bdc16d4aa770ef232e6c3ab91840f05f14

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.75-cp310-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.75-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.75-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57065882bce21adf85e8005fcb11fcc5f8adf9b9f70240c00dbdbaa5b8ad9854
MD5 b7f76de21561abf1dac013a97bb2d951
BLAKE2b-256 e35f6bd55aa5aa5a75326451147dab2cf3221f5cd914866a2b3d02acb6e915dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffsim-0.0.75-cp310-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.

Supported by

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