Skip to content

seweber/pairinteraction

 
 

Repository files navigation

Pairinteraction - A Rydberg Interaction Calculator

PyPI Package 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.

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. For a more detailed description of the software that is written to be accessible also to non-specialists, see the About page of the project. The software can be installed via pip (requires Python >= 3.9, for tips see our extended installation instructions):

pip install pairinteraction

You can use the pairinteraction software as a Python library, see our quick start guide to get started in 5 minutes, 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

Quantum Defects

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]

  • MQDT.jl - 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 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)
  • Nicolas Zuber - Tutorial on Rydberg-ion interaction
  • 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!

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.

University of Stuttgart Federal Ministry of Education and Research Atom Computing

License

The pairinteraction software is licensed under LGPL v3. For more information, see LICENSE.txt.

About

A Rydberg Interaction Calculator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 54.6%
  • Python 40.2%
  • CMake 3.4%
  • Jupyter Notebook 1.8%