00: QuTiP and Open Quantum Systems
Contents
%matplotlib inline
from matplotlib import pyplot as plt
from IPython.display import YouTubeVideo
import qutip
import numpy as np
import naq
00: QuTiP and Open Quantum Systems#
Tutorial overview#
We’re going to detour into some real physics shortly, but I’d like to set the stage for the tutorial as a whole by talking about what open quantum systems are, what QuTiP is, and what we hope to achieve during the tutorial.
Quantum systems#
Quantum mechanics began as the study of the structure of atoms. The components they’re made of – protons, neutrons, electrons, photons, the electric field – how they interact, and how these things determine the properties of atoms.
It’s initial successes were in describing the outer structure – the electrons and photons, the atomic spectra (i.e. the frequencies of light were omitted or absorbed by atoms), the chemical interactions. Following these successes the theory was expanded to include the structure of the nucleus, the quarks and gluons that make up the protons and neutrons – i.e. nuclear physics.
The atom is very small – only 0.1 nm
– and the nucleus is much smaller
still – 1 fm
(10^-15 m
). The models that successfully describe this
microscopic world are different to the classical mechanics of our
daily lives. But not as different as you might have been lead to
believe. At least not to a physicist of the late nineteenth century.
The classical theories of Lagrangian and Hamiltonian Mechanics, waves and fields, required surprisingly small modifications for use in quantum mechanics. The ramifications of these extensions turned out to be profound, but the presence of these classical theories is still clearly visible within quantum mechanics today.
Indeed, many of the behaviours we consider quantum such as the uncertainty principle, wave-particle duality, and observables as operators, have their analogues in classical field theory.
Open quantum systems#
Initially quantum systems were primarily modelled as isolated systems. That is, as a group of atomic particles in the lab evolving separately from their surroundings.
As theoretical and experimental advances were made, the complexity and physical size of the systems being modelled grew. Small molecules and then larger molecules. Light trapped within reflective cavities. High energy physics with many particles interacting at once.
Eventually the concept of interacting quantum systems emerged, or what we now call open quantum systems.
Most commonly an open quantum system consists of a small quantum system whose behaviour we are primarily interested in, and a surrounding environment that it interacts with.
The interaction and the environment are modelled semi-quantum mechanically. That is, they are modelled quantum mechanically, but there is some approximation involved in the interaction or the model of the environment. For example the interaction might be purely a loss of information from the system to the bath (dissipative), or the bath might retain no history of its interactions (Markovian).
There is now quite a large zoo of different kinds of approximations.
These theoretical and experimental advances have opened the door to the building of a large class of new “synthetic” quantum devices and materials, with properties and features that can be engineered to suit our needs.
An extremely incomplete list: high-temperature superconductors, quantum dots, gravitational sensors, accelerometers, SQUIDs (ludicrously sensitive measurements of magnetic flux), quantum dots, spin qubits, superconducting qubits, Josephson junctions, ion-traps, photonic devices, neutral atoms, RSFQ (classical computing with superconductors).
QuTiP#
QuTiP is a Python library for simulating open quantum systems.
It’s somewhat unique in that it provides quite a broad toolkit for the investigation of open quantum systems using different techniques, and aims to support a very broad set of users from those new to quantum mechanics, all the way to active researchers in the field.
We get both novices and researchers reporting bugs and asking questions on the mailing list, and its regularly used in both student projects and papers, so we appear to be succeeding fairly well in serving our broad audience.
There are a growing number of more specialist libraries that depend on QuTiP.
To support open quantum systems, QuTiP needs solid support for isolated quantum systems, and indeed that support forms part of the basis of QuTiP.
Another unique feature of QuTiP is that it provides quite broad support for time-dependent quantum systems.
The functionality of QuTiP can be divided into the following categories:
describing quantum states and operators
manipulating the states and operators
a selection of solvers for simulating the evolution of open quantum systems
tools for quantum information processing, including describing circuits and simulating running circuits on open quantum devices
a small toolkit for optimizing the control of quantum devices
We’ll only be looking at the first three in this tutorial.
Goals#
Introduction (this bit!)
Understand the machinery that makes up a neutral atom device
Understand the relevant atomic physics
Build up a quantum description of the atomic physics in QuTiP
Examine the dynamics of the neutral atoms as closed quantum systems
Build a complete set of single qubit gates for our atoms
Examine the dynamics of two interacting neutral atoms
Build a two qubit gate
Declare victory
Let our system interact with the surrounding environment