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.78.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.78-cp310-abi3-manylinux_2_28_x86_64.whl (725.7 kB view details)

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

ffsim-0.0.78-cp310-abi3-manylinux_2_28_aarch64.whl (713.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

ffsim-0.0.78-cp310-abi3-macosx_11_0_arm64.whl (676.5 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ffsim-0.0.78.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.78.tar.gz
Algorithm Hash digest
SHA256 452a64ee925d33af49737617f03437379273e4125185b324a6afe58a5677f685
MD5 6e7052f742c85c07167026b0728dfc9d
BLAKE2b-256 0bff6ad8d076e9395ba166f29a6c1ca0d5f755d5e25a347f8649d3968514f86c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.78-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bcd4539df8dfdc215cd1cbe20c20f58182322c961e095097b241bbecc8a48b6
MD5 24793929ff7fb8f85d210fe19730967e
BLAKE2b-256 54440b586e92af42d8ce410886a58bd1c01ae0179e0cab60a9daf576ccb29165

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.78-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f3c2662d2a547973263299e3f5a921774b77291f12e6ec1ad20d2d99c5ee11e1
MD5 87d9cb282de7002f07056c59b918ffb1
BLAKE2b-256 4dc025d025980d1a90eb23a1bcef53bf35b2c7312357ee3fbb1846802e1f3e00

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ffsim-0.0.78-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e56d71b94e1a120e70331b54b126d5dfbec4beb2dacb6962667ae51ff29a1d07
MD5 917352d6b32f001b6b60998561f5d002
BLAKE2b-256 1553e3a1a9c80c060091ddfaaf1cb79da4fa18508dfea2322d89f5a2034bcb51

See more details on using hashes here.

Provenance

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