{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# QuTiP Example: The Transfer Tensor Method for Non-Markovian Open Quantum Systems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Arne L. Grimsmo](http://arnegrimsmo.weebly.com/)
\n", "Université de Sherbrooke
\n", "[arne.grimsmo@gmail.com](email:arne.grimsmo@gmail.com)\n", "$\\newcommand{\\ket}[1]{\\left|#1\\right\\rangle}$\n", "$\\newcommand{\\bra}[1]{\\left\\langle#1\\right|}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The \"Transfer Tensor Method\" was introduced by Cerrillo and Cao in [Phys. Rev. Lett 112, 110401 (2014)](http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.112.110401) ([arXiv link](http://arxiv.org/abs/1307.7743)), as a general method for evolving non-Markovian open quantum systems.\n", "\n", "The method takes as input a set of dynamical maps $\\mathcal{E}_k$, such that\n", "\n", "$$\n", "\\rho(t_k) = \\mathcal{E}_k \\rho(0)\n", "$$\n", "\n", "for an intial set of times $t_k$. This set of dynamical maps could be the result of experimental process tomography of they could be precomputed through some other (typically costly) method. The idea is that based on knowledge of these maps, one can try to exptrapolate the, in general non-Markovian, time-evolution to larger times, $t_n > t_k$. The method assumes that there is no explicit time-dependence in the total system-bath Hamiltonian." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preamble" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "import qutip as qt\n", "from qutip.ipynbtools import version_table\n", "\n", "import qutip.nonmarkov.transfertensor as ttm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Support" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jaynes-Cummings model, with the cavity as a non-Markovian bath" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a simple example, we consider the Jaynes-Cummings mode, and the non-Markovian dynamics of the qubit when the cavity is traced out. In this example, the dynamical maps $\\mathcal{E}_k$ are the reduced time-propagators for the qubit, after evolving and tracing out the cavity, i.e.\n", "\n", "$$\n", "\\mathcal{E}_k \\rho = {\\rm tr}_{\\rm cav} \\left[ {\\rm e}^{\\mathcal{L} t_k} \\rho \\otimes \\rho_{0,{\\rm cav}} \\right],\n", "$$\n", "\n", "where $\\mathcal{L}$ is the Lindbladian for the dissipative JC model (defined below) and $\\rho_{0,{\\rm cav}}$ is the initial state of the cavity." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem setup" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "kappa = 1.0 # cavity decay rate\n", "wc = 0.0*kappa # cavity frequency\n", "wa = 0.0*kappa # qubit frequency\n", "g = 10.0*kappa # coupling strength\n", "N = 3 # size of cavity basis\n", "\n", "# intial state\n", "psi0c = qt.basis(N,0)\n", "rho0c = qt.ket2dm(psi0c)\n", "rho0a = qt.ket2dm(qt.basis(2,0))\n", "rho0 = qt.tensor(rho0a,rho0c)\n", "rho0avec = qt.operator_to_vector(rho0a)\n", "\n", "# identity superoperator\n", "Id = qt.tensor(qt.qeye(2),qt.qeye(N))\n", "E0 = qt.sprepost(Id,Id)\n", "\n", "# partial trace over the cavity, reprsented as a superoperator\n", "ptracesuper = qt.tensor_contract(E0,(1,3))\n", "\n", "# intial state of the cavity, represented as a superoperator\n", "superrho0cav = qt.sprepost(qt.tensor(qt.qeye(2),psi0c),\n", " qt.tensor(qt.qeye(2),psi0c.dag()))\n", "\n", "# operators\n", "a = qt.tensor(qt.qeye(2), qt.destroy(N))\n", "sm = qt.tensor(qt.sigmam(), qt.qeye(N))\n", "sz = qt.tensor(qt.sigmaz(), qt.qeye(N))\n", "\n", "# Hamiltonian\n", "H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() * sm + a * sm.dag())\n", "c_ops = [np.sqrt(kappa)*a]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exact timepropagators to learn from" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `dynmap` generates an exact timepropagator for the qubit $\\mathcal{E}_{k}$ for a time $t_k$.
" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def dynmap(t):\n", " # reduced dynamical map for the qubit at time t\n", " Et = qt.mesolve(H, E0, [0.,t], c_ops, []).states[-1]\n", " return ptracesuper*(Et*superrho0cav)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exact time evolution using standard mesolve method" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "exacttimes = np.arange(0,5,0.01)\n", "exactsol = qt.mesolve(H, rho0, exacttimes, c_ops, [])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Approximate solution using the Transfer Tensor Method for different learning times" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "times = np.arange(0,5,0.1) # total extrapolation time\n", "ttmsols = []\n", "maxlearningtimes = [0.5, 2.0] # maximal learning times\n", "for T in maxlearningtimes:\n", " learningtimes = np.arange(0,T,0.1)\n", " learningmaps = [dynmap(t) for t in learningtimes] # generate exact dynamical maps to learn from\n", " ttmsols.append(ttm.ttmsolve(learningmaps, rho0a, times)) # extrapolate using TTM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualize results" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(10,7))\n", "ax.plot(exactsol.times, qt.expect(sz, exactsol.states),'-b',linewidth=3.0)\n", "style = ['og','or']\n", "for i,ttmsol in enumerate(ttmsols):\n", " ax.plot(ttmsol.times, qt.expect(qt.sigmaz(), ttmsol.states),style[i],linewidth=1.5,)\n", "ax.legend(['exact',str(maxlearningtimes[0]),str(maxlearningtimes[1])])\n", "ax.set_xlabel(r'$\\kappa t$', fontsize=20)\n", "ax.set_ylabel(r'$\\sigma_z$', fontsize=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Discussion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The figure above illustrates how the transfer tensor method needs a sufficiently long set of learning times to get good results. The green dots show results for learning times $t_k=0,0.1,\\dots,0.5$, which is clearly not sufficient. The red dots show results for $t_k=0,0.1,\\dots,2.0$, which gives results that are in very good agreement with the exact solution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Epilouge" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
SoftwareVersion
QuTiP4.2.0
Numpy1.13.1
SciPy0.19.1
matplotlib2.0.2
Cython0.25.2
Number of CPUs2
BLAS InfoINTEL MKL
IPython6.1.0
Python3.6.1 |Anaconda custom (x86_64)| (default, May 11 2017, 13:04:09) \n", "[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
OSposix [darwin]
Wed Jul 19 22:26:46 2017 MDT
" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version_table()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 1 }