You're reading the documentation of the v0.11. For the latest released version, please have a look at v0.12.
Welcome to the Perceval documentation!
Through a simple object-oriented Python API, Perceval provides tools for composing photonic circuits from linear optical components like beamsplitters and phase shifters, defining single-photon sources, manipulating Fock states, and running simulations.
Perceval can be used to reproduce published experimental works or to experiment directly with a new generation of quantum algorithms.
It aims to be a companion tool for developing photonic circuits – for simulating and optimising their design, modelling both the ideal and realistic behaviours, and proposing a normalised interface to control them through the concept of backends.
Perceval is conceived as an object-oriented modular Python framework organized around the following elements:
Tools to build linear optical circuits from a collection of pre-defined components
Powerful computing backends implemented in C++
- A variety of technical utilities to manipulate:
It also includes transversal tools for flexible visualization of the circuits and results which are compatible with notebooks or local development environments.
Perceval has been developed as a complete toolkit for physicists and computer scientists, and for students, researchers, and practitioners of quantum computing.
If you are using Perceval for academic work, please cite the Perceval white paper as:
@article{heurtel2023perceval,
doi = {10.22331/q-2023-02-21-931},
url = {https://doi.org/10.22331/q-2023-02-21-931},
title = {Perceval: {A} {S}oftware {P}latform for {D}iscrete {V}ariable {P}hotonic {Q}uantum {C}omputing},
author = {Heurtel, Nicolas and Fyrillas, Andreas and Gliniasty, Gr{\'{e}}goire de and Le Bihan, Rapha{\"{e}}l and Malherbe, S{\'{e}}bastien and Pailhas, Marceau and Bertasi, Eric and Bourdoncle, Boris and Emeriau, Pierre-Emmanuel and Mezher, Rawad and Music, Luka and Belabas, Nadia and Valiron, Benoît and Senellart, Pascale and Mansfield, Shane and Senellart, Jean},
journal = {{Quantum}},
issn = {2521-327X},
publisher = {{Verein zur F{\"{o}}rderung des Open Access Publizierens in den Quantenwissenschaften}},
volume = {7},
pages = {931},
month = feb,
year = {2023}
}