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

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

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

ffsim-0.0.79-cp310-abi3-manylinux_2_28_aarch64.whl (713.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

ffsim-0.0.79-cp310-abi3-macosx_11_0_arm64.whl (676.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ffsim-0.0.79.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.79.tar.gz
Algorithm Hash digest
SHA256 1805c06595810f2a9106e9503dc646f628b63c26f8700719bb1f1bdd83509abf
MD5 0dd4e28d7512c91e9c5a2861c6452c0c
BLAKE2b-256 4999ba935220264f267c80d715961d6c2e1740e368f4d4ae38f2154e24b50639

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.79-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ae7ee294e15c1a9b4d603ec4e17db7e1cda6a5e0a9b63604363638c772484931
MD5 d2d03ec761fe0799fe2d1369122eae45
BLAKE2b-256 8726d8498d5e120af359b67f94218e5c08890e690b60cf5e77a1af2ccd3fa354

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.79-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51c72450bc903b8ac3a7ca1cd64a1455ee14bfee34bf7fd9913c7b754d89f2d4
MD5 d6d40e1cafc7fc74d78ccc0ebff8de36
BLAKE2b-256 f30b00c7c05654c3fad3fc394ea5b145e570e870679518996ac1cc1644f486c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.79-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 484df17eca2183e5541769ec409d15f7b556a3b0b92762af432f6ac60be68259
MD5 8770c2ad9f82b331d2f08e83bec0c6d0
BLAKE2b-256 b4e4e22ef3e230986b38dac9a45072e63daf5860b9b0e2726b898b1a47542c99

See more details on using hashes here.

Provenance

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