Skip to content

Commit

Permalink
Merge pull request #18 from QTC-UMD/release_1.2.0
Browse files Browse the repository at this point in the history
v1.1.0 to v1.2.0 commits
  • Loading branch information
dihm authored Dec 13, 2023
2 parents 9324a4f + b1e1dd2 commit 7c1362b
Show file tree
Hide file tree
Showing 25 changed files with 868 additions and 358 deletions.
95 changes: 95 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
cff-version: 1.2.0
message: If you use this software, please cite it using the preferred article citation.
title: RydIQule
abstract: >-
The Rydberg Interactive Quantum module is a modeling library designed to simulate the response of Rydberg atoms to arbitrary input RF waveforms.
It functions as a general master equation solver for quantum systems based on the semi-classical density matrix method.
authors:
- family-names: Miller
given-names: Benjamin N
orcid: 'https://orcid.org/0000-0003-0017-1355'
- family-names: Meyer
given-names: David H
orcid: 'https://orcid.org/0000-0003-2452-2017'
- family-names: Virtanen
given-names: Teemu
- family-names: O'Brien
given-names: Christopher M
orcid: 'https://orcid.org/0000-0003-2974-0531'
- family-names: Cox
given-names: Kevin C
orcid: 'https://orcid.org/0000-0001-5049-3999'

version: 1.1.0
date-released: "2023-10-11"
license: Apache-2.0
repository-code: "https://github.com/QTC-UMD/rydiqule"
url: "https://doi.org/10.1016/j.cpc.2023.108952"

identifiers:
- description: Journal article describing the software
doi: 10.1016/j.cpc.2023.108952

preferred-citation:
type: article
title: "RydIQule: A Graph-based paradigm for modeling Rydberg and atomic sensors"
authors:
- family-names: Miller
given-names: Benjamin N
- family-names: Meyer
given-names: David H
orcid: 'https://orcid.org/0000-0003-2452-2017'
- family-names: Virtanen
given-names: Teemu
- family-names: O'Brien
given-names: Christopher M
- family-names: Cox
given-names: Kevin C
doi: "10.1016/j.cpc.2023.108952"
journal: "Computer Physics Communications"
month: 1
year: 2024
start: 108952 # page number
issue: 294

references:
- type: software
title: ARC (Alkali.ne Rydberg Calculator)
authors:
- family-names: Šibalić
given-names: Nikola
repository-code: "https://github.com/nikolasibalic"
url: "http://arc-alkali-rydberg-calculator.readthedocs.io/"
- type: software
title: NetworkX
repository-code: "https://github.com/networkx/networkx"
url: "https://networkx.org"
- type: software
title: NumPy
repository-code: "https://github.com/numpy/numpy"
url: "https://numpy.org"
- type: software
title: SciPy
repository-code: "https://github.com/scipy/scipy"
url: "https://scipy.org"
- type: software
title: numbakit-ode
authors:
- family-names: Grecco
given-names: Hernan E
repository-code: "https://github.com/hgrecco/numbakit-ode"
url: "https://numbakit-ode.readthedocs.io/en/latest/index.html"
- type: software
title: CyRK
authors:
- family-names: Renaud
given-names: Joe P
repository-code: "https://github.com/jrenaud90/CyRK"
- type: software
title: leveldiagram
authors:
- family-names: Meyer
given-names: David H
repository-code: "https://github.com/dihm/leveldiagram"
url: "https://leveldiagram.readthedocs.io/en/latest"

33 changes: 21 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
<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 modelling library designed to simulate
the response of a Rydberg atoms to arbitrary input RF waveforms.
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.
Expand Down Expand Up @@ -43,8 +50,8 @@ Now use pip to install rydiqule and remaining dependencies.
```shell
# for normal installation
(rydiqule) ~/> pip install rydiqule
# for editable installation, so source can be modified locally
(rydiqule) ~/> pip install -e rydiqule
# for editable installation of cloned repo, so source can be modified locally
(rydiqule) ~/> pip install -e .
```

### Pure pip installation
Expand All @@ -55,9 +62,10 @@ 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:
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 rydiqule
pip install -e .
```

### Confirm installation
Expand All @@ -70,8 +78,8 @@ Proper installation can be confirmed by executing the following commands in a py
Rydiqule
================

Rydiqule Version: 1.0.0
Installation Path: C:\Users\naqsL\Miniconda3\envs\rydiqule\lib\site-packages\rydiqule
Rydiqule Version: 1.1.0
Installation Path: ~\Miniconda3\envs\rydiqule\lib\site-packages\rydiqule

Dependencies
================
Expand All @@ -81,7 +89,7 @@ SciPy Version: 1.10.1
Matplotlib Version: 3.7.1
ARC Version: 3.3.0
Python Version: 3.9.16
Python Install Path: C:\Users\naqsL\Miniconda3\envs\rydiqule
Python Install Path: ~\Miniconda3\envs\rydiqule
Platform Info: Windows (AMD64)
CPU Count: 12
Total System Memory: 128 GB
Expand All @@ -90,16 +98,17 @@ Total System Memory: 128 GB
### Updating an existing installation

Upgrading an existing installation is simple.
Simply run the pip installation commands described above with the update flag.
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.
Though it is recommended to also run the appropriate pip update command as well to capture updated dependencies.
```shell
pip install -U -e rydiqule
pip install -U -e .
```

### Dependencies
Expand Down
24 changes: 24 additions & 0 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
Changelog
=========

v1.2.0
------

Improvements
++++++++++++

- Level diagrams now use `Sensor.get_rotating_frames` to provide better plotting of energy ordering of levels.
- Level diagrams now allow for optional control of plotting parameters by manually specifying `ld_kw` options on nodes and edges.
- Added the ability to specify energy level shifts (additional Hamiltonian digonal terms) not accounted for by the coupling infrastructure.


Bug Fixes
+++++++++

- `Sensor.make_real` now returns correct sized `const` array when ground is not removed.
- Many updates to type hints to improve their accuracy.

Deprecations
++++++++++++

- Remove `Solution._variable_parameters` in favor of property checking the observable parameters.
- Renamed `Sensor.basis()` and `Solution.basis` to `Sensor.dm_basis()` and `Solution.dm_basis`
to disambiguate physical basis from computational basis.

v1.1.0
------

Expand Down
25 changes: 25 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,31 @@ For more details, see the :doc:`overview`.

For detailed usage examples, see the :doc:`_intro_nbs/Introduction_To_Rydiqule/Introduction_To_Rydiqule` Jupyter notebook.

If you use rydiqule in your work, please cite as

.. raw:: html

<details>
<summary>B. N. Miller, <em>et. al.</em>, <u><a href="https://doi.org/10.1016/j.cpc.2023.108952">RydIQule: A Graph-based paradigm for modeling Rydberg and atomic sensors</a>,</u> <em>Computer Physics Communications</em> <b>294</b>, 108952 (2024). arXiv:<a href="http://arxiv.org/abs/2307.15673">2307.15673</a>.</summary>

.. code-block:: bibtex
@article{rydiqule_2024,
author = {Miller, B. N. and Meyer, D. H. and Virtanen, T. and O'Brien, C. M. and Cox, K. C.},
title = {RydIQule: A Graph-based paradigm for modeling Rydberg and atomic sensors},
journal = {Computer Physics Communications},
volume = {294},
pages = {108952},
year = {2024},
doi = {10.1016/j.cpc.2023.108952},
url = {https://doi.org/10.1016/j.cpc.2023.108952},
eprint = {https://doi.org/10.1016/j.cpc.2023.108952}
}
.. raw:: html

</details>

.. toctree::
:maxdepth: 2
:hidden:
Expand Down
22 changes: 12 additions & 10 deletions docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Now use pip to install rydiqule and remaining dependencies.
# for normal installation
(rydiqule) ~/Rydiqule> pip install rydiqule
# for editable installation, so source can be modified locally
(rydiqule) ~/Rydiqule> pip install -e rydiqule
# for editable installation of cloned repo, so source can be modified locally
(rydiqule) ~/Rydiqule> pip install -e .
Pure pip installation
---------------------
Expand All @@ -54,11 +54,12 @@ To install normally, run:
This command will use pip to install all necessary dependencies.

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

.. code-block:: shell
pip install -e rydiqule
pip install -e .
Confirm installation
--------------------
Expand All @@ -73,8 +74,8 @@ Proper installation can be confirmed by executing the following commands in a py
Rydiqule
================
Rydiqule Version: 1.0.0
Installation Path: C:\Users\naqsL\Miniconda3\envs\rydiqule\lib\site-packages\rydiqule
Rydiqule Version: 1.1.0
Installation Path: ~\Miniconda3\envs\rydiqule\lib\site-packages\rydiqule
Dependencies
================
Expand All @@ -84,7 +85,7 @@ Proper installation can be confirmed by executing the following commands in a py
Matplotlib Version: 3.7.1
ARC Version: 3.3.0
Python Version: 3.9.16
Python Install Path: C:\Users\naqsL\Miniconda3\envs\rydiqule
Python Install Path: ~\Miniconda3\envs\rydiqule
Platform Info: Windows (AMD64)
CPU Count: 12
Total System Memory: 128 GB
Expand All @@ -93,7 +94,8 @@ Updating an existing installation
---------------------------------

Upgrading an existing installation is simple.
Simply run the pip installation commands described above with the update flag.
Simply run the pip installation commands described above.
Optionally, include the update flag to greedily update dependencies as well.

.. code-block:: shell
Expand All @@ -102,11 +104,11 @@ Simply run the pip installation commands described above with the update flag.
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.
Though it is recommended to also run the appropriate pip update command as well to capture updated depedencies.

.. code-block:: shell
pip install -U -e rydiqule
pip install -U -e .
Dependencies
Expand Down
13 changes: 10 additions & 3 deletions mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ warn_redundant_casts = True
warn_unused_ignores = True
warn_unreachable = True
show_error_codes = True
allow_redefinition = True
files = src/**/*.py
plugins = numpy.typing.mypy_plugin

Expand All @@ -32,7 +33,13 @@ ignore_missing_imports = True
[mypy-psutil.*]
ignore_missing_imports = True

# Module options
[mypy-CyRK.*]
ignore_missing_imports = True

[mypy-networkx.*]
ignore_missing_imports = True

[mypy-rydiqule.energy_diagram]
ignore_errors = False
[mypy-leveldiagram.*]
ignore_missing_imports = True

# Module options
2 changes: 1 addition & 1 deletion readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.8"
python: "3.11"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
2 changes: 1 addition & 1 deletion src/rydiqule/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@

from .slicing.slicing import compute_grid, matrix_slice, memory_size, get_slice_num, get_slice_num_t

__version__ = '1.1.0'
__version__ = '1.2.0'
Loading

0 comments on commit 7c1362b

Please sign in to comment.