{"id":28089074,"url":"https://github.com/pairinteraction/pairinteraction","last_synced_at":"2025-05-13T12:53:33.058Z","repository":{"id":37952201,"uuid":"67148798","full_name":"pairinteraction/pairinteraction","owner":"pairinteraction","description":"A Rydberg Interaction Calculator","archived":false,"fork":false,"pushed_at":"2025-05-12T14:49:46.000Z","size":45788,"stargazers_count":44,"open_issues_count":15,"forks_count":35,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-12T15:25:33.380Z","etag":null,"topics":["c-plus-plus","cmake","pairinteraction","physics","python","simulation"],"latest_commit_sha":null,"homepage":"https://pairinteraction.github.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pairinteraction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2016-09-01T16:37:32.000Z","updated_at":"2025-05-12T14:03:50.000Z","dependencies_parsed_at":"2023-10-16T14:59:42.230Z","dependency_job_id":"d5602610-e548-48fe-b643-cadce6ecdc62","html_url":"https://github.com/pairinteraction/pairinteraction","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pairinteraction%2Fpairinteraction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pairinteraction%2Fpairinteraction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pairinteraction%2Fpairinteraction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pairinteraction%2Fpairinteraction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pairinteraction","download_url":"https://codeload.github.com/pairinteraction/pairinteraction/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253948051,"owners_count":21988951,"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","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":["c-plus-plus","cmake","pairinteraction","physics","python","simulation"],"created_at":"2025-05-13T12:53:32.468Z","updated_at":"2025-05-13T12:53:33.040Z","avatar_url":"https://github.com/pairinteraction.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pairinteraction - A Rydberg Interaction Calculator\n\n[![PyPI Package][pypi-svg]][pypi-link]\n[![arXiv:1612.08053][arXiv-svg]][arXiv-link]\n[![License: LGPL v3][license-lgpl-svg]][license-lgpl-link]\n[![CI Workflow][gh-workflow-svg]][gh-workflow-link]\n[![Quality Gate Status][sonarcloud-svg]][sonarcloud-link]\n[![C++ Coverage - ctest][coverage-cpp-ctest-svg]][coverage-cpp-ctest-link]\n[![C++ Coverage - pytest][coverage-cpp-pytest-svg]][coverage-cpp-pytest-link]\n[![Python Coverage - pytest][coverage-python-pytest-svg]][coverage-python-pytest-link]\n[![Documentation][docs-svg]][docs-link]\n\n[pypi-svg]: https://img.shields.io/pypi/v/pairinteraction.svg?style=flat\n[pypi-link]: https://pypi.org/project/pairinteraction/\n[arXiv-svg]: https://img.shields.io/badge/arXiv-1612.08053-b31b1b.svg?style=flat\n[arXiv-link]: https://arxiv.org/abs/1612.08053\n[license-lgpl-svg]: https://img.shields.io/badge/License-LGPL_v3-blue.svg?style=flat\n[license-lgpl-link]: https://www.gnu.org/licenses/lgpl-3.0.html\n[gh-workflow-svg]: https://github.com/pairinteraction/pairinteraction/actions/workflows/python-wheel.yml/badge.svg\n[gh-workflow-link]: https://github.com/pairinteraction/pairinteraction/actions/workflows/python-wheel.yml\n[sonarcloud-svg]: https://sonarcloud.io/api/project_badges/measure?project=pairinteraction_pairinteraction\u0026metric=alert_status\n[sonarcloud-link]: https://sonarcloud.io/dashboard?id=pairinteraction_pairinteraction\n[coverage-cpp-ctest-svg]: https://img.shields.io/badge/C%2B%2B_coverage-ctest-blue.svg?style=flat\n[coverage-cpp-ctest-link]: https://www.pairinteraction.org/pairinteraction/coverage/cpp-ctest/html/index.html\n[coverage-cpp-pytest-svg]: https://img.shields.io/badge/C%2B%2B_coverage-pytest-blue.svg?style=flat\n[coverage-cpp-pytest-link]: https://www.pairinteraction.org/pairinteraction/coverage/cpp-pytest/html/index.html\n[coverage-python-pytest-svg]: https://img.shields.io/badge/Python_coverage-pytest-blue.svg?style=flat\n[coverage-python-pytest-link]: https://www.pairinteraction.org/pairinteraction/coverage/python-pytest/html/index.html\n[docs-svg]: https://img.shields.io/badge/Documentation-pairinteraction.org-blue.svg?style=flat\n[docs-link]: https://www.pairinteraction.org/pairinteraction/sphinx/html/\n\n**Note: This is a completely new version of the pairinteraction software that is not backward compatible to versions below v1.0.**\n\nThe *pairinteraction* software calculates properties of Rydberg atoms. The software consists of a Python library and a graphical user interface for obtaining single-atom properties and calculating pair potentials, making use of a high-performance C++ backend. For a more detailed description of the software that is written to be accessible also to non-specialists, see the [About page][about-link] of the project. The software can be installed via pip (requires Python \u003e= 3.9):\n\n```bash\npip install pairinteraction\n```\n\nYou can use the pairinteraction software [as a Python library][tutorial-link], or you can launch its graphical user interface from the command line:\n\n```bash\npairinteraction gui\n```\n\n[about-link]: https://www.pairinteraction.org/pairinteraction/sphinx/html/about.html\n[tutorial-link]: https://www.pairinteraction.org/pairinteraction/sphinx/html/tutorials/tutorials.html\n\n## Highlights\n\n* For calculating Rydberg pair potentials, the software uses a similar approach as the [old version of pairinteraction](https://github.com/pairinteraction/pairinteraction/tree/v0.9.10), the [Alkali.ne Rydberg Calculator](https://github.com/nikolasibalic/ARC-Alkali-Rydberg-Calculator), and the [rydcalc library](https://github.com/ThompsonLabPrinceton/rydcalc). We optimized the construction and diagonalization of Hamiltonians, typically achieving a **speedup of 5-20x** compared to other implementations.\n\n  ![benchmarking results][benchmark-results-link]\n\n  *Figure: Benchmarking the construction and diagonalization of a Hamiltonian of a pair of Rb 60S atoms for 100 different internuclear distances on an AMD Ryzen 7 5700G CPU using Windows 11. The Hilbert space comprises pair states that differ at most by 4 in n, l and 25GHz in energy. When supported, symmetries where used to reduce the Hilbert space size. See the [benchmarking tool][benchmark-tool].*\n\n* The software uses single-channel quantum defect theory (SQDT) and also **multi-channel quantum defect theory (MQDT)** for the accurate description of atoms.\n\n  The construction of Hamiltonians is accelerated by using pre-calculated matrix elements, which are stored in database tables. These tables are automatically downloaded from GitHub \\[[1],[2]\\] and cached locally when needed.\n\n[1]: https://github.com/pairinteraction/database-sqdt/releases\n[2]: https://github.com/pairinteraction/database-mqdt/releases\n[benchmark-tool]: https://github.com/pairinteraction/pairinteraction/tree/master/tools/benchmarking\n\n* **Electric and magnetic fields in arbitrary directions** can be included in the calculations. Diamagnetism is supported.\n\n[benchmark-results-link]: https://github.com/pairinteraction/pairinteraction/raw/master/data/benchmarking_results/0845d67063_1.4.2-cp313-win_amd-ryzen-7-5700g-with-radeon-graphics_reps4.png\n\n## How to Cite\n\nIf you use pairinteraction in your research, please cite our tutorial paper:\n\n\u003e Sebastian Weber, Christoph Tresp, Henri Menke, Alban Urvoy, Ofer Firstenberg, Hans Peter Büchler, Sebastian Hofferberth, *Tutorial: Calculation of Rydberg interaction potentials*, [J. Phys. B: At. Mol. Opt. Phys. 50, 133001 (2017)][journal-link], [arXiv:1612.08053][arXiv-link]\n\n**Quantum Defects**\n\u003ca id=\"quantum-defects\"\u003e\u003c/a\u003e\n\nPairinteraction relies on quantum defects provided by the community. Consider citing relevant publications for your atomic species alongside pairinteraction.\n\n\u003cp\u003e\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick to expand for quantum defect references\u003c/b\u003e\u003c/summary\u003e\n\n| Element | Model                 | Identifier     | References                                                                                                                                                   |\n|---------|-----------------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| H       | SQDT                  | `H`            | Schrödinger equation for hydrogen                                                                                                                            |\n| Li      | SQDT                  | `Li`           | [10.1017/CBO9780511524530] (1994)\u003cbr\u003e[10.1103/PhysRevA.34.2889] (1986)                                                                                       |\n| Na      | SQDT                  | `Na`           | [10.1088/0953-4075/30/10/009] (1997)\u003cbr\u003e[10.1070/QE1995v025n09ABEH000501] (1995)\u003cbr\u003e[10.1103/PhysRevA.45.4720] (1992)                                        |\n| K       | SQDT                  | `K`            | [10.1088/0031-8949/27/4/012] (1983)\u003cbr\u003e[10.1016/0030-4018(81)90225-X] (1981)                                                                                 |\n| Rb      | SQDT                  | `Rb`           | [10.1103/PhysRevA.83.052515] (2011)\u003cbr\u003e[10.1103/PhysRevA.74.054502] (2006)\u003cbr\u003e[10.1103/PhysRevA.74.062712] (2006)\u003cbr\u003e[10.1103/PhysRevA.67.052502] (2003)     |\n| Cs      | SQDT                  | `Cs`           | [10.1103/PhysRevA.93.013424] (2016)\u003cbr\u003e[10.1103/PhysRevA.35.4650] (1987)\u003cbr\u003e[10.1103/PhysRevA.26.2733] (1982)                                                |\n| Sr88    | SQDT, singlet sector  | `Sr88_singlet` | [10.1103/PhysRevA.108.022815] (2023)\u003cbr\u003e[10.17169/refubium-34581] (2022)                                                                                     |\n| Sr88    | SQDT, triplet sector  | `Sr88_triplet` | [10.1016/j.cpc.2020.107814] (2021)                                                                                                                           |\n| Sr87    | MQDT                  | `Sr87_mqdt`    | [10.1088/1361-6455/ab4c22] (2019)                                                                                                                            |\n| Sr88    | MQDT                  | `Sr88_mqdt`    | [10.1088/1361-6455/ab4c22] (2019)                                                                                                                            |\n| Yb171   | MQDT                  | `Yb171_mqdt`   | [10.48550/arXiv.2406.01482] (2024)                                                                                                                           |\n| Yb173   | MQDT                  | `Yb173_mqdt`   | MQDT model formulated by us                                                                                                                                  |\n| Yb174   | MQDT                  | `Yb174_mqdt`   | [10.48550/arXiv.2406.01482] (2024)                                                                                                                           |\n\nThe identifier can be used to specify an atomic species in the pairinteraction software.\n\n\n\u003c/details\u003e\u003c/p\u003e\n\n[journal-link]: https://doi.org/10.1088/1361-6455/aa743a\n[10.1103/PhysRevA.34.2889]: https://doi.org/10.1103/PhysRevA.34.2889\n[10.1017/CBO9780511524530]: https://doi.org/10.1017/CBO9780511524530\n[10.1103/PhysRevA.45.4720]: https://doi.org/10.1103/PhysRevA.45.4720\n[10.1070/QE1995v025n09ABEH000501]: https://doi.org/10.1070/QE1995v025n09ABEH000501\n[10.1088/0953-4075/30/10/009]: https://doi.org/10.1088/0953-4075/30/10/009\n[10.1088/0031-8949/27/4/012]: https://doi.org/10.1088/0031-8949/27/4/012\n[10.1016/0030-4018(81)90225-X]: https://doi.org/10.1016/0030-4018(81)90225-X\n[10.1103/PhysRevA.83.052515]: https://doi.org/10.1103/PhysRevA.83.052515\n[10.1103/PhysRevA.67.052502]: https://doi.org/10.1103/PhysRevA.67.052502\n[10.1103/PhysRevA.74.054502]: https://doi.org/10.1103/PhysRevA.74.054502\n[10.1103/PhysRevA.74.062712]: https://doi.org/10.1103/PhysRevA.74.062712\n[10.1103/PhysRevA.93.013424]: https://doi.org/10.1103/PhysRevA.93.013424\n[10.1103/PhysRevA.26.2733]: https://doi.org/10.1103/PhysRevA.26.2733\n[10.1103/PhysRevA.35.4650]: https://doi.org/10.1103/PhysRevA.35.4650\n[10.1103/PhysRevA.108.022815]: https://doi.org/10.1103/PhysRevA.108.022815\n[10.17169/refubium-34581]: https://doi.org/10.17169/refubium-34581\n[10.1016/j.cpc.2020.107814]: https://doi.org/10.1016/j.cpc.2020.107814\n[10.1088/1361-6455/ab4c22]: https://doi.org/10.1088/1361-6455/ab4c22\n[10.48550/arXiv.2406.01482]: https://doi.org/10.48550/arXiv.2406.01482\n\n## Documentation\n\n**User Guide**\n\n- [Installation] - Whether you prefer an installation via pip or compiling from source, we've got all the information you need.\n\n- [Tutorials] - Covering both the graphical user interface and the Python library,\nthese tutorials enable you to leverage pairinteraction for your projects.\n\n- [API Reference] - Documentation of classes and functions of pairinteraction's Python library.\n\n- [Publications] - Find out more about the theory behind pairinteraction and how to cite it and the quantum defects you use.\n\n**Contributor Guide**\n\n- [Getting Started as a Contributor] - Discover the many ways you can help improve pairinteraction, from contributing to the repository to providing quantum defects.\n\n- [Overview About pairinteraction's Architecture] - Find out how pairinteraction is structured.\n\n- [Style Guide] - Learn about the coding style used in pairinteraction.\n\n- [Database Format] - Explore the database for storing atomic states and matrix elements.\n\n**Utility Tools [External Links]**\n\n- [MQDT.jl] - Learn how to calculate states and matrix elements using multi-channel quantum defect theory with our tool written in Julia.\n\n- [ryd-numerov] - Learn how to calculate states and matrix elements using single quantum defect theory with our tool written in Python.\n\n[Installation]: https://www.pairinteraction.org/pairinteraction/sphinx/html/installation/installation.html\n[Tutorials]: https://www.pairinteraction.org/pairinteraction/sphinx/html/tutorials/tutorials.html\n[API Reference]: https://www.pairinteraction.org/pairinteraction/sphinx/html/api_reference.html\n[Publications]: https://www.pairinteraction.org/pairinteraction/sphinx/html/publications/publications.html\n[Getting Started as a Contributor]: https://www.pairinteraction.org/pairinteraction/sphinx/html/contribute/getting_started.html\n[Overview About pairinteraction's Architecture]: https://www.pairinteraction.org/pairinteraction/sphinx/html/contribute/architecture.html\n[Style Guide]: https://www.pairinteraction.org/pairinteraction/sphinx/html/contribute/style_guide.html\n[Database Format]: https://www.pairinteraction.org/pairinteraction/sphinx/html/contribute/database.html\n[MQDT.jl]: https://github.com/pairinteraction/MQDT.jl\n[ryd-numerov]: https://github.com/pairinteraction/ryd-numerov/\n\n## Contributors\n\nThe software is maintained by:\n* [Sebastian Weber]\n* [Johannes Mögerle]\n\nIn addition, the following people contributed significantly to the current and/or previous versions of the software:\n* [Henri Menke]\n* [Frederic Hummel] - Julia package for multi-channel quantum defect theory, matrix elements\n* [Eduard J. Braun] - Perturbative calculations, installation instructions for Windows\n* [Johannes Block] - Calculation of Rydberg pair potentials near surfaces *(not yet in new version)*\n* [Nicolas Zuber] - Tutorial on Rydberg-ion interaction\n* [Simon Hollerith] - Documentation of the graphical user interface *(not yet in new version)*\n\nWe warmly welcome new contributions! Please see our [contributor guide][contributor-link] for more information!\n\nThe development of the pairinteraction software has been supported by the [Institute for Theoretical Physics III] of the University of Stuttgart, the Federal Ministry of Education and Research under the Grants [QRydDemo] and [MUNIQC-Atoms], and the company [Atom Computing]. The development of the original version of the software started at the [5th Institute of Physics] of the University of Stuttgart.\n\n[![University of Stuttgart][stuttgart-jpg]][stuttgart-link]\n[![Federal Ministry of Education and Research][bmbf-jpg]][bmbf-link]\n[![Atom Computing][atom-jpg]][atom-link]\n\n[stuttgart-jpg]:  https://github.com/pairinteraction/pairinteraction/raw/master/docs/_static/logos/uni_stuttgart.svg\n[stuttgart-link]: https://www.uni-stuttgart.de/en/\n[bmbf-jpg]: https://github.com/pairinteraction/pairinteraction/raw/master/docs/_static/logos/bmbf.svg\n[bmbf-link]: https://www.bmbf.de/EN/\n[atom-jpg]: https://github.com/pairinteraction/pairinteraction/raw/master/docs/_static/logos/atom_computing.svg\n[atom-link]: https://atom-computing.com/\n\n[Institute for Theoretical Physics III]: https://www.itp3.uni-stuttgart.de/\n[QRydDemo]: https://www.quantentechnologien.de/forschung/foerderung/quantenprozessoren-und-technologien-fuer-quantencomputer/qryddemo.html\n[MUNIQC-Atoms]: https://www.quantentechnologien.de/forschung/foerderung/quantencomputer-demonstrationsaufbauten/muniqc-atoms.html\n[Atom Computing]: https://atom-computing.com/\n[5th Institute of Physics]: https://www.pi5.uni-stuttgart.de/\n[Sebastian Weber]: https://github.com/seweber\n[Johannes Mögerle]: https://github.com/johannes-moegerle\n[Henri Menke]: https://github.com/hmenke\n[Frederic Hummel]: https://github.com/frederic-atom\n[Eduard J. Braun]: https://github.com/EduardJBraun\n[Nicolas Zuber]: https://github.com/tripiti\n[Johannes Block]: https://github.com/johblock\n[Simon Hollerith]: https://github.com/SimonHollerith\n[contributor-link]: https://www.pairinteraction.org/pairinteraction/sphinx/html/contribute/getting_started.html\n\n## License\n\nThe pairinteraction software is licensed under [LGPL v3][license-lgpl-link]. For more information, see [LICENSE.txt](https://github.com/pairinteraction/pairinteraction/blob/master/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpairinteraction%2Fpairinteraction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpairinteraction%2Fpairinteraction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpairinteraction%2Fpairinteraction/lists"}