Pairinteraction - A Rydberg Interaction Calculator

arXiv:1612.08053 License: LGPL v3 CI Workflow Quality Gate Status C++ Coverage - ctest C++ Coverage - pytest Python Coverage - pytest Documentation

Note: This is a completely new version of the pairinteraction software that is not backward compatible to versions below v1.0. Breaking changes can occur until the software reaches v2.0.

The 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. The software can be installed via pip:

pip install --only-binary pairinteraction --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pairinteraction

You can use the pairinteraction software as a Python library, or you can launch its graphical user interface from the command line:

pairinteraction gui

Highlights

  • For calculating Rydberg pair potentials, the software uses a similar approach as the old version of pairinteraction, the Alkali.ne Rydberg Calculator, and the rydcalc library. We optimized the construction and diagonalization of Hamiltonians, typically achieving a speedup of 5-20x compared to other implementations.

    benchmarking results

    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.

  • The software uses single-channel quantum defect theory (SQDT) and also multi-channel quantum defect theory (MQDT) for the accurate description of atoms.

    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.

  • Electric and magnetic fields in arbitrary directions can be included in the calculations. Diamagnetism is supported.

How to Cite

If you use pairinteraction in your research, please cite our tutorial paper:

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), arXiv:1612.08053

Pairinteraction relies on quantum defects provided by the community. Consider citing relevant publications for your atomic species alongside pairinteraction.

Click to expand for quantum defect references

Element

Model

Identifier

References

H

SQDT

H

Schrödinger equation for hydrogen

Li

SQDT

Li

10.1017/CBO9780511524530 (1994)
10.1103/PhysRevA.34.2889 (1986)

Na

SQDT

Na

10.1088/0953-4075/30/10/009 (1997)
10.1070/QE1995v025n09ABEH000501 (1995)
10.1103/PhysRevA.45.4720 (1992)

K

SQDT

K

10.1088/0031-8949/27/4/012 (1983)
10.1016/0030-4018(81)90225-X (1981)

Rb

SQDT

Rb

10.1103/PhysRevA.83.052515 (2011)
10.1103/PhysRevA.74.054502 (2006)
10.1103/PhysRevA.74.062712 (2006)
10.1103/PhysRevA.67.052502 (2003)

Cs

SQDT

Cs

10.1103/PhysRevA.93.013424 (2016)
10.1103/PhysRevA.35.4650 (1987)
10.1103/PhysRevA.26.2733 (1982)

Sr88

SQDT, singlet sector

Sr88_singlet

10.1103/PhysRevA.108.022815 (2023)
10.17169/refubium-34581 (2022)

Sr88

SQDT, triplet sector

Sr88_triplet

10.1016/j.cpc.2020.107814 (2021)

Sr87

MQDT

Sr87_mqdt

10.1088/1361-6455/ab4c22 (2019)

Sr88

MQDT

Sr88_mqdt

10.1088/1361-6455/ab4c22 (2019)

Yb171

MQDT

Yb171_mqdt

10.48550/arXiv.2406.01482 (2024)

Yb173

MQDT

Yb173_mqdt

MQDT model formulated by us

Yb174

MQDT

Yb174_mqdt

10.48550/arXiv.2406.01482 (2024)

The identifier can be used to specify an atomic species in the pairinteraction software.

Documentation

User Guide

  • Installation - Whether you prefer an installation via pip or compiling from source, we’ve got all the information you need.

  • Tutorials - Covering both the graphical user interface and the Python library, these tutorials enable you to leverage pairinteraction for your projects.

  • API Reference - Documentation of classes and functions of pairinteraction’s Python library.

  • Publications - Find out more about the theory behind pairinteraction and how to cite it and the quantum defects you use.

Contributor Guide

Utility Tools [External Links]

  • jl-mqdt - Learn how to calculate states and matrix elements using multi-channel quantum defect theory with our tool written in Julia.

  • ryd-numerov - Learn how to calculate states and matrix elements using single quantum defect theory with our tool written in Python.

Contributors

The 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.

The software is maintained by:

In addition, the following people contributed significantly to the current and/or previous versions of the software:

  • Henri Menke

  • Frederic Hummel - Julia package for multi-channel quantum defect theory, matrix elements

  • Eduard J. Braun - Perturbative calculations, installation instructions for Windows

  • Johannes Block - Calculation of Rydberg pair potentials near surfaces (not yet in new version)

  • Simon Hollerith - Documentation of the graphical user interface (not yet in new version)

We warmly welcome new contributions! Please see our contributor guide for more information.

License

The pairinteraction software is licensed under LGPL v3.