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.
- Run
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
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
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c434fcd818f098e3cca959920c78694df0c0df5e40b87706b264ff282c2a92e |
|
MD5 | 6586219063500654aa950bbd50d96ac6 |
|
BLAKE2b-256 | 902d1d028ed5618bc87688ad69dad3c5eba63af678c5b25e76cf9f5433d6f302 |
Provenance
File details
Details for the file ffsim-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ffsim-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 050e26a6e92eea153a17bbed0f591c1d4ab32f19fb946ed71b8bdbb21e4c64e9 |
|
MD5 | b26e2730112fa0d66434269d4115fa3d |
|
BLAKE2b-256 | b2dc1fddc00b4cd9ab14705899c2bec53524596476d0a59349118cff6feb6c9d |
Provenance
File details
Details for the file ffsim-0.0.2-cp38-abi3-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ffsim-0.0.2-cp38-abi3-macosx_10_9_x86_64.whl
- Upload date:
- Size: 411.9 kB
- Tags: CPython 3.8+, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66f70e07c79951e735750692da4000e7ca3eb600c6bb5b672ef1269b31d926b3 |
|
MD5 | 57b7482ed3143676374e1d05dc7ce376 |
|
BLAKE2b-256 | ca0387ca38b7b74f9bc5df32c0cb755bc33b5c14630f26071d27e1e9187fb22c |