rydiqule


Namerydiqule JSON
Version 1.2.1 PyPI version JSON
download
home_page
SummaryRydberg Sensor Interactive Quantum Physics Module
upload_time2024-01-23 16:25:34
maintainer
docs_urlNone
authorARL and NAWCWD
requires_python>=3.8
licenseApache
keywords rydberg atomic-physics quantum-optics atomic-sensors electrometry
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="https://raw.githubusercontent.com/QTC-UMD/rydiqule/main/docs/source/img/Rydiqule_Logo_Transparent_300.png" alt="rydiqule" style="max-width: 100%;">

The Rydberg Interactive Quantum module is a modeling library designed to simulate
the response of Rydberg atoms to arbitrary input RF waveforms.
It also functions as a general master equation solver based on the semi-classical density matrix method.

[![PyPI](https://img.shields.io/pypi/v/rydiqule.svg)](https://pypi.org/project/rydiqule)
[![Python Version](https://img.shields.io/pypi/pyversions/rydiqule.svg)](https://python.org)
[![License](https://img.shields.io/pypi/l/rydiqule.svg)](https://github.com/QTC-UMD/rydiqule/raw/main/LICENSE)
[![Docs](https://readthedocs.org/projects/rydiqule/badge/?version=latest)](https://rydiqule.readthedocs.io/en/latest)

### Please cite as

B. N Miller, D. H. Meyer, T. Virtanen, C. M O'Brien, and K. C. Cox,
RydIQule: A Graph-based paradigm for modeling Rydberg and atomic sensors,
*Computer Physics Communications*, **294**, 108952 (2024)
[https://doi.org/10.1016/j.cpc.2023.108952](https://doi.org/10.1016/j.cpc.2023.108952)

## Installation

Presently, installation is done via pip.
See below for detailed instructions.

In all cases, it is highly recommended to install rydiqule in a virtual environment.

### Conda/pip installation

If using a conda to provide the virtual environmnet,
it can often be advantageous to install as many packages as possible via conda before running the pip installation command.

Assuming you have not already created a separate environment for RydIQule (recommended), run the following to create a new environment:
```shell
(base) ~/> conda create -n rydiqule python=3.9
(base) ~/> conda activate rydiqule
```
RydIQule currently requires python >3.8.

Now install dependencies that are available via conda.
To capture as many dependencies as possible,
we will add the `conda-forge` channel at a lower priority.
```shell
(rydiqule) ~/> conda config --env --append channels conda-forge
(rydiqule) ~/> conda config --set channel_priority strict
(rydiqule) ~/> conda install numpy scipy matplotlib networkx numba psutil
# ARC specific dependencies available via conda
(rydiqule) ~/> conda install sympy asteval lmfit uncertainties
```

Now use pip to install rydiqule and remaining dependencies.
```shell
# for normal installation
(rydiqule) ~/> pip install rydiqule
# for editable installation of cloned repo, so source can be modified locally
(rydiqule) ~/> pip install -e .
```

### Pure pip installation

To install normally, run:
```shell
pip install rydiqule
```
This command will use pip to install all necessary dependencies.

To install in an editable way (which allows edits of the source code),
run the following from the root directory of the cloned repository:
```shell
pip install -e .
```

### Confirm installation

Proper installation can be confirmed by executing the following commands in a python terminal.
```shell
>>> import rydiqule as rq
>>> rq.about()

        Rydiqule
    ================

Rydiqule Version:     1.1.0
Installation Path:    ~\Miniconda3\envs\rydiqule\lib\site-packages\rydiqule

      Dependencies
    ================

NumPy Version:        1.24.3
SciPy Version:        1.10.1
Matplotlib Version:   3.7.1
ARC Version:          3.3.0
Python Version:       3.9.16
Python Install Path:  ~\Miniconda3\envs\rydiqule
Platform Info:        Windows (AMD64)
CPU Count:            12
Total System Memory:  128 GB
```

### Updating an existing installation

Upgrading an existing installation is simple.
Simply run the pip installation commands described above.
Optionally, include the update flag to greedily update dependencies as well.
```shell
pip install -U rydiqule
```
This command will also install any new dependencies that are required.

If using an editable install, simply replacing the files in the same directory is sufficient.
Though it is recommended to also run the appropriate pip update command as well to capture updated dependencies.
```shell
pip install -U -e .
```

### Dependencies

This package requires installation of the excellent [ARC](https://github.com/nikolasibalic/ARC-Alkali-Rydberg-Calculator) package, which is used to get Rydberg atomic properties.
It also requires other standard computation dependenices, such as `numpy`, `scipy`, `matplotlib`, etc.
These dependencies will be automatically installed by pip if not already present.

Rydiqule's performance does depend on these depedencies.
In particular, `numpy` can be compiled with a variety of backends that implements
BLAS and LAPACK routines that can have different performance for different computer architectures.
When using Windows, it is recommended to install `numpy` from conda,
which is built against the IntelMKL and has generally shown the best performance for Intel-based PCs.

Optional timesolver backend dependencies include the [numbakit-ode](https://github.com/hgrecco/numbakit-ode)
and [CyRK](https://github.com/jrenaud90/CyRK) packages.
Both are available via `pip`.
They can be installed automatically via the optional extras specification for the `pip` command.
```shell
pip install rydiqule[backends]
```

## Documentation

Documentation is available online at [readthedocs](https://rydiqule.readthedocs.io/en/latest).
PDF or EPUB formats of the documentation can be downloaded from the online documentation.

### Examples

Example jupyter notebooks that demonstrate RydIQule can be found in the `examples` subdirectory.
Printouts of these notebooks are available in the documentation as well.

## Support

Creation of this software was supported in part by the Defense Advanced Research Projects Agency (DARPA) Quantum Apertures program, DEVCOM Army Research Laboratory, and the Quantum Technology Center at the University of Maryland.

## Disclaimer

The views, opinions and/or findings expressed are those of the authors and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.

## Contact

The github repository is for code distribution only.
While we monitor it, 
we will not directly respond to issues or pull requests posted to it.
If you would like a response from the developers, please e-mail
david.h.meyer3.civ@army.mil or kevin.c.cox29.civ@army.mil

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "rydiqule",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "rydberg,atomic-physics,quantum-optics,atomic-sensors,electrometry",
    "author": "ARL and NAWCWD",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/c1/e9/0e4d1a62e1d6adacaab759097070b9a05d78082b4db4b7a09cb864df82ad/rydiqule-1.2.1.tar.gz",
    "platform": null,
    "description": "<img src=\"https://raw.githubusercontent.com/QTC-UMD/rydiqule/main/docs/source/img/Rydiqule_Logo_Transparent_300.png\" alt=\"rydiqule\" style=\"max-width: 100%;\">\n\nThe Rydberg Interactive Quantum module is a modeling library designed to simulate\nthe response of Rydberg atoms to arbitrary input RF waveforms.\nIt also functions as a general master equation solver based on the semi-classical density matrix method.\n\n[![PyPI](https://img.shields.io/pypi/v/rydiqule.svg)](https://pypi.org/project/rydiqule)\n[![Python Version](https://img.shields.io/pypi/pyversions/rydiqule.svg)](https://python.org)\n[![License](https://img.shields.io/pypi/l/rydiqule.svg)](https://github.com/QTC-UMD/rydiqule/raw/main/LICENSE)\n[![Docs](https://readthedocs.org/projects/rydiqule/badge/?version=latest)](https://rydiqule.readthedocs.io/en/latest)\n\n### Please cite as\n\nB. N Miller, D. H. Meyer, T. Virtanen, C. M O'Brien, and K. C. Cox,\nRydIQule: A Graph-based paradigm for modeling Rydberg and atomic sensors,\n*Computer Physics Communications*, **294**, 108952 (2024)\n[https://doi.org/10.1016/j.cpc.2023.108952](https://doi.org/10.1016/j.cpc.2023.108952)\n\n## Installation\n\nPresently, installation is done via pip.\nSee below for detailed instructions.\n\nIn all cases, it is highly recommended to install rydiqule in a virtual environment.\n\n### Conda/pip installation\n\nIf using a conda to provide the virtual environmnet,\nit can often be advantageous to install as many packages as possible via conda before running the pip installation command.\n\nAssuming you have not already created a separate environment for RydIQule (recommended), run the following to create a new environment:\n```shell\n(base) ~/> conda create -n rydiqule python=3.9\n(base) ~/> conda activate rydiqule\n```\nRydIQule currently requires python >3.8.\n\nNow install dependencies that are available via conda.\nTo capture as many dependencies as possible,\nwe will add the `conda-forge` channel at a lower priority.\n```shell\n(rydiqule) ~/> conda config --env --append channels conda-forge\n(rydiqule) ~/> conda config --set channel_priority strict\n(rydiqule) ~/> conda install numpy scipy matplotlib networkx numba psutil\n# ARC specific dependencies available via conda\n(rydiqule) ~/> conda install sympy asteval lmfit uncertainties\n```\n\nNow use pip to install rydiqule and remaining dependencies.\n```shell\n# for normal installation\n(rydiqule) ~/> pip install rydiqule\n# for editable installation of cloned repo, so source can be modified locally\n(rydiqule) ~/> pip install -e .\n```\n\n### Pure pip installation\n\nTo install normally, run:\n```shell\npip install rydiqule\n```\nThis command will use pip to install all necessary dependencies.\n\nTo install in an editable way (which allows edits of the source code),\nrun the following from the root directory of the cloned repository:\n```shell\npip install -e .\n```\n\n### Confirm installation\n\nProper installation can be confirmed by executing the following commands in a python terminal.\n```shell\n>>> import rydiqule as rq\n>>> rq.about()\n\n        Rydiqule\n    ================\n\nRydiqule Version:     1.1.0\nInstallation Path:    ~\\Miniconda3\\envs\\rydiqule\\lib\\site-packages\\rydiqule\n\n      Dependencies\n    ================\n\nNumPy Version:        1.24.3\nSciPy Version:        1.10.1\nMatplotlib Version:   3.7.1\nARC Version:          3.3.0\nPython Version:       3.9.16\nPython Install Path:  ~\\Miniconda3\\envs\\rydiqule\nPlatform Info:        Windows (AMD64)\nCPU Count:            12\nTotal System Memory:  128 GB\n```\n\n### Updating an existing installation\n\nUpgrading an existing installation is simple.\nSimply run the pip installation commands described above.\nOptionally, include the update flag to greedily update dependencies as well.\n```shell\npip install -U rydiqule\n```\nThis command will also install any new dependencies that are required.\n\nIf using an editable install, simply replacing the files in the same directory is sufficient.\nThough it is recommended to also run the appropriate pip update command as well to capture updated dependencies.\n```shell\npip install -U -e .\n```\n\n### Dependencies\n\nThis package requires installation of the excellent [ARC](https://github.com/nikolasibalic/ARC-Alkali-Rydberg-Calculator) package, which is used to get Rydberg atomic properties.\nIt also requires other standard computation dependenices, such as `numpy`, `scipy`, `matplotlib`, etc.\nThese dependencies will be automatically installed by pip if not already present.\n\nRydiqule's performance does depend on these depedencies.\nIn particular, `numpy` can be compiled with a variety of backends that implements\nBLAS and LAPACK routines that can have different performance for different computer architectures.\nWhen using Windows, it is recommended to install `numpy` from conda,\nwhich is built against the IntelMKL and has generally shown the best performance for Intel-based PCs.\n\nOptional timesolver backend dependencies include the [numbakit-ode](https://github.com/hgrecco/numbakit-ode)\nand [CyRK](https://github.com/jrenaud90/CyRK) packages.\nBoth are available via `pip`.\nThey can be installed automatically via the optional extras specification for the `pip` command.\n```shell\npip install rydiqule[backends]\n```\n\n## Documentation\n\nDocumentation is available online at [readthedocs](https://rydiqule.readthedocs.io/en/latest).\nPDF or EPUB formats of the documentation can be downloaded from the online documentation.\n\n### Examples\n\nExample jupyter notebooks that demonstrate RydIQule can be found in the `examples` subdirectory.\nPrintouts of these notebooks are available in the documentation as well.\n\n## Support\n\nCreation of this software was supported in part by the Defense Advanced Research Projects Agency (DARPA) Quantum Apertures program, DEVCOM Army Research Laboratory, and the Quantum Technology Center at the University of Maryland.\n\n## Disclaimer\n\nThe views, opinions and/or findings expressed are those of the authors and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.\n\n## Contact\n\nThe github repository is for code distribution only.\nWhile we monitor it, \nwe will not directly respond to issues or pull requests posted to it.\nIf you would like a response from the developers, please e-mail\ndavid.h.meyer3.civ@army.mil or kevin.c.cox29.civ@army.mil\n",
    "bugtrack_url": null,
    "license": "Apache",
    "summary": "Rydberg Sensor Interactive Quantum Physics Module",
    "version": "1.2.1",
    "project_urls": null,
    "split_keywords": [
        "rydberg",
        "atomic-physics",
        "quantum-optics",
        "atomic-sensors",
        "electrometry"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29fc576ad86a7631d969f2aaa87753063ffa346fad271b8bd34967b6aeb46a61",
                "md5": "0f532433a4a9411e1ca02e7b7aa80068",
                "sha256": "2f2674af6885703083dcb39de3296ff5fcdcc4d7629411f4f35c9c577c38e87e"
            },
            "downloads": -1,
            "filename": "rydiqule-1.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0f532433a4a9411e1ca02e7b7aa80068",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 86577,
            "upload_time": "2024-01-23T16:25:32",
            "upload_time_iso_8601": "2024-01-23T16:25:32.110697Z",
            "url": "https://files.pythonhosted.org/packages/29/fc/576ad86a7631d969f2aaa87753063ffa346fad271b8bd34967b6aeb46a61/rydiqule-1.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c1e90e4d1a62e1d6adacaab759097070b9a05d78082b4db4b7a09cb864df82ad",
                "md5": "66ce90450d5062149575b95d1d34144f",
                "sha256": "1c6c2bd88a43b5a4eff501f2f6d250b683114af85ca86516831f55bf6eccbf5a"
            },
            "downloads": -1,
            "filename": "rydiqule-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "66ce90450d5062149575b95d1d34144f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 92974,
            "upload_time": "2024-01-23T16:25:34",
            "upload_time_iso_8601": "2024-01-23T16:25:34.115934Z",
            "url": "https://files.pythonhosted.org/packages/c1/e9/0e4d1a62e1d6adacaab759097070b9a05d78082b4db4b7a09cb864df82ad/rydiqule-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-23 16:25:34",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rydiqule"
}
        
Elapsed time: 0.18014s