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.

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{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.77.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.77-cp310-abi3-manylinux_2_28_x86_64.whl (729.3 kB view details)

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

ffsim-0.0.77-cp310-abi3-manylinux_2_28_aarch64.whl (714.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

ffsim-0.0.77-cp310-abi3-macosx_11_0_arm64.whl (672.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ffsim-0.0.77.tar.gz
  • Upload date:
  • Size: 1.7 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.77.tar.gz
Algorithm Hash digest
SHA256 49f5ad26afd943f12d443ea4617b1d1ddc3ed09744f970ecad5f0e780de9a870
MD5 16735f76afc4b862c13676746cb97246
BLAKE2b-256 aa4e676106411fe1fb00b49c8c7dd841cc24090473692e6c6a810c526fe211a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.77-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 144e41bbcd8cd9ee88cc6b67fbfaf1f711c4bb757f114dc138477ff0c6f71a23
MD5 da33b896e714888c934633433e40e60e
BLAKE2b-256 a57074a0b0b67d445a908f1ba23410f4bbfe8d3c07c13172c1c2cf92207088a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.77-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ec3e948e372dc42df03923999437798d64aee84360c8999d2369fe0abefa754b
MD5 185c7426fa4d43c8268ff1ef78e6ba27
BLAKE2b-256 b36f04c4c5d7aa7641a58bd181cc68656aabd984f2268db8dcaa49dae232c0ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.77-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 184bcf85527f1158983a155150297e15687df83b7e73954e32839eaf20271318
MD5 3304b297f4cd198301cdc4a0d7155624
BLAKE2b-256 a23a42a8e75a01b32d9fc1cc18707d4f2b0f27aae070da6a606ad5e90ab50972

See more details on using hashes here.

Provenance

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