{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# QuTiP example: Physical implementation of Cavity-Qubit model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Author: Anubhav Vardhan (anubhavvardhan@gmail.com)\n", "\n", "\n", "For more information about QuTiP see [http://qutip.org](http://qutip.org)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from qutip import *" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from qutip.qip.models.circuitprocessor import *" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from qutip.qip.models.cqed import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hamoltonian:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "hamiltonian" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cavity-qubit model using a resonator as a bus can be implemented using the DispersivecQED class." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Circuit Setup" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIoAAABoCAQAAACEAqBmAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACXBIWXMAAABkAAAAZAAPlsXdAAADGklEQVR42u2bwW3jRhSGvxf4HswpxwWYAnJg\n7rmwBaYEtUCVICMVWA0EMEtYlmCVYAEuIMsS3h5ISdbuv4GBpSQb+D9CwIBDDjkfZx5HHDLY8D74\nxMutT2FmH3nrU3iH/HLrE3iPWIrAUgSWIrAUgaUILEVgKQJLEViKwFIEliKwFIGlCCxFYCkCSxFY\nisBSBJYisBSBpQgsRWApAksRWIrAUgSWIrAUgaUILEVgKQJLEViKwFIEliKwFMHdssXFvzd58fO/\n/GfJ4haWwkuuryhjJhZ+F9jdR2ApAksRWIrgLppFy/vt+lWIwqdFazG6pQjucliyuIXb3ZvIMV6W\nrYVbisBSBJYisBSBpQgsRWApAksRWIrAUgSWIrAUgaUILEVgKQJLEViKwFIEliJYetr0h0ShpWJk\nS5N9rKgAcn1KHaY/cw1R0+T9cd+G07PfYdnnsZJcdGHz3ZqapyThgTJtMW3DZlqf0PFlThUej1s9\nn5VSyDmn4/OU+r+j/txy8e6Tu/wToqbKEYDD9e+po0zXnhI1QI7081ZQTevmUsbpB3lPYXXZc75e\nTJkV5MgwyWJPO+UwTKlop7yo6enn3O8ZKR9YSpTo4iFqyB0Dz/EYXVTHmNDPkaIwHGLG3E6a3DHo\n9hA1NdsPLIU27ynTdc2/uQc6no7doqeNEoU9PXVUr/YrkFuIs7YSm9hER8Pvub+slIsGWgrlPGAm\nPPB4TD+zok0Snuho51DasqKh4TMPr/ZLmreH93ccaHOkpQeI5jihuuYUQPvjrbanpcydp85tDjmw\n/WFUuTCXDrQt27kTnEYau1dS2mPqpGq+/2T/bQe6FpcfvB0qW6JjB7THmzK5i132ALmPHQNEw4oq\ndjlAbBjpos71PHhrgysM3OAKg7fqEF0Smm/jwpR7nlriqD+3XLylTHeKeeA16Nzz1O3xH0KBpQgs\nRWApAksRWIrAUgSWIrAUgaUILEVgKQJLEViKwFIEliKwFIGlCO4W/tD5j+tXISr+WrQW+4s/uL7G\n8qEmwz4qliKwFIGlCJaeDFv2W/K38uuyxX0Fit6aHqT5prEAAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTUtMDEtMTNUMTM6MzY6NTYrMDk6MDCqfbjMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTAxLTEz\nVDEzOjM2OjU2KzA5OjAw2yAAcAAAABR0RVh0cGRmOlZlcnNpb24AUERGLTEuNSAFXAs5AAAAAElF\nTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = 3\n", "qc = QubitCircuit(N)\n", "\n", "qc.add_gate(\"ISWAP\", targets=[0,1])\n", "\n", "qc.png" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = [8, 8], type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0j & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0j & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0j & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0j & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = [8, 8], type = oper, isherm = False\n", "Qobj data =\n", "[[ 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+1.j 0.+0.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+1.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+1.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+0.j 0.+1.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U_ideal = gate_sequence_product(qc.propagators())\n", "\n", "U_ideal" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dispersive cQED Model Implementation:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = [8, 8], type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.000 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.000 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.000j & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.000j & 0.0 & 0.0\\\\0.0 & 0.0 & 1.000j & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.000j & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.000 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.000\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = [8, 8], type = oper, isherm = False\n", "Qobj data =\n", "[[ 1.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 1.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.9999999j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.9999999j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.9999999j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.9999999j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.99999996+0.j 0.00000000+0.j ]\n", " [ 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.00000000+0.j 0.00000000+0.j\n", " 0.00000000+0.j 0.99999996+0.j ]]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1 = DispersivecQED(N, correct_global_phase=True)\n", "\n", "U_list = p1.run(qc)\n", "\n", "U_physical = gate_sequence_product(U_list)\n", "\n", "U_physical.tidyup(atol=1e-3)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.7506632105953628e-07" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(U_ideal - U_physical).norm()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results obtained from the physical implementation agree with the ideal result." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Gate(ISWAP, targets=[0, 1], controls=None)]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1.qc0.gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The gates are first transformed into the ISWAP basis, which is redundant in this example." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Gate(ISWAP, targets=[0, 1], controls=None)]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1.qc1.gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An RZ gate, followed by a Globalphase, is applied to all ISWAP and SQRTISWAP gates to normalize the propagator matrix.\n", "Arg_value for the ISWAP case is pi/2, while for the SQRTISWAP case, it is pi/4." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Gate(ISWAP, targets=[0, 1], controls=None),\n", " Gate(RZ, targets=[0], controls=None),\n", " Gate(RZ, targets=[1], controls=None),\n", " Gate(GLOBALPHASE, targets=None, controls=None)]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1.qc2.gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The time for each applied gate:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2500.0000000000027, 0.013157894736842106, 0.013157894736842106]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1.T_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pulse can be plotted as:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5QAAAGpCAYAAADyTXkSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHltJREFUeJzt3X+M1/dh3/HXOxzsgl0OZRuODZHqPzyTIyYJKGksd/JR\n1VUm6sFstCTTnErtLJOek835w53nk0sFrYmUWZtVVkVO7LHMaeTMsJGIpIntnVS16ghWVsKPCFKw\nViDGxNcmmMhHDO/9wcWlNufA+77fO+7u8ZCQj+/d9/N+8/VbX/P05/35fEutNQAAAHC53jbVEwAA\nAGB6EpQAAAA0EZQAAAA0EZQAAAA0EZQAAAA06en2AKUUt5EFAACueLXWMtVzmG66HpRJ4qNJuBJs\n2LAhGzZsmOppMMtZh1wprEWuFNYiV4pStGQLW14BAABoIigBAABoIiiZNQYGBqZ6CmAdcsWwFrlS\nWIswvZVuX99YSqmuoQQAAK5kpRQ35WngDCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUA\nAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABN\nBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUA\nAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABN\nBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUA\nAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABN\nBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUA\nAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABNBCUAAABN\nBCUAAABNBCUAAABNBCUAAABNBCUAAABNeqZ6AgAAAFeqUkqd6jlcKWqt5Y2PCUoAAIC3UKumLOVN\nLZnEllcAAAAaCUoAAACaCEoAAACaCEoAAACaCEoAAIAZ6M/+7M+ybdu2ro5RJnrHolLKC0l+nORs\nkp/WWj/4hu9Xd0UCAACuZKWUi34sxnTtmaeffjpvf/vb85Of/CQ//vGP85u/+ZsTOt64r08HgvJI\nkpW11pFxvj8t/wUAAACzx0wLyiR5+eWXc+zYsSxfvnzCxxrv9enUlteLfygJAAAAU2LXrl359re/\n3dUxejpwjJrkmVLK2SSfq7U+1oFjAgAAMAE33HBD+vr6ujpGJ4LyllrrD0op/zjJt0op36u1/mkH\njgsAAECjd77znen2dt0JB2Wt9Qdj/zxZStme5INJ/l5Qbtiw4fWvBwYGMjAwMNFhAQAAmg0PD2d4\neHiqpzFhBw8ezBe/+MXcfPPN+dKXvpSPfvSj+fVf//Ukydvf/vbMmzfvsp93OSZ0U55Syvwkc2qt\np0opVyX5ZpLfq7V+84KfmbYXsQIAALND6015SofuJtOSTKdPn84tt9yS4eHhLFy4ML/yK7+SL3/5\ny1m0aNHrP/Paa6+lp6fnsp/3RuO9PhM9Q3lNku3l/KvYk+TJC2MSAABgJpvKc2fbtm3LTTfdlIUL\nF+bVV1/NK6+88qYofGNMXurzLtWE7vJaaz1Sa33f2K/31FofnsjxAAAAuDQ//OEP8973vjdJ8swz\nz+RDH/pQvvGNb3TteRfTqY8NAQAAYBJ97GMfy9GjR/P1r389J0+ezNve9rb87d/+bdeedzETuoby\nkgZwDSUAAHCFa72GcrYY7/VxhhIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIA\nAIAmghIAAIAmghIAAIAmghIAAIAmPVM9AQAAADpvZGQkjz32WBYtWpTly5dn5cqVHR/DGUoAAIAZ\naOvWrVm1alXuuuuuPPLII10ZQ1ACAADMQIcPH861116bnp6ejIyMdGUMQQkAADADnTt3LnPmzEmS\nlFK6MoagBAAAmIFuvPHGnDhxIq+++moWLFjQlTFKrbUrB359gFJqt8cAAACYiFJKaq1vOo03nXvm\n5ZdfzuOPP56+vr7cdNNNufnmm5uPNe7rIygBAIDZbroG5cGDBzM0NJSTJ09m9+7dGRgYyOrVq7N+\n/fqOjiMoAQAAxtEalOX3OnNtYv3dy2+mkZGRrFu3Ljt37kxvb2/Wrl2brVu3pq+vryNzutB4r4/P\noQQAAGjUEoKdsmXLlgwODqa3tzdJMjo6mvnz50/qHNyUBwAAYBo6depU+vv7kyT79u3LsmXLMnfu\n3Emdgy2vAADArDcdr6E8cuRIduzYkSVLluTo0aMZHBxMT09Pjh8/ngMHDuTZZ5/NNddck/7+/tx2\n220TGss1lAAAAOOYjkE5nuPHj+e6667LPffck0cffTQ9PT2vfx5lq/FeH1teAQAAZpCrr746J06c\nyKJFizI6OprTp093bSxBCQAAMINs2rQpw8PDueqqq/Lcc89lwYIFXRvLllcAAGDWm0lbXrvBllcA\nAAA6SlACAADQRFACAADQRFACAADQRFACAADQRFACAADQRFACAADQRFACAADQRFACAADQRFACAADQ\nRFACAADMQD/60Y+ybdu2PPzww10bQ1ACAADMQH19fVm5cmXOnDnTtTEEJQAAAE0EJQAAAE0EJQAA\nwAxVa+3q8QUlAADADPTKK6/k6aefzvPPP5+9e/d2ZYzS7WItpdRujwEAADARpZTUWstFHn/rnilv\nekqbxmY6ePBghoaGcvLkyezevTsDAwNZvXp11q9f35l5jRn39RGUAADAbNcclFNoZGQk69aty86d\nO9Pb25u1a9dm69at6evr6/hY470+trwCAABMQ1u2bMng4GB6e3uTJKOjo5k/f/6kzkFQAgAATEOn\nTp1Kf39/kmTfvn1ZtmxZ5s6dO6lzsOUVAACY9abjltcjR45kx44dWbJkSY4ePZrBwcH09PTk+PHj\nOXDgQJ599tlcc8016e/vz2233TahsVxDCQAAMI7pGJTjOX78eK677rrcc889efTRR9PT05M5c+ZM\n6JiuoQQAAJgFrr766pw4cSKLFi3K6OhoTp8+3bWxBCUAAMAMsmnTpgwPD+eqq67Kc889lwULFnRt\nLFteAQCAWW8mbXntBlteAQAA6ChBCQAAQBNBCQAAQBNBCQAAQBNBCQAAQBNBCQAAQBNBCQAAQBNB\nCQAAQBNBCQAAQJOeqZ4AAAAAnXfo0KHs3bs3e/bsye23354VK1Z0fAxnKAEAAGagr33ta1m8eHE+\n/elP57Of/WxXxnCGEgAAYAa67777kiT79+/P9ddf35UxnKEEAACYwbZv354HH3ywK8cutdauHPj1\nAUqp3R4DAABgIkopqbWWizw+rXtmx44dWbVqVV588cXccMMNzccZ7/VxhhIAAGAG2r59ezZu3Jg7\n7rgjTz31VFfGcIYSAACY9abrGcqDBw9maGgoJ0+ezO7duzMwMJDVq1dn/fr1HR1n3NdHUAIAALNd\n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\nU6fS39+fJNm3b1+WLVuWuXPnTuocnKEEAACYhj7xiU9kx44d2b9/f44ePZrNmze//r2NGzfm3Llz\nmTdvXh544IGuzcFNeQAAgFltOt+UZzxnz57NQw89lPvvv78j11SOd1MeW14BAABmkFprNm3alHvv\nvTejo6NdHUtQAgAAzCDPPPNMbr311mzYsCGHDh3q6li2vAIAALPaTNzy2mm2vAIAANBRghIAAIAm\nghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIAAIAmghIA\nAIAmPVM9AQAAANqcPXs2mzdvztKlS/PSSy9l165deeKJJyZtfGcoAQAAGpXSmV+thoaGsmTJktx5\n551ZsGBBli9f3rk/3CUotdbuDlBK7fYYAAAArYaHS1atSmqtb0q7K7lnXnvttSxatCjHjx9Pb29v\n7r777nz84x/Pn//5n2fRokVZvnx5Vq5c2ZGxSikXfX2coQQAAJiGTp8+ncWLF6e3tzdnzpzJnj17\nsnv37qxatSp33XVXHnnkka7PwTWUAAAA01BfX1/WrFmTr3zlK9m/f39uvPHGHD58OOvWrUtPT09G\nRka6PodJCcof/uW3J2MYAACAWePFF1/M0NBQent785nPfCZr1qzJc889lzlz5iQ5v0212yYlKPft\n/8hkDAMAAHD5rp3qCbQZGhrKihUrsnDhwsyZMyd33nlnjh07lhMnTuQd73hHFixY0PU5uCkPAAAw\nq03Xm/JczMsvv5zHH388fX19uemmm3LzzTd35Ljj3ZRHUAIAALPaTArKbnGXVwAAADpKUAIAANBE\nUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIAANBEUAIA\nANBEUAIAANCkZ6onAAAAMF2V3ysdOU793dr0vLNnz2bz5s1ZunRpXnrppezatStPPPFER+Z0KQQl\nAABAo9YQ7JShoaEsXbo0d955Z5588sksX758Use35RUAAGAaeu211/K5z30uH/nIR5Ikw8PD+cAH\nPpBt27bl4YcfnpQ5CEoAAIBp6PTp01m8eHF6e3tz5syZ7NmzJ7/8y7+clStX5syZM5MyB1teAQAA\npqG+vr6sWbMmX/nKV7Jv374sXbo0SVLr5G3DFZQAAADT0IsvvpihoaH09vbm8OHDWbNmTZKklM7c\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p1.plot_pulses();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Software versions:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
SoftwareVersion
Numpy1.9.1
matplotlib1.4.2
Cython0.21.2
SciPy0.14.1
IPython2.3.1
QuTiP3.1.0
OSposix [linux]
Python3.4.0 (default, Apr 11 2014, 13:05:11) \n", "[GCC 4.8.2]
Tue Jan 13 13:36:58 2015 JST
" ], "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qutip.ipynbtools import version_table\n", "version_table()" ] } ], "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 }