Skip to content

Commit

Permalink
Fix documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
gefux committed Jun 22, 2024
1 parent 3049416 commit a719eaf
Show file tree
Hide file tree
Showing 17 changed files with 2,275 additions and 133 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@

# OQuPy: Open Quantum Systems in Python

**A Python 3 package to efficiently compute non-Markovian open quantum systems.**
**A Python package to efficiently simulate non-Markovian open quantum systems
with process tensors.**

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/tempoCollaboration/OQuPy/main?filepath=tutorials%2Fquickstart.ipynb)
[![Tests status](https://github.com/tempoCollaboration/OQuPy/actions/workflows/python-package-tests.yml/badge.svg)](https://github.com/tempoCollaboration/OQuPy/actions/workflows/python-package-tests.yml)
Expand All @@ -18,12 +19,12 @@ OQuPy includes numerically exact methods (i.e. employing only numerically well c
- quantum systems coupled to a single environment [2-4],
- quantum systems coupled to multiple environments [5],
- interacting chains of non-Markovian open quantum systems [6], and
- ensembles of open many-body systems with many-to-one coupling to some common central system [7].
- ensembles of open many-body systems with many-to-one coupling [7].

Furthermore, OQuPy implements methods to ...
- optimize control protocols for non-Markovian open quantum systems [8,9],
- compute the dynamics of an non-Markovian environment [10], and
- obtain the thermal state of a quantum system strongly coupled to a structured environment [11].
- obtain the thermal state of a strongly couled quantum system [11].

![OQuPy - overview](docs/graphics/overview.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# -- Project information -----------------------------------------------------

project = 'OQuPy'
copyright = '2022, TEMPO Collaboration'
copyright = '2024, TEMPO Collaboration'
author = 'TEMPO Collaboration'

# The full version, including alpha/beta/rc tags
Expand Down
107 changes: 54 additions & 53 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,62 +1,62 @@
OQuPy - Open Quantum Systems in Python
======================================

**A Python 3 package to efficiently compute non-Markovian open quantum
systems.**
**A Python package to efficiently simulate non-Markovian open quantum systems
with process tensors.**

.. image:: https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge
:target: http://unitary.fund


This open source project aims to facilitate versatile numerical tools to
efficiently compute the dynamics of quantum systems that are possibly strongly
coupled to structured environments. It allows to conveniently apply several
numerical methods related to the time evolving matrix product operator
(TEMPO) [1-2] and the process tensor (PT) approach to open quantum
systems [3-5]. This includes methods to compute ...

- the dynamics of a quantum system strongly coupled to a bosonic environment [1-2].
- the process tensor of a quantum system strongly coupled to a bosonic environment [3-4].
- optimal control procedures for non-Markovian open quantum systems [5].
- the dynamics of a strongly coupled bosonic environment [6].
- the dynamics of a quantum system coupled to multiple non-Markovian environments [7].
- the dynamics of a chain of non-Markovian open quantum systems [8].
- the dynamics of an open many-body system with one-to-all light-matter
coupling [9].
- higher order multi-time correlations (e.g. for 2D electronic spectroscopy).

Up to versions 0.1.x this package was called *TimeEvolvingMPO*.

.. figure:: graphics/overview.png
:align: center
:alt: OQuPy - overview

- **[1]** Strathearn et al.,
`New J. Phys. 19(9), p.093009 <http://dx.doi.org/10.1088/1367-2630/aa8744>`_
(2017).
- **[2]** Strathearn et al.,
`Nat. Commun. 9, 3322 <https://doi.org/10.1038/s41467-018-05617-3>`_
(2018).
- **[3]** Pollock et al.,
`Phys. Rev. A 97, 012127 <http://dx.doi.org/10.1103/PhysRevA.97.012127>`_
(2018).
- **[4]** Jørgensen and Pollock,
`Phys. Rev. Lett. 123, 240602 <http://dx.doi.org/10.1103/PhysRevLett.123.240602>`_
(2019).
- **[5]** Fux et al.,
`Phys. Rev. Lett. 126, 200401 <https://link.aps.org/doi/10.1103/PhysRevLett.126.200401>`_
(2021).
- **[6]** Gribben et al.,
`arXiv:2106.04212 <http://arxiv.org/abs/2106.04212>`_
(2021).
- **[7]** Gribben et al.,
`PRX Quantum 3, 10321 <https://link.aps.org/doi/10.1103/PRXQuantum.3.010321>`_
(2022).
- **[8]** Fux et al.,
`arXiv:2201.05529 <http://arxiv.org/abs/2201.05529>`_ (2022).
- **[9]** Fowler-Wright at al.,
`Phys. Rev. Lett. 129, 173001 <https://doi.org/10.1103/PhysRevLett.129.173001>`_
(2022).
efficiently compute the dynamics of quantum systems that are possibly
strongly coupled to structured environments. It facilitates the
convenient application of several numerical methods that combine the
conceptional advantages of the process tensor framework [1], with the
numerical efficiency of tensor networks.

OQuPy includes numerically exact methods (i.e. employing only
numerically well controlled approximations) for the non-Markovian
dynamics and multi-time correlations of ...

- quantum systems coupled to a single environment [2-4],
- quantum systems coupled to multiple environments [5],
- interacting chains of non-Markovian open quantum systems [6], and
- ensembles of open many-body systems with many-to-one coupling [7].

Furthermore, OQuPy implements methods to ...

- optimize control protocols for non-Markovian open quantum systems [8,9],
- compute the dynamics of an non-Markovian environment [10], and
- obtain the thermal state of a strongly couled quantum system [11].

.. figure:: ./graphics/overview.png
:alt: OQuPy - overview

- **[1]** Pollock et al., `Phys. Rev. A 97,
012127 <https://doi.org/10.1103/PhysRevA.97.012127>`__ (2018).
- **[2]** Strathearn et al., `New J. Phys. 19(9),
p.093009 <https://doi.org/10.1088/1367-2630/aa8744>`__ (2017).
- **[3]** Strathearn et al., `Nat. Commun. 9,
3322 <https://doi.org/10.1038/s41467-018-05617-3>`__ (2018).
- **[4]** Jørgensen and Pollock, `Phys. Rev. Lett. 123,
240602 <https://doi.org/10.1103/PhysRevLett.123.240602>`__ (2019).
- **[5]** Gribben et al., `PRX Quantum 3,
10321 <https://doi.org/10.1103/PRXQuantum.3.010321>`__ (2022).
- **[6]** Fux et al., `Phys. Rev. Research 5,
033078 <https://doi.org/10.1103/PhysRevResearch.5.033078%7D>`__
(2023).
- **[7]** Fowler-Wright et al., `Phys. Rev. Lett. 129,
173001 <https://doi.org/10.1103/PhysRevLett.129.173001>`__ (2022).
- **[8]** Fux et al., `Phys. Rev. Lett. 126,
200401 <https://doi.org/10.1103/PhysRevLett.126.200401>`__ (2021).
- **[9]** Butler et al., `Phys. Rev. Lett. 132,
060401 <https://doi.org/10.1103/PhysRevLett.132.060401%7D>`__ (2024).
- **[10]** Gribben et al., `Quantum, 6,
847 <https://doi.org/10.22331/q-2022-10-25-847>`__ (2022).
- **[11]** Chiu et al., `Phys. Rev. A 106,
012204 <https://doi.org/10.1103/PhysRevA.106.012204%7D>`__ (2022).


.. |binder-tutorial| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/tempoCollaboration/OQuPy/main?filepath=tutorials%2Fquickstart.ipynb
Expand Down Expand Up @@ -85,12 +85,13 @@ Up to versions 0.1.x this package was called *TimeEvolvingMPO*.

pages/tutorials/quickstart
pages/tutorials/pt_tempo
pages/tutorials/parameters
pages/tutorials/n_time_correlations
pages/tutorials/pt_gradient/pt_gradient
pages/tutorials/bath_dynamics
pages/tutorials/pt_tebd
pages/tutorials/mf_tempo
pages/tutorials/n_time_correlations
pages/tutorials/parameters


.. toctree::
:maxdepth: 1
:caption: API Reference
Expand Down
26 changes: 13 additions & 13 deletions docs/pages/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class :class:`oqupy.system.TimeDependentSystemWithField`
Markovian decay) that depends on both time and the expectation value of
a field (a complex scalar) to which the system couples.

class :class:`oqupy.system.ParametrizedSystem`
class :class:`oqupy.system.ParameterizedSystem`
Encodes a system Hamiltonian that depends on a set of parameters.

class :class:`oqupy.system.MeanFieldSystem`
Expand All @@ -62,21 +62,21 @@ class :class:`oqupy.control.ChainControl`
Environment
***********

class :class:`oqupy.correlations.BaseCorrelations`
class :class:`oqupy.bath_correlations.BaseCorrelations`
Abstract class representing the environments auto-correlations.

class :class:`oqupy.correlations.CustomCorrelations`
class :class:`oqupy.bath_correlations.CustomCorrelations`
Encode an explicitly given environment auto-correlation function.

class :class:`oqupy.correlations.CustomSD`
class :class:`oqupy.bath_correlations.CustomSD`
Encodes the auto-correlations for a given spectral density.

class :class:`oqupy.correlations.PowerLawSD`
class :class:`oqupy.bath_correlations.PowerLawSD`
Encodes the auto-correlations for a given spectral density of a power law
form.

class :class:`oqupy.bath.Bath`
Bundles a :class:`oqupy.correlations.BaseCorrelations` object
Bundles a :class:`oqupy.bath_correlations.BaseCorrelations` object
together with a coupling operator.


Expand Down Expand Up @@ -114,7 +114,7 @@ PT-TEMPO
********
(Process Tensor - Time Evolving Matrix Product Operator)

class :class:`oqupy.pt_tempo.PtTempo`function oqupy.gradient.state_gradient()
class :class:`oqupy.pt_tempo.PtTempo`
Class to facilitate a PT-TEMPO computation.

method :meth:`oqupy.pt_tempo.PtTempo.compute`
Expand All @@ -125,25 +125,25 @@ class :class:`oqupy.pt_tempo.PtTempo`function oqupy.gradient.state_gradient()
Process Tensor Applications
***************************

function :func:`oqupy.contractions.compute_dynamics`
function :func:`oqupy.system_dynamics.compute_dynamics`
Compute a :class:`oqupy.dynamics.Dynamics` object for given
:class:`oqupy.system.System` or
:class:`oqupy.system.TimeDependentSystem` and
:class:`oqupy.control.Control` and
:class:`oqupy.process_tensor.BaseProcessTensor` objects.

function :func:`oqupy.contractions.compute_dynamics_with_field`
function :func:`oqupy.system_dynamics.compute_dynamics_with_field`
Compute a :class:`oqupy.dynamics.MeanFieldDynamics` object for given
:class:`oqupy.system.MeanFieldSystem` and list of
:class:`oqupy.control.Control` objects and list of
:class:`oqupy.process_tensor.BaseProcessTensor` objects.
function :func:`oqupy.contractions.compute_correlations_nt`

function :func:`oqupy.system_dynamics.compute_correlations_nt`
Compute ordered multi-time correlations for given
:class:`oqupy.system.BaseSystem` and
:class:`oqupy.process_tensor.BaseProcessTensor` objects.

function :func:`oqupy.contractions.compute_correlations`
function :func:`oqupy.system_dynamics.compute_correlations`
Compute two time correlations for given
:class:`oqupy.system.BaseSystem` and
:class:`oqupy.process_tensor.BaseProcessTensor` objects.
Expand All @@ -161,7 +161,7 @@ class :class:`oqupy.bath_dynamics.TwoTimeBathCorrelations`

function :func:`oqupy.gradient.state_gradient`
Compute the dynamics and gradient with respect to some objective function for
a given :class:`oqupy.system.ParametrizedSystem`.
a given :class:`oqupy.system.ParameterizedSystem`.

PT-TEBD
*******
Expand Down
8 changes: 4 additions & 4 deletions docs/pages/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ Installation
How To Install
--------------

* Make sure you have `python3.6` or higher installed
* Make sure you have `python3.10` or higher installed

.. code-block:: none
$ python3 --version
Python 3.6.9
Python 3.10.14
* Make sure you have `pip3` version 20.0 or higher installed
* Make sure you have `pip3` version 23.0 or higher installed

.. code-block:: none
$ python3 -m pip --version
pip 20.0.2 from /home/gefux/.local/lib/python3.6/site-packages/pip (python 3.6)
pip 23.3.1 from /home/gefux/anaconda3/envs/oqupy-ci/lib/python3.10/site-packages/pip (python 3.10)
* Install OQuPy via pip
Expand Down
67 changes: 24 additions & 43 deletions docs/pages/modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ oqupy.base_api
:members:


oqupy.bath
----------
oqupy.bath_correlations
-----------------------

.. automodule:: oqupy.bath
.. automodule:: oqupy.bath_correlations
:show-inheritance:
:members:

Expand All @@ -25,10 +25,10 @@ oqupy.bath_dynamics
:members:


oqupy.contractions
------------------
oqupy.bath
----------

.. automodule:: oqupy.contractions
.. automodule:: oqupy.bath
:show-inheritance:
:members:

Expand All @@ -41,14 +41,6 @@ oqupy.control
:members:


oqupy.correlations
------------------

.. automodule:: oqupy.correlations
:show-inheritance:
:members:


oqupy.dynamics
--------------

Expand All @@ -57,18 +49,11 @@ oqupy.dynamics
:members:


oqupy.exceptions
----------------

.. automodule:: oqupy.exceptions
:show-inheritance:
:members:


oqupy.gradient
--------------

.. automodule:: oqupy.gradient
:show-inheritance:
:members:


Expand Down Expand Up @@ -98,42 +83,38 @@ oqupy.process_tensor
--------------------

.. automodule:: oqupy.process_tensor
:show-inheritance:
:members:

.. autoclass:: oqupy.process_tensor.BaseProcessTensor
:show-inheritance:
:members:

.. autoclass:: oqupy.process_tensor.FileProcessTensor
:show-inheritance:

.. autoclass:: oqupy.process_tensor.SimpleProcessTensor
:show-inheritance:

.. autoclass:: oqupy.process_tensor.TrivialProcessTensor
:show-inheritance:
oqupy.pt_tebd
-------------

.. autofunction:: oqupy.process_tensor.import_process_tensor
.. automodule:: oqupy.pt_tebd
:show-inheritance:
:members:


oqupy.pt_tebd
--------------------
oqupy.pt_tmpo
-------------

.. automodule:: oqupy.pt_tebd
.. automodule:: oqupy.pt_tempo
:show-inheritance:
:members:


oqupy.system
------------
oqupy.system_dynamics
---------------------

.. automodule:: oqupy.system
.. automodule:: oqupy.system_dynamics
:show-inheritance:
:members:


oqupy.pt_tempo
--------------
oqupy.system
------------

.. automodule:: oqupy.pt_tempo
.. automodule:: oqupy.system
:show-inheritance:
:members:

Expand Down
Loading

0 comments on commit a719eaf

Please sign in to comment.