PIQS is not actively maintained anymore as an independent package, but it’s been ported to QuTiP and you can use its functionalities as qutip.piqs. Find out more in the related QuTiP documentation and tutorials on the permutational invariant Lindbald solver.
PIQS is an open-source Python library that allows to study the exact Lindbladian dynamics of open quantum systems consisting of identical qubits. The documentation for the package can be found in piqs.readthedocs.io. Example notebooks on how to use the library can be found here.
In the case where local processes are included in the model of a system’s dynamics, numerical simulation requires dealing with density matrices of exponential sizes. This becomes infeasible for a large number of qubits. We can simplify the calculations by exploiting the permutational invariance of indistinguishable quantum particles, which allows the user to study hundreds of qubits.
A major feature of PIQS is that it allows to build the Liouvillian of the system in an optimal way. It uses Cython to optimize performance and by defining sparse matrices it can deal with large systems. Since it is compatible with the quantum object
class of QuTiP one can take full advantage of existing features of this excellent open-source library.
PIQS is integrated inside QuTiP, from QuTiP version 4.3.1, as the qutip.piqs module. If QuTiP is installed, no additional installation is required. The PIQS functions can be called as
from qutip.piqs import *
PIQS can also be installed as a stand-alone library and it is still maintained.
We have made the package available in conda-forge. Download and install Anaconda or Miniconda from https://www.anaconda.com/download/ and then install piqs
from the conda-forge repository with,
conda config --add channels conda-forge
conda install -c conda-forge piqs
Then you can fire up a Jupyter notebook and run piqs
out of your browser.
We will add a Windows version soon but if you are on Windows, you can build piqs from source by first installing conda. You can add the conda-forge channel with conda config --add channels conda-forge
. Then, please install cython
, numpy
, scipy
and qutip
as piqs
depends on these packages. The command is simply,
conda install cython numpy scipy qutip
Finally, you can download the source code, unzip it and run the setup file inside with,
python setup.py install
If you have any problems installing the tool, please open an issue or write to us.
from piqs import Dicke
from qutip import steadystate
N = 10
system = Dicke(N, emission = 1, pumping = 3)
L = system.liouvillian()
steady = steadystate(L)
For more details and examples on the use of PIQS see the notebooks folder.
PIQS is licensed under the terms of the BSD license.
PIQS documentation can be found at http://piqs.readthedocs.io/.
A collection of Jupyter notebooks can be found at https://github.com/nathanshammah/notebooks and at http://qutip.org/tutorials.html under the “Permutational invariant Lindblad dynamics” section.
DOI:10.5281/zenodo.1212802 and N. Shammah, S. Ahmed, N. Lambert, S. De Liberato, and F. Nori, Open quantum systems with local and collective incoherent processes: Efficient numerical simulation using permutational invariance,
Phys. Rev. A 98, 063815 (2018)
https://journals.aps.org/pra/abstract/10.1103/PhysRevA.98.063815
DOI: 10.1103/PhysRevA.98.063815
https://arxiv.org/abs/1805.05129
The Dicke.liouvillian()
object is not to be used directly to compute its full spectrum or the Liouvillian gap.
Theoretical aspects and applications are in Ref. [1]. Other open-source codes using permutational invariance to study open quantum systems and related research papers can be found in [2-3].
[1] N. Shammah, S. Ahmed, N. Lambert, S. De Liberato, and F. Nori, Phys. Rev. A 98, 063815 (2018)
https://journals.aps.org/pra/abstract/10.1103/PhysRevA.98.063815
[2] https://github.com/peterkirton/permutations P. Kirton and J. Keeling Phys. Rev. Lett. 118, 123602 (2017)
[3] https://github.com/modmido/psiquasp M. Gegg and M. Richter, Sci. Rep. 7, 16304 (2017)