Welcome to the qom-v1.0.2 Documentation!

The Quantum Optomechanics Toolbox (packaged as qom) is a wrapper-styled, scalable toolbox featuring multiple modules for the calculation of stationary as well as dynamical properties of linearized quantum optomechanical systems. Backed by numerical libraries like NumPy and SciPy, and featuring the highly customizable visualizations offered by Matplotlib and Seaborn APIs, the toolbox aims to serve as an easy-to-use alternative to writing code explicitly and avoiding repetitive exercises for presentable visuals.

Note

The toolbox is not under active maintenance since 2023 and addition of newer features are not planned for the near future. However, the current CPU-based modules fully support the simulation of linearized quantum optomechanical systems and their related analysis. For the simulation of more general systems, QuTiP (> v5.0) provides a much faster interface.

Key Features

  • Run automatically-managed loops in parallel and pool results.

  • Solve for stability and classical/quantum signatures seamlessly.

  • Configure plots across plotting libraries with a common syntax.

What’s New in v1.0!

  • Non-linear Schrodinger equation solver with integration support.

  • Attractor detection and bifurcation for non-linear dynamical systems.

  • Huge performance boost with NumPy-based vectorization.

  • Faster Monte-Carlo quantum trajectories solver for low-dimensional Hilbert spaces (deprecated since qom-v1.0.2).

Dynamical Stability

Quantum Correlations

_images/00_00_sz.png _images/00_01_en.png

Runtimes for the calculation of dynamical stability of the steady state using the Routh-Hurwitz criteria.

Runtimes for the calculation of average entanglement from the dynamical values of modes and correlations.

Examples

Classical Amplitudes

Quantum Fluctuations

_images/01_00_classical.gif _images/01_01_quantum.gif

The classical mean values of the optical and mechanical modes are obtained using the rate equations of the modes.

The variances of the quantum fluctuation quadratures are obtained using the rate equation for the correlation matrix.

Fixed Point

Limit Cycle

_images/02_00_fixed_point.gif _images/02_01_limit_cycle.gif

An optomechanical system settling to a steady state.

Self-sustained oscillations in an optomechanical system.

Dynamical Stability

Optical Bistability

_images/03_00_sz.gif _images/03_01_ob.gif

Dynamical stability obtained from the steady state drift matrix.

Bistability obtained from the steady state optical occupancies.

Optomechanical Entanglement

Mechanical Synchronization

_images/04_00_en.png _images/04_01_sp.png

Quantum entanglement between the optical and mechanical modes of an optomechanical system.

Quantum phase synchronization between the mechanical modes of two coupled identical systems.

Wigner Distributions

Optomechanical Solitons

_images/05_00_wigner.gif _images/05_01_soliton.gif

Wigner distribution depicting the evolution of mechanical squeezing in a modulated optomechanical system.

Soliton propagation in an array of optomechanical systems at different phase lags between the input solitons.

A set of notebooks and scripts to demonstrate the usage of the toolbox can be found in the examples repository.

Installation

Dependencies

The Quantum Optomechanics Toolbox requires Python 3.8+, preferably installed via the Anaconda distribution. Once Anaconda is set up, create and activate a new conda environment using:

conda create -n qom python
conda activate qom

The toolbox primarily relies on numpy (for fast numerical algebra), scipy (for numerical methods), sympy (for symbolic algebra), seaborn (for color palettes) and matplotlib (for plotting results). These libraries can be installed using:

conda install matplotlib numpy scipy sympy seaborn

Note

To run the GUI modules, pyqt should be installed separately.

Once the dependencies are installed, the toolbox can be installed via PyPI or locally.

The documentation of the latest release is available here.

Installing via PyPI

To install the packages via the Python Package Index (PyPI), execute:

pip install git+https://github.com/sampreet/qom.git

Installing Locally

To install the package locally, download the repository as .zip and extract the contents. Now, execute the following from outside the top-level directory, ROOT_DIR, inside which setup.py is located (refer to the file structure):

pip install -e ROOT_DIR

Citing

Please cite S. Kalita and A. K. Sarma, *The QOM Toolbox: An object-oriented Python framework for cavity optomechanical systems*, Proceedings of Eighth International Congress on Information and Communication Technology **3**, Springer Singapore (2023) if you use our work in your research.

Available Modules

Indices and tables