{"id":13776745,"url":"https://github.com/nathanshammah/piqs","last_synced_at":"2025-10-13T09:36:21.534Z","repository":{"id":55443142,"uuid":"104438298","full_name":"nathanshammah/piqs","owner":"nathanshammah","description":"Permutational Invariance Quantum Solver for Lindblad open quantum system dynamics","archived":false,"fork":false,"pushed_at":"2024-04-23T17:00:21.000Z","size":3020,"stargazers_count":19,"open_issues_count":6,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-13T12:48:23.709Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nathanshammah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-22T06:12:57.000Z","updated_at":"2025-02-20T08:35:33.000Z","dependencies_parsed_at":"2024-08-03T18:10:38.476Z","dependency_job_id":"9011e924-401b-421f-8027-d2c4b77919ce","html_url":"https://github.com/nathanshammah/piqs","commit_stats":{"total_commits":220,"total_committers":4,"mean_commits":55.0,"dds":"0.46818181818181814","last_synced_commit":"50c32f1fb2c129e9bada994cb341923318b42cfa"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/nathanshammah/piqs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshammah%2Fpiqs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshammah%2Fpiqs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshammah%2Fpiqs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshammah%2Fpiqs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nathanshammah","download_url":"https://codeload.github.com/nathanshammah/piqs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanshammah%2Fpiqs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014544,"owners_count":26085536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:00:32.462Z","updated_at":"2025-10-13T09:36:21.490Z","avatar_url":"https://github.com/nathanshammah.png","language":"Python","funding_links":[],"categories":["Quantum simulators"],"sub_categories":[],"readme":"# Permutational Invariant Quantum Solver (PIQS) \u003cimg src=\"https://github.com/nathanshammah/piqs/blob/master/doc/piqs_logo.png\" width=\"80\" height=\"80\"/\u003e\n\n_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](https://qutip.readthedocs.io/en/qutip-5.0.x/guide/guide-piqs.html) and [tutorials](https://qutip.org/qutip-tutorials/#piqs) on the permutational invariant Lindbald solver._\n\n[![Build Status](https://travis-ci.org/nathanshammah/piqs.svg?branch=master)](https://travis-ci.org/nathanshammah/piqs)\n[![DOI](https://zenodo.org/badge/104438298.svg)](https://zenodo.org/badge/latestdoi/104438298)\n[![codecov](https://codecov.io/gh/nathanshammah/piqs/branch/master/graph/badge.svg)](https://codecov.io/gh/nathanshammah/piqs)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/piqs/badges/version.svg)](https://anaconda.org/conda-forge/piqs)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/piqs/badges/license.svg)](https://anaconda.org/conda-forge/piqs)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/piqs/badges/installer/conda.svg)](https://conda.anaconda.org/conda-forge)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/piqs/badges/downloads.svg)](https://anaconda.org/conda-forge/piqs)\n\nPIQS 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](http://piqs.readthedocs.io/en/latest/). Example notebooks on how to use the library can be found [here](https://github.com/nathanshammah/notebooks).\n\n## Exponential reduction\nIn 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.\nWe can simplify the calculations by exploiting the permutational invariance of indistinguishable quantum particles, which allows the user to study hundreds of qubits.\n\n## Integrated with QuTiP\nA 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](http://qutip.org/) one can take full advantage of existing features of this excellent open-source library.\n\n## A wide range of applications\n- The time evolution of the total density matrix of quantum optics and cavity QED systems for permutationally symmetric initial states (such as the GHZ state, Dicke states, coherent spin states).\n- Phase transitions of driven-dissipative out-of-equilibrium quantum systems.\n- Correlation functions of collective systems in quantum optics experiments, such as the spectral density and second-order correlation functions.\n- Various quantum optics phenomena such as resonance fluorescence, steady-state superradiance, superradiant light emission.\n- Spin squeezing for quantum metrology, long-range interaction in noisy spin models, decoherence in quantum information processing.\n- Nonlinearities of dissipative cavity QED systems up to the ultrastrong coupling regime.\n\n## Installation\n\nPIQS 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\n```\nfrom qutip.piqs import *\n```\nPIQS can also  be installed as a stand-alone library and it is still maintained.\n\n### Linux and MacOS\nWe have made the package available in [conda-forge](https://conda-forge.org/). Download and install Anaconda or Miniconda from [https://www.anaconda.com/download/](https://www.anaconda.com/download/) and then install `piqs` from the conda-forge repository with,\n```\nconda config --add channels conda-forge\nconda install -c conda-forge piqs\n```\nThen you can fire up a Jupyter notebook and run `piqs` out of your browser.\n\n### Windows\nWe 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,\n\n```conda install cython numpy scipy qutip```\n\nFinally, you can download the [source code](https://github.com/nathanshammah/piqs/archive/v1.2.tar.gz), unzip it and run the setup file inside with,\n```\npython setup.py install\n```\nIf you have any problems installing the tool, please open an issue or write to us.\n\n## Use\n```\nfrom piqs import Dicke\nfrom qutip import steadystate\n\nN = 10\nsystem = Dicke(N, emission = 1, pumping = 3)\n\nL = system.liouvillian()\nsteady = steadystate(L)\n```\nFor more details and examples on the use of *PIQS* see the [notebooks](https://github.com/nathanshammah/notebooks) folder.\n\n![Density matrices in the Dicke basis.](https://github.com/nathanshammah/piqs/blob/master/doc/source/examples/images/states_N.png)\n## License\nPIQS is licensed under the terms of the BSD license.\n\n## Documentation\nPIQS documentation can be found at http://piqs.readthedocs.io/.\n\n## Notebooks\n### PIQS Notebooks include Jupyter notebooks for the paper https://arxiv.org/abs/1805.05129\n- Superradiant light emission\n- Steady-state superradiance\n- Superradiant phase transition out of equilibrium\n- Spin squeezing\n- Ultrastrong light-matter coupling\n- Multiple ensembles of qubits\n- Boundary time crystals\n- Performance of PIQS\n\nA 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.\n\n## Citation\nDOI:10.5281/zenodo.1212802\nand\nN. Shammah, S. Ahmed, N. Lambert, S. De Liberato, and F. Nori,\nOpen quantum systems with local and collective incoherent processes: Efficient numerical simulation using permutational invariance,\n\n*Phys. Rev. A* **98**, 063815 (2018)\n\nhttps://journals.aps.org/pra/abstract/10.1103/PhysRevA.98.063815\n\nDOI: 10.1103/PhysRevA.98.063815\n\nhttps://arxiv.org/abs/1805.05129\n\n## Disclaimer\n**The `Dicke.liouvillian()` object is not to be used directly to compute its full spectrum or the Liouvillian gap.**\n\n## Resources\nTheoretical 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].\n\n[1] N. Shammah, S. Ahmed, N. Lambert, S. De Liberato, and F. Nori, *Phys. Rev. A* **98**, 063815 (2018)\n\nhttps://journals.aps.org/pra/abstract/10.1103/PhysRevA.98.063815\n\n[2] https://github.com/peterkirton/permutations P. Kirton and J. Keeling *Phys. Rev. Lett.*  **118**, 123602 (2017)\n\n[3] https://github.com/modmido/psiquasp M. Gegg and M. Richter, *Sci. Rep.* **7**, 16304 (2017)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanshammah%2Fpiqs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanshammah%2Fpiqs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanshammah%2Fpiqs/lists"}