Skip to main content

Faster simulations of fermionic quantum circuits.

Project description

ffsim

Faster simulations of fermionic quantum circuits.

What is ffsim?

ffsim is a software library for simulating fermionic quantum circuits that preserve 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.

Experimental disclaimer: ffsim is currently an experimental release. Breaking changes may be introduced without warning.

Features

  • Fast simulation of fermionic quantum circuits that preserve particle number and the Z component of spin. ffsim supports the simulation of basic fermionic gates and includes specialized routines for simulation of molecular Hamiltonians in the "double-factorized" representation.
  • Compatible with PySCF. State vectors use the same indexing convention as PySCF's fci module.

Limitations

  • There is no support for operations that do not preserve particle number and the Z component of spin.

Installation

In the future, binary wheels will be made available on PyPI. For now, you can install from source.

Installing from source

Installing ffsim from source requires a Rust compiler to be present on the system. A Rust compiler can be installed by following the instructions here. Once the Rust compiler is installed, ffsim can be installed by running the command

pip install .

from the root directory of the code repository.

Installing from source has only been tested in a Linux environment.

Known issues

  • It may be a bit tricky to get OpenBLAS to link successfully. If you have issues, try the following:
    • Run pip install patchelf.
    • Run pip install -e . twice in a row.

Development

To set up ffsim for development, install it from source in editable mode along with the development requirements:

pip install -e ".[dev]"

If you add or modify any Rust modules, rebuild them by running the command

maturin develop --release

Tests and other code checks are managed using tox. To run the default tox environments, simply run

tox

To run a specific environment, for example, to run the lint checks, do

tox run -e lint

You can also use pytest to run the tests directly. For example,

pytest tests/

Project details


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.2.tar.gz (68.0 kB view details)

Uploaded Source

Built Distributions

ffsim-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

ffsim-0.0.2-cp38-abi3-macosx_10_9_x86_64.whl (411.9 kB view details)

Uploaded CPython 3.8+ macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: ffsim-0.0.2.tar.gz
  • Upload date:
  • Size: 68.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for ffsim-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8c434fcd818f098e3cca959920c78694df0c0df5e40b87706b264ff282c2a92e
MD5 6586219063500654aa950bbd50d96ac6
BLAKE2b-256 902d1d028ed5618bc87688ad69dad3c5eba63af678c5b25e76cf9f5433d6f302

See more details on using hashes here.

Provenance

File details

Details for the file ffsim-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 050e26a6e92eea153a17bbed0f591c1d4ab32f19fb946ed71b8bdbb21e4c64e9
MD5 b26e2730112fa0d66434269d4115fa3d
BLAKE2b-256 b2dc1fddc00b4cd9ab14705899c2bec53524596476d0a59349118cff6feb6c9d

See more details on using hashes here.

Provenance

File details

Details for the file ffsim-0.0.2-cp38-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ffsim-0.0.2-cp38-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 66f70e07c79951e735750692da4000e7ca3eb600c6bb5b672ef1269b31d926b3
MD5 57b7482ed3143676374e1d05dc7ce376
BLAKE2b-256 ca0387ca38b7b74f9bc5df32c0cb755bc33b5c14630f26071d27e1e9187fb22c

See more details on using hashes here.

Provenance

Supported by

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