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
From PyPI
ffsim is available on PyPI. It can be installed by running the command
pip install ffsim
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
Hashes for ffsim-0.0.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f74c90d27c294c69b1f1342c0874bc6209c86712f2891cd333c0f72dc60d1ad6 |
|
MD5 | b2485d97e85bac2aff68889ec674a481 |
|
BLAKE2b-256 | 98e696b2e02bbe9206a26101e9a7feb1c5baaf273823a28a5d58dbf48467a12e |
Hashes for ffsim-0.0.3-cp38-abi3-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84bdaa8b85ca7e22aacf7ad06ad9d01d95fcf759596e2474c18d7bd99d959b80 |
|
MD5 | 1d63c5c643fde2bb31f33b73e25f23f6 |
|
BLAKE2b-256 | f0a599239c657068105f95775bfbec6a680232b4fe7813aba89d738ab9e8639a |