{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Optimization of an X-Gate for a Transmon Qubit" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:44.153391Z", "start_time": "2020-03-21T21:17:42.571725Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:48.826237Z", "iopub.status.busy": "2021-01-13T19:17:48.820927Z", "iopub.status.idle": "2021-01-13T19:17:50.003454Z", "shell.execute_reply": "2021-01-13T19:17:50.003955Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.7.6\n", "IPython version : 7.19.0\n", "\n", "numpy : 1.17.2\n", "sys : 3.7.6 (default, Jan 6 2020, 00:53:52) \n", "[Clang 11.0.0 (clang-1100.0.33.16)]\n", "scipy : 1.3.1\n", "krotov : 1.2.1\n", "matplotlib: 3.3.3\n", "qutip : 4.5.0\n", "\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "%load_ext watermark\n", "import sys\n", "import os\n", "import qutip\n", "import numpy as np\n", "import scipy\n", "import matplotlib\n", "import matplotlib.pylab as plt\n", "import krotov\n", "from scipy.fftpack import fft\n", "from scipy.interpolate import interp1d\n", "%watermark -v --iversions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\newcommand{tr}[0]{\\operatorname{tr}}\n", "\\newcommand{diag}[0]{\\operatorname{diag}}\n", "\\newcommand{abs}[0]{\\operatorname{abs}}\n", "\\newcommand{pop}[0]{\\operatorname{pop}}\n", "\\newcommand{aux}[0]{\\text{aux}}\n", "\\newcommand{opt}[0]{\\text{opt}}\n", "\\newcommand{tgt}[0]{\\text{tgt}}\n", "\\newcommand{init}[0]{\\text{init}}\n", "\\newcommand{lab}[0]{\\text{lab}}\n", "\\newcommand{rwa}[0]{\\text{rwa}}\n", "\\newcommand{bra}[1]{\\langle#1\\vert}\n", "\\newcommand{ket}[1]{\\vert#1\\rangle}\n", "\\newcommand{Bra}[1]{\\left\\langle#1\\right\\vert}\n", "\\newcommand{Ket}[1]{\\left\\vert#1\\right\\rangle}\n", "\\newcommand{Braket}[2]{\\left\\langle #1\\vphantom{#2} \\mid #2\\vphantom{#1}\\right\\rangle}\n", "\\newcommand{op}[1]{\\hat{#1}}\n", "\\newcommand{Op}[1]{\\hat{#1}}\n", "\\newcommand{dd}[0]{\\,\\text{d}}\n", "\\newcommand{Liouville}[0]{\\mathcal{L}}\n", "\\newcommand{DynMap}[0]{\\mathcal{E}}\n", "\\newcommand{identity}[0]{\\mathbf{1}}\n", "\\newcommand{Norm}[1]{\\lVert#1\\rVert}\n", "\\newcommand{Abs}[1]{\\left\\vert#1\\right\\vert}\n", "\\newcommand{avg}[1]{\\langle#1\\rangle}\n", "\\newcommand{Avg}[1]{\\left\\langle#1\\right\\rangle}\n", "\\newcommand{AbsSq}[1]{\\left\\vert#1\\right\\vert^2}\n", "\\newcommand{Re}[0]{\\operatorname{Re}}\n", "\\newcommand{Im}[0]{\\operatorname{Im}}$\n", "\n", "In the previous examples, we have only optimized for state-to-state\n", "transitions, i.e., for a single objective. This example shows the optimization\n", "of a simple quantum gate, which requires multiple objectives to be fulfilled\n", "simultaneously (one for each state in the logical basis). We consider a\n", "superconducting \"transmon\" qubit and implement a single-qubit Pauli-X gate." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**: This notebook uses some parallelization features (`parallel_map`/`multiprocessing`). Unfortunately, on Windows (and macOS with Python >= 3.8), `multiprocessing` does not work correctly for functions defined in a Jupyter notebook (due to the [spawn method](https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods) being used on Windows, instead of Unix-`fork`, see also https://stackoverflow.com/questions/45719956). We can use the third-party [loky](https://loky.readthedocs.io/) library to fix this, but this significantly increases the overhead of multi-process parallelization. The use of parallelization here is for illustration only and makes no guarantee of actually improving the runtime of the optimization." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:44.267888Z", "start_time": "2020-03-21T21:17:44.262477Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.009418Z", "iopub.status.busy": "2021-01-13T19:17:50.008399Z", "iopub.status.idle": "2021-01-13T19:17:50.010854Z", "shell.execute_reply": "2021-01-13T19:17:50.011356Z" } }, "outputs": [], "source": [ "krotov.parallelization.set_parallelization(use_loky=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The transmon Hamiltonian" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The effective Hamiltonian of a single transmon depends on the capacitive energy\n", "$E_C=e^2/2C$ and the Josephson energy $E_J$, an energy due to the Josephson\n", "junction working as a nonlinear inductor periodic with the flux $\\Phi$. In the\n", "so-called transmon limit, the ratio between these two energies lies around\n", "$E_J / E_C \\approx 45$. The Hamiltonian for the transmon is\n", "\n", "$$\n", " \\op{H}_{0} = 4 E_C (\\hat{n}-n_g)^2 - E_J \\cos(\\hat{\\Phi})\n", "$$\n", "\n", "where $\\hat{n}$ is the number operator, which counts the relative number of Cooper pairs\n", "capacitively stored in the junction, and $n_g$ is the effective offset charge\n", "measured in Cooper pair charge units. The equation can be written in a truncated\n", "charge basis defined by the number operator $\\op{n} \\ket{n} = n \\ket{n}$ such\n", "that\n", "\n", "$$\n", " \\op{H}_{0}\n", " = 4 E_C \\sum_{j=-N} ^N (j-n_g)^2 \\ket{j} \\bra{j}\n", " - \\frac{E_J}{2} \\sum_{j=-N}^{N-1}\n", " (\\ket{j+1} \\bra{j} + \\ket{j} \\bra{j+1}).\n", "$$\n", "\n", "A voltage $V(t)$ applied to the circuit couples to the charge Hamiltonian\n", "$\\op{q}$, which in the (truncated) charge basis reads\n", "\n", "$$\n", " \\op{H}_1 = \\op{q} = \\sum_{j=-N} ^N -2n \\ket{n} \\bra{n}\\,.\n", "$$\n", "\n", "The factor 2 is due to the charge carriers in a superconductor being Cooper\n", "pairs. The total Hamiltonian is\n", "\n", "$$\n", " \\op{H} = \\op{H}_{0} + V(t) \\cdot \\op{H}_{1}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use a Gaussian voltage profile as the guess pulse:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:56.579690Z", "start_time": "2020-03-21T21:17:56.572502Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.017006Z", "iopub.status.busy": "2021-01-13T19:17:50.016136Z", "iopub.status.idle": "2021-01-13T19:17:50.018358Z", "shell.execute_reply": "2021-01-13T19:17:50.018898Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "tlist = np.linspace(0, 10, 1000)\n", "\n", "def eps0(t, args):\n", " T = tlist[-1]\n", " return 4 * np.exp(-40.0 * (t / T - 0.5) ** 2)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:57.284409Z", "start_time": "2020-03-21T21:17:57.275685Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.025335Z", "iopub.status.busy": "2021-01-13T19:17:50.024473Z", "iopub.status.idle": "2021-01-13T19:17:50.026578Z", "shell.execute_reply": "2021-01-13T19:17:50.027118Z" } }, "outputs": [], "source": [ "def plot_pulse(pulse, tlist, xlimit=None):\n", " fig, ax = plt.subplots()\n", " if callable(pulse):\n", " pulse = np.array([pulse(t, None) for t in tlist])\n", " ax.plot(tlist, pulse)\n", " ax.set_xlabel('time (ns)')\n", " ax.set_ylabel('pulse amplitude')\n", " if xlimit is not None:\n", " ax.set_xlim(xlimit)\n", " plt.show(fig)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:58.296931Z", "start_time": "2020-03-21T21:17:57.957925Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.053894Z", "iopub.status.busy": "2021-01-13T19:17:50.053054Z", "iopub.status.idle": "2021-01-13T19:17:50.228260Z", "shell.execute_reply": "2021-01-13T19:17:50.227649Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(eps0, tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The complete Hamiltonian is instantiated as\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:17:59.835440Z", "start_time": "2020-03-21T21:17:59.814723Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.235316Z", "iopub.status.busy": "2021-01-13T19:17:50.234616Z", "iopub.status.idle": "2021-01-13T19:17:50.236768Z", "shell.execute_reply": "2021-01-13T19:17:50.237267Z" } }, "outputs": [], "source": [ "def transmon_hamiltonian(Ec=0.386, EjEc=45, nstates=8, ng=0.0, T=10.0):\n", " \"\"\"Transmon Hamiltonian\n", "\n", " Args:\n", " Ec: capacitive energy\n", " EjEc: ratio `Ej` / `Ec`\n", " nstates: defines the maximum and minimum states for the basis. The\n", " truncated basis will have a total of ``2*nstates + 1`` states\n", "\n", " ng: offset charge\n", " T: gate duration\n", " \"\"\"\n", "\n", " Ej = EjEc * Ec\n", " n = np.arange(-nstates, nstates + 1)\n", " up = np.diag(np.ones(2 * nstates), k=-1)\n", " do = up.T\n", " H0 = qutip.Qobj(np.diag(4 * Ec * (n - ng) ** 2) - Ej * (up + do) / 2.0)\n", " H1 = qutip.Qobj(-2 * np.diag(n))\n", "\n", " return [H0, [H1, eps0]]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:00.552014Z", "start_time": "2020-03-21T21:18:00.539883Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.243343Z", "iopub.status.busy": "2021-01-13T19:17:50.242171Z", "iopub.status.idle": "2021-01-13T19:17:50.244338Z", "shell.execute_reply": "2021-01-13T19:17:50.244850Z" } }, "outputs": [], "source": [ "H = transmon_hamiltonian()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the logical basis $\\ket{0_l}$ and $\\ket{1_l}$ (not to be confused with\n", "the charge states $\\ket{n=0}$ and $\\ket{n=1}$) as the eigenstates of the drift\n", "Hamiltonian $\\op{H}_0$ with the lowest energy. The optimization goal is to find a\n", "potential $V_{opt}(t)$ such that after a given final time $T$ implements an\n", "X-gate on this logical basis.\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:01.493488Z", "start_time": "2020-03-21T21:18:01.468153Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.253219Z", "iopub.status.busy": "2021-01-13T19:17:50.252093Z", "iopub.status.idle": "2021-01-13T19:17:50.255458Z", "shell.execute_reply": "2021-01-13T19:17:50.255966Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Energy of qubit transition is 6.914\n" ] } ], "source": [ "def logical_basis(H):\n", " H0 = H[0]\n", " eigenvals, eigenvecs = scipy.linalg.eig(H0.full())\n", " ndx = np.argsort(eigenvals.real)\n", " E = eigenvals[ndx].real\n", " V = eigenvecs[:, ndx]\n", " psi0 = qutip.Qobj(V[:, 0])\n", " psi1 = qutip.Qobj(V[:, 1])\n", " w01 = E[1] - E[0] # Transition energy between states\n", " print(\"Energy of qubit transition is %.3f\" % w01)\n", " return psi0, psi1\n", "\n", "psi0, psi1 = logical_basis(H)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also introduce the projectors $P_i = \\ket{\\psi _i}\\bra{\\psi _i}$ for the logical\n", "states $\\ket{\\psi _i} \\in \\{\\ket{0_l}, \\ket{1_l}\\}$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:02.822630Z", "start_time": "2020-03-21T21:18:02.813232Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.261269Z", "iopub.status.busy": "2021-01-13T19:17:50.260547Z", "iopub.status.idle": "2021-01-13T19:17:50.263040Z", "shell.execute_reply": "2021-01-13T19:17:50.263558Z" } }, "outputs": [], "source": [ "proj0 = qutip.ket2dm(psi0)\n", "proj1 = qutip.ket2dm(psi1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimization target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The key insight for the realization of a quantum gate $\\Op{O}$ is that\n", "(by virtue of linearity)\n", "\n", "$$\\ket{\\Psi(t=0)} \\rightarrow \\ket{\\Psi(t=T)}\n", " = \\Op{U}(T, \\epsilon(t))\\ket{\\Psi(0)}\n", " = \\Op{O} \\ket{\\Psi(0)}\n", "$$\n", "\n", "is fulfilled for an arbitrary state $\\Ket{\\Psi(t=0)}$ if an only if\n", "$\\Op{U}(T, \\epsilon(t))\\ket{k} = \\Op{O} \\ket{k}$ for every state $\\ket{k}$ in\n", "logical basis, for the time evolution operator $\\Op{U}(T, \\epsilon(t))$ from\n", "$t=0$ to $t=T$ under the same control $\\epsilon(t)$.\n", "\n", "The function `krotov.gate_objectives` automatically sets up the corresponding\n", "objectives $\\forall \\ket{k}: \\ket{k} \\rightarrow \\Op{O} \\ket{k}$:\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:04.784286Z", "start_time": "2020-03-21T21:18:04.764412Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.272766Z", "iopub.status.busy": "2021-01-13T19:17:50.271834Z", "iopub.status.idle": "2021-01-13T19:17:50.275135Z", "shell.execute_reply": "2021-01-13T19:17:50.275793Z" }, "lines_to_next_cell": 2, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[Objective[|Ψ₀(17)⟩ to |Ψ₁(17)⟩ via [H₀[17,17], [H₁[17,17], u₁(t)]]],\n", " Objective[|Ψ₁(17)⟩ to |Ψ₀(17)⟩ via [H₀[17,17], [H₁[17,17], u₁(t)]]]]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "objectives = krotov.gate_objectives(\n", " basis_states=[psi0, psi1], gate=qutip.operators.sigmax(), H=H\n", ")\n", "\n", "objectives" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dynamics of the guess pulse\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:06.867395Z", "start_time": "2020-03-21T21:18:05.911538Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.357932Z", "iopub.status.busy": "2021-01-13T19:17:50.357157Z", "iopub.status.idle": "2021-01-13T19:17:50.938786Z", "shell.execute_reply": "2021-01-13T19:17:50.939317Z" } }, "outputs": [], "source": [ "guess_dynamics = [\n", " objectives[x].mesolve(tlist, e_ops=[proj0, proj1]) for x in [0, 1]\n", "]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:07.430449Z", "start_time": "2020-03-21T21:18:07.421285Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.945788Z", "iopub.status.busy": "2021-01-13T19:17:50.945041Z", "iopub.status.idle": "2021-01-13T19:17:50.947658Z", "shell.execute_reply": "2021-01-13T19:17:50.947158Z" } }, "outputs": [], "source": [ "def plot_population(result):\n", " '''Representation of the expected values for the initial states'''\n", " fig, ax = plt.subplots()\n", " ax.plot(result.times, result.expect[0], label='0')\n", " ax.plot(result.times, result.expect[1], label='1')\n", " ax.legend()\n", " ax.set_xlabel('time')\n", " ax.set_ylabel('population')\n", " plt.show(fig)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:08.656996Z", "start_time": "2020-03-21T21:18:08.195251Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:50.994540Z", "iopub.status.busy": "2021-01-13T19:17:50.970317Z", "iopub.status.idle": "2021-01-13T19:17:51.324258Z", "shell.execute_reply": "2021-01-13T19:17:51.324750Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0VUlEQVR4nO3deXiU5bn48e+dnUAIZIUsENZA2DfBFXeBKlqtClVPFbfWtbXr6e90sac9tXp6WltXpNZd6taKilqLoBYR2fct7AmEJCwhELJNnt8fz0RCyDJJ5p13JnN/rivXO/POu9wDydzz7GKMQSmlVPiKcDsApZRS7tJEoJRSYU4TgVJKhTlNBEopFeY0ESilVJiLcjuAtkpJSTE5OTluh6GUUiFlxYoVpcaY1KZeC7lEkJOTw/Lly90OQymlQoqI7G7uNa0aUkqpMKeJQCmlwpwmAqWUCnOaCJRSKsxpIlBKqTDnWCIQkWdFpFhE1jfzuojIn0QkX0TWishYp2JRSinVPCdLBM8BU1p4fSowyPtzB/Ckg7EopZRqhmPjCIwxn4pITguHXAm8YOw82F+ISA8R6W2M2e9IQLuXwPaP7WMR705p8FyaeY02HNuW6/pyLM0fGxkDUXEQ3cW7jYdo77ZLEnTpCZEhN0xEqbbx1EDFQThxBGoqoOaEd+t9XFcLdR67NXX2sfGc3G88cMpM/I2m5T9tmv6Ovt5BuVMgc5x/r4m7A8oygb0Nnhd4952WCETkDmypgT59+rTvbgVfwqePcNp/VKcl0KUHxKdAYhYkD4CkAZA62P4idenpdoBK+abiEBSuhNItcHA7HNoOZQVwvBQqj7gdnQ+k9UN8ldCr0yUCnxljZgOzAcaPH9++T/Kz77c/p1+8QdY2J/c199yRY1u5TlPX9VRDbaX91lO/rf82dOIwHC+xfyjHS6BsL6x9HarKTt4vZTD0Ow9yp0HOuRAVc/q/jVJuqK2CnZ/B5ndh12dwMP/ka3GJ9gtN+nDolma/6HRNsV96orvaEnJ0vHfbBSKiICLSbiXS+zjy5GOJBGlUQ964RN74g7zZEnvocjMRFALZDZ5nefcFlkin+I9slTG2CH1gAxQsg71fwupXYNkciOsBY26E8bNsyUEpN5Rus7+Pq1+1X1piutkvKaNvgKzxkDYM4pPC4+81wNxMBPOAe0RkLjARKHOsfUDZP56uKdB/sv0BW4LYsQjW/g2WPgVLHodRM+CCn0KPdlbBKdVWh3bAx7+G9W/atq+8q2DEtbbEGh3ndnRhwbFEICKvAucDKSJSAPwCiAYwxjwFzAemAflABXCLU7GoZkR3gdyp9ufofvjiCVj6NGz4O1z4M5j0HVt8VsoJnlpY/AdY9DuIjIZzvw8Tv22rfFRASagtXj9+/Hijs486qKwA5v8QtsyHvufAdc/bkoRS/nR0H/ztJihcDsO+DlMesg2hyjEissIYM76p13RksTpVYhbMeAWufML+kT5zARRvcjsq1ZnsWwXPXAglm+Ebz8K1z2kScJkmAnU6ERhzA9wyH2qr4a9ToWid21GpzqBgBTx3BUREw63/hOHXuB2RQhOBaknmOJj1ge2O9/x0KNnqdkQqlO1fAy99Hbom29+r9GFuR6S8NBGoliX1g2+9YxuNX73eDu5Rqq3Ki+CV6yG2u/19Ssx0OyLVgCYC1brkAXD9y7Yh+Y1ZUFfndkQqlNRWw2v/AZVlMHOudk0OQpoIlG/6TISpD8OOhfDF425Ho0LJpw/D3qVw5ePQa7jb0agmaCJQvht3Mwy5HP71oB2hrFRr9i6Dz34Po2+E4Ve7HY1qhiYC5TsRuOJPENcd3v2eVhGplnlqYN690D0TpvzW7WhUCzQRqLbpmgyX/MoW9de84nY0KpgtmwMlm2Dq7+yXBxW0NBGothv1TcieCP/6JVQdczsaFYyOl8LC38KAC+0MtyqoaSJQbRcRAZf+2k5x/eXTbkejgtHiR6G6HC77rc4WGgI0Eaj2yT4DBk+1f/AnDrsdjQomx4rhy2dgxHWQNsTtaJQPNBGo9rvwv2zf8KWz3Y5EBZPFj9qFkyb/yO1IlI80Eaj26zUcBl0KX86Gmkq3o1HBoLIMVjwHI76hixyFEE0EqmPOug8qSmHtXLcjUcFg1ctQfcyuZaFChiYC1TE550Dv0XZ1sxBb20L5WZ3HrnSXPQkyxrgdjWoDTQSqY0Rg4p1QuhV2f+52NMpNWz+AI7u1NBCCNBGojsu7CmITYeXzbkei3LTiOUjIsNOQqJCiiUB1XEw8jLwONvxDp6kOV+UHIH8BjLoeIh1bCl05RBOB8o9x3wJPFax7w+1IlBvWvQbGY0edq5CjiUD5R68RkDYM1msiCEtr5toV7VIHux2JagdNBMp/RlxjJ6M7ssftSFQg7V8LB9bDqJluR6LaSROB8p/6hcjXv+luHCqwNvwdJFIXog9hmgiU//TMgawJsE4TQdgwBjbNg37nQnyS29GodtJEoPwr7yo4sA4O73I7EhUIJVvgYL52GQ1xmgiUfw3xzj2/5QN341CBsfkdu9VEENI0ESj/SuoPqUNgy3y3I1GBsOkdWx3YvbfbkagO0ESg/C93KuxeDCeOuB2JctKRvbB/DQy9wu1IVAdpIlD+lzsN6moh/19uR6KclP+R3Q6e6m4cqsM0ESj/yxwHXVNhy/tuR6KclL8AErMhZZDbkagO0kSg/C8iEgZeDDsWQl2d29EoJ3hqYMcndnF6XZM45DmaCERkiohsEZF8EflJE6/3EZGFIrJKRNaKyDQn41EB1P98qDhou5KqzqdgmV2cfuDFbkei/MCxRCAikcDjwFQgD5gpInmNDvsv4DVjzBhgBvCEU/GoAOt/vt3uWORmFMop+QvsaOL+k92ORPmBkyWCM4B8Y8wOY0w1MBe4stExBujufZwI7HMwHhVICb0gdagmgs5q+wLbbTQu0e1IlB84mQgygb0Nnhd49zX0S+BGESkA5gP3NnUhEblDRJaLyPKSkhInYlVO6H++XbVMF7bvXCoOwb7Vtn1AdQpuNxbPBJ4zxmQB04AXReS0mIwxs40x440x41NTUwMepGqn/udDbaWdkVR1HnuWAMbOL6Q6BScTQSGQ3eB5lndfQ7cCrwEYY5YAcUCKgzGpQMo5GyKitHqos9m1GKLibDdh1Sk4mQiWAYNEpJ+IxGAbg+c1OmYPcBGAiAzFJgKt++ksYhOg92hd1L6z2b3Ytg9ExbodifITxxKBMaYWuAf4ENiE7R20QUR+JSLTvYd9H7hdRNYArwI3G2OMUzEpF/Q9E/at1HaCzqKyDIrWQt+z3I5E+ZGjq0wbY+ZjG4Eb7vt5g8cbgbOdjEG5rM+Z8PmfbTLQD4/Qt2cpmDroq3+2nYnbjcWqs8ueZLd7lrgbh/KP3f+GiGhbNaQ6DU0EylldkyElF/Z84XYkyh92f24biWPi3Y5E+ZEmAuW8vmfaKoU6j9uRqI6orbLTTveZ6HYkys80ESjn9TkTqsqgeJPbkaiO2L8WPNVaLdQJaSJQzuuj7QSdQsEyu80c724cyu80ESjn9ehr1ycoXOl2JKojCpdD9yxdlrIT0kSgnCdiGxj3aSIIaQXLIEtLA52RJgIVGBljoWQLVB51OxLVHseK4cgeTQSdlCYCFRiZ4wAD+1e7HYlqj4LldqsNxZ2SJgIVGJlj7bZwhbtxqPYpWGYnEOw9yu1IlAM0EajAiE+Cnv00EYSqwuWQPhyiu7gdiXKAJgIVOJnjoHCV21Gotqqrsz2+tH2g09JEoAIncywcLYDyIrcjUW1xaDtUH7MN/qpT0kSgAqd+IRMdTxBa9q+x294j3Y1DOUYTgQqcXiNBIrWdINTsXw2RMZA6xO1IlEM0EajAiYmH1FwoWud2JKot9q+F9GEQGe12JMohmghUYPUaYVe4UqHBGFs1pN1GOzVNBCqweo2E8v1wTJemDglH9kDlEfv/pjotTQQqsHqNsNsDWj0UEr5qKB7tahjKWZoIVGDVJ4L9Wj0UEvavsQ386XluR6IcpIlABVZ8EiRma4NxqChaa3sL6YjiTk0TgQq8XiM1EYSK/Wt0/EAY0ESgAq/XCDi4Daor3I5EtaS8CI4d0IbiMKCJQAVe75Fg6qB4o9uRqJYcWG+3vYa7G4dynCYCFXj1DcY6niC4HfAm6rRh7sahHKeJQAVeYjbE9dCeQ8GueCN06wVdk92ORDlME4EKPBE7t71WDQW3Axu022iY0ESg3JGeB8Wb7BQGKvh4au0a02maCMKBJgLljrShUHUUygrcjkQ15dB28FTZkpvq9KJ8PVBEIoH0hucYY/Y4EZQKA/XfNIs3QY9sd2NRpzuwwW61aigs+FQiEJF7gQPAR8B73p93fThviohsEZF8EflJM8dcJyIbRWSDiLzShthVKKuf217bCYJT8UY7tURKrtuRqADwtURwP5BrjDno64W9JYjHgUuAAmCZiMwzxmxscMwg4D+Bs40xh0UkzffQVUjr0gO6Z2oiCFYHNkLyAIiOczsSFQC+thHsBcraeO0zgHxjzA5jTDUwF7iy0TG3A48bYw4DGGOK23gPFcrShmoiCFYH1tvFaFRY8LVEsANYJCLvAVX1O40x/9fCOZnYBFKvAJjY6JjBACKyGIgEfmmM+aDxhUTkDuAOgD59+vgYsgp6aXmw8zPbQyXS5+Yq5bSqcjiyG8bc5HYkKkB8LRHswbYPxAAJDX46KgoYBJwPzASeEZEejQ8yxsw2xow3xoxPTU31w21VUEjLsz1TDu90OxLVUPFmu9WG4rDh09cwY8yDACLSzfv8mA+nFQINu4Nkefc1VAAsNcbUADtFZCs2MSzzJS4V4tKG2u2BDZAyyN1Y1EnF3h5DOoYgbPjaa2i4iKwCNgAbRGSFiLRWgbgMGCQi/UQkBpgBzGt0zD+wpQFEJAVbVbTD9/BVSEvNBcR2IVXB48BGiO4KPfq6HYkKEF8rZmcDDxhjFgKIyPnAM8BZzZ1gjKkVkXuAD7H1/88aYzaIyK+A5caYed7XLhWRjYAH+GFbeiapEBfdBZL6a4NxsCndAqmDIULHmzZWU1NDQUEBlZWVbofSrLi4OLKysoiOjvb5HF8TQdf6JABgjFkkIl1bO8kYMx+Y32jfzxs8NsAD3h8VjuqnmlDBo2QL9D/f7SiCUkFBAQkJCeTk5CAibodzGmMMBw8epKCggH79+vl8nq8pf4eI/ExEcrw//4VW4Sh/SMuz0xnUnHA7EgVQWQbl+yFlsNuRBKXKykqSk5ODMgkAiAjJycltLrH4mghmAanAW96fVO8+pTomdYhdpKZ0m9uRKICSrXZbP/JbnSZYk0C99sTnUyIwxhw2xtxnjBnr/bm/fhCYUh2S6p3CoHSru3Eoq3SL3abq1BLB6oMPPiA3N5eBAwfy0EMP+eWaLbYRiMgfjTHfFZF3gNPmCzbGTPdLFCp8JQ8EibD10sp9JZshMlZ7DAUpj8fD3XffzUcffURWVhYTJkxg+vTp5OV1rKtva43FL3q3/9uhuyjVnKhY6Jlz8puoclfJVpucdaR3UPryyy8ZOHAg/fv3B2DGjBm8/fbbziYCY8wK78PRxphHG74mIvcDn3To7kqBneGyRKuGgkLpFsgY63YUIeHBdzawcd9Rv14zL6M7v7ii+SFahYWFZGefHKeblZXF0qVLO3xfXxuLv9XEvps7fHelwPZZP5hv5xxS7qk5AYd3a/tAGGqtjWAm8E2gn4g0HBWcABxyMjAVRlJyoa4GDu+ClIFuRxO+SrcBRhOBj1r65u6UzMxM9u49OZdnQUEBmZmZHb5uaxWBnwP7gRTg9w32lwNrO3x3paBBz6EtmgjcVN9gr4vRBK0JEyawbds2du7cSWZmJnPnzuWVVzq+nldrbQS7gd3AmR2+k1LNqZ9wrmQLDPmau7GEs9IttgdX8gC3I1HNiIqK4rHHHuOyyy7D4/Ewa9Yshg3reMnEp64BIjIJ+DMwFDsVdSRw3BjTvcMRKBWXCAm9dSyB20o227mfomLdjkS1YNq0aUybNs2v1/S1sfgx7HoB24AuwG3YZSiV8o+UwTqWwG0lW7VaKEz5PL2gMSYfiDTGeIwxfwWmOBeWCjupubax0pw2blEFgqfGzvmkDcVhyddRIxXeNQVWi8jD2AZknaNW+U/KYKguh6P7ILHjvSBUGx3aAXW1mgjClK8f5jdh2wXuAY5jVx67xqmgVBhq2HNIBV6JzjEUznxdqnK39+EJ4EHnwlFhq75uumQrDLjQ3VjC0VddR3X66XDU2oCydTQx2Vw9Y8xIv0ekwlO3NNt7SEsE7ijdAol9IKbV9aZUJ9RaieDygEShlIjOOeSmks12qg8V9GbNmsW7775LWloa69ev98s1W2wjMMbsbunHLxEoVS91sJYI3FBXB6X5uhhNiLj55pv54IMP/HpNnxqLRaRcRI56fypFxCMi/p12T6mUXDheAhU6jVVAle2B2hPaPhAizjvvPJKSkvx6TV8bixPqH4tdB+1KYJJfI1Gq4WplffTXK2Dqq+M0EbTN+z+BonX+vWavETDVP6uOtUWbxwIY6x/AZf4PR4W1+g8iHWEcWPVTe2jX0bDl61xDVzd4GgGMByodiUiFrx59ISpO5xwKtNKtEJ8M8f6tbuj0XPjm7hRfRxZf0eBxLbALWz2klP9EREDyIE0EgVa6TecYCnO+thHc4nQgSgG251DBcrejCC+lW3X67xAyc+ZMFi1aRGlpKVlZWTz44IPceuutHbqmr1VD/YFHsQ3EBlgCfM8Ys6NDd1eqsZTBsP4tu2xidBe3o+n8Kg5BRak2FIeQV1991e/X9LWx+BXgNaA3kAG8Dvg/GqVSBgPGrmGsnFeqPYaU74kg3hjzojGm1vvzEhDnZGAqTNV/IGk7QWB8lQgGuRuHcpWvjcXvi8hPgLnYqqHrgfkikgRgjNERQMo/kgcColNNBErpVoiMhR593I5EucjXRHCdd3tno/0zsImhv98iUuEtOg569tWpJgKldJtNvhGRbkcSMowx2HG1wcm0Y3EnX3sN9WvzlZVqrxTvamXKeaVboZdOIuyruLg4Dh48SHJyclAmA2MMBw8eJC6ubTX3vvYaiga+A5zn3bUIeNoYU9PKeVOwvY0igTnGmCZHYIjINcAbwARjjPYdDHepg2HHIqjz6DdVJ9VWweFdMOJatyMJGVlZWRQUFFBSUuJ2KM2Ki4sjKyurTef4WjX0JBANPOF9fpN3323NnSAikdgF7i8BCoBlIjLPGLOx0XEJwP3A0jZFrjqvlMHgqYIjeyBJC6OOObQDTJ32GGqD6Oho+vXrfL+TviaCCcaYUQ2efywia1o55wwgv36sgYjMxY5G3tjouP8Gfgf80MdYVGeX0mDyOU0EzvlqVTLtMRTufO0+6hGRAfVPvAPMPK2ckwnsbfC8wLvvKyIyFsg2xrzX0oVE5A4RWS4iy4O5SKb8pP6DSbuQOqu+HSZ5oLtxKNf5WiL4IbBQROpHEucAHZp2QkQigP8Dbm7tWGPMbGA2wPjx49veJK5CS3wSdE3VWUidVroVErN1eUrlc4lgMfA0UAcc8j5e0so5hUB2g+dZ3n31EoDhwCIR2YWdvmKeiIz3MSbVmaUM1hKB00q3arWQAnxPBC8A/bD1+X/Gjht4sZVzlgGDRKSfiMRgxxzMq3/RGFNmjEkxxuQYY3KAL4Dp2mtIATYRlGyBdvSJVj4wxjvrqDYUK9+rhoYbY/IaPF8oIo0bfU9hjKkVkXuAD7HdR581xmwQkV8By40x81o6X4W5lMFQeQSOl0K3VLej6XyO7oOa45oIFOB7IlgpIpOMMV8AiMhEoNVv7saY+cD8Rvt+3syx5/sYiwoHqQ3mHNJE4H862ZxqwNeqoXHA5yKyy1ufvwSYICLrRGStY9Gp8PXV5HPaYOyI+h5DmggUvpcIpjgahVKNdc+C6Hi/TTVxrKqW3QePU1HtISEuipzkrsRFB/+o5coaD4VHTlBeWUu32Eiyk+KJjfJD3KVbIDYRuqV1/Foq5Pk619BupwNR6hQREbZHSwe6kHrqDO+t289LX+xmxe7DeOpONjxHRQjDMxP52ojeXDk6g7TuwTOrekl5FW+uLODjTcWs3HOY2gZxx0RGMGlAMjdO7MMleentn++mvsdQEM6XowLP1xKBUoGXMhj2tG/mkW0Hyvn+62tYW1BGTnI8357cn+EZiXSNjaLsRA2bi47y6dZSfjN/Ew9/uJmrRmdy5+T+DExL8POb8F1+cTl//jif+ev2U+MxDMvozq3n9iM3PYHELtGUV9ayvrCM+ev2c8eLK5iQ05PfXzuaPsnxbb9Z6Tbof4H/34QKSZoIVPBKyYV1r0P18TYNevpo4wG+O3cVXWIi+eP1o5k+KoOIiFO/+V4xKoMfXgbbS47xwue7+Nvyvby5soBvjMvie5cMpndi4JbJ3HOwgj8u2Mo/VhXSJTqSGyf15YaJfRmY1u20Y68ak8l/ThvKa8v38tv5m/janz7jyRvHcc6gFN9vWHkUyvfrGAL1FU0EKnh9NdXENsgY7dMp763dz72vrmR4ZiKzbxpPr8SWq3wGpHbjwSuHc//Fg3liYT4vLNnN26v3ccvZ/fjO+QNI7BLdwTfRvJLyKv788TZeWbqHyAjhtnP7c+d5/UnuFtvieZERwswz+nDOwBRuf2E5s55bxuM3jOWSvHTfbnxQG4rVqXztNaRU4KXWTz7nW4PxJ1tLuH/uKsb26cncOya1mgQaSuoaw39dnseC709m6vBePPXJds57eCFPLtrOierWptVqm2NVtfzho61MfmQhryzdw4wzsvn0Rxfw02lDW00CDWUnxTP3jkkMzejO3S+vZPkuHxcKrP/3rP/3VWFPE4EKXkn9QSJ86kK6++Bx7n1lJYPSE3j2lgnEx7SvsJudFM8fZ4zhvfvOYWyfHvzug82c98hCXlyyi8qajiWEo5U1PLloO5MfXsijC7ZxQW4aHz0wmV9fNYL0djZW94iP4bmbJ5DRI447X1zB3kMVrZ9UuhUioqBnTrvuqTofTQQqeEXFQs9+rc45VFXr4dsvrUREePrGcXSP63h1zrCMRP56yxm8dueZ5CTH87O3N3DWQx/zyIebffuwbWBz0VF+/e5Gzv7tx/zug83kZXTnH3efzeM3jKVfSscnfOvZNYa/3DyB6to6vve31dR66lo+oXSrTbKRzlV7qdCibQQquKUMbnUh+z8vyGfT/qPM+Y/x7etB04Iz+iXx2p1nsmTHQZ5bvIsnFm3n8YXbGZGZyAVD0hiVlcjg9ARSE2KJiYygqraO/WUn2F5ynKU7DvLv/FI2F5UTFSFcNrwX3z5vACOyEv0aI9i2jl9/fTj3z13NE4u2c99FLTQEl2zV9gF1Ck0EKrilDobtC8BTC5Gn/7quLyzjyU+2c83YLC72tbG0jUSEswakcNaAFPYeqmD+uv28v76Ixz7eRl0Lc+LFREUwrk9PfnFFHtNHZbSp/r89rhydyYJNxfxpwTamDu/FoPQmusJ6auzKZEOmORqLCi2aCFRwS8kFTzUc2Q3JA055yVNn+PGba0nuGsPPL89r5gL+lZ0Uz52TB3Dn5AEcr6pl4/6jbC8+xsHj1VTV1hEXHUFaQhz9UroyLKN7wEcv/+KKPD7ZWsLP3l7Pq7dPOn3A2eFdUFejJQJ1Ck0EKrjVf2CVbDktEbyxYi8b9h3lzzPHkBgf+PrurrFRTMhJYkJOUsDv3ZzkbrH8eMoQfvr3dfx9VSFXj220iHnxJrtNHRL44FTQ0sZiFdyaWbbyWFUtj3y4lXF9e3L5yN4uBBa8ZkzIZlS27fF0WtfX+ik7tOuoakATgQpuXXpAt/TTEsGTi/IpPVbFzy7Pa/98O51URITw06lDOHC0iuc+33XqiyWboEcfXZ5SnUITgQp+jZatLD5ayZzPdnLl6AxGZ/dwL64gNrF/MhfkpvLkonzKKmpOvlCyBVKHuheYCkqaCFTwq+9C6l228qlPdlBbZ3jgEm3wbMmPpgyhvKqWJz/Zbnd4am1C1Woh1YgmAhX8UnOhqgyOFVN8tJKXl+7m6jGZ9E3W6o2WDO3dnStHZfD857s4dLwaDu+0PbDStESgTqWJQAW/rxqMt3xVGrjnwoHuxhQi7rlwIJW1Hp79904o2Wx3ao8h1YgmAhX8UmxVRnnBBl5eupuva2nAZwPTEpgyrBfPL9lF5b4NdqeOIVCNaCJQwa97BsQksHX9cmo8ddxzgZYG2uLuCwZSXlnLni0rbY+h2NPXOVDhTROBCn4ieFJyqSvayNQRvcnxw0Rt4WR4ZiLn56ZC8WY8ydpQrE6niUCFhG30YSB7uOOcfm6HEpLumZxDX7OPTZ5Mt0NRQUgTgQp6tZ463i9OoqccY1SPSrfDCUnjux8lVmp4d18CnpZmylNhSROBCnrz1xextKKXfVK8wd1gQlWJnWPo8/I0Fmw64HIwKthoIlBBzRjD7E+3U9nTW7d9QBNBuxTbrqMV3Qcw5987XQ5GBRtNBCqofbHjEOsLj3LdeaMhoTcc2Oh2SKGpeAP0zGHGOUP5cuch1hYccTsiFUQ0EaigNuezHSR3jeHqsZmQlqdVQ+1VtB7Sh3P9hGy6xUbxFy0VqAY0EaiglV9czoLNxdx0Zl+7wEt6np1zyFPrdmihpboCDm2H9OEkxEUzY0I2763dz74jJ9yOTAUJTQQqaP3l3zuJjYrgpkl97Y60YeCpsh9qynfFm8DUQa/hANx8dg4GeH7JLlfDUsHD0UQgIlNEZIuI5IvIT5p4/QER2Sgia0VkgYj0dTIeFToOHqvirZWFXD028+Rav+ne5Si1wbhtDqy323SbCLJ6xjN1eC9eWbqHY1VaulIOJgIRiQQeB6YCecBMEWm8sOwqYLwxZiTwBvCwU/Go0PLy0j1U1dYx6+wGA8hSckEioVgbjNvkwHqISYAeJ79n3XZuf8ora3l9+V4XA1PBwskSwRlAvjFmhzGmGpgLXNnwAGPMQmNMhffpF0CjBVZVOKqq9fDCkt1MHpzKoPSEky9Ex9l1i7XnUNsUrbelqYiTf+6js3swvm9Pnl28UweYKUcTQSbQ8OtGgXdfc24F3m/qBRG5Q0SWi8jykpISP4aogtE7a/ZTeqyK285tYjoJ7TnUNsbYqjRvtVBDt53bn72HTvDhhiIXAlPBJCgai0XkRmA88EhTrxtjZhtjxhtjxqempgY2OBVQxhjmfLaD3PQEzhmYcvoBvYbD4V1QeTTgsYWksr12UZ9epyeCS/LS6ZsczzOf7XAhMBVMnEwEhUB2g+dZ3n2nEJGLgf8HTDfGVDkYjwoBS7YfZHNRObee06/pRel7j7bborUBjStkFdU3FI847aXICGHW2f1YtecIK3YfDnBgKpg4mQiWAYNEpJ+IxAAzgHkNDxCRMcDT2CRQ7GAsKkTM+fdOUrrFMH10RtMH9B5lt/tWByymkHZgPSDNLk957fgsErtEM0dLBWHNsURgjKkF7gE+BDYBrxljNojIr0RkuvewR4BuwOsislpE5jVzORUGtpcc4+PNxdw4yTuArCnd0iAhA/avCWxwoapoLST1a3YxmviYKG6Y2IcPNxSx52BFk8eozs/RNgJjzHxjzGBjzABjzG+8+35ujJnnfXyxMSbdGDPa+zO95SuqzuzZf+8kJiqCGye1Mpyk9yjYvzogMYW8fashY0yLh3zrrBwiI4RnF+u0E+EqKBqLlTp4rIo3VxZw1egMUuoHkDUnYzSUboOqYwGJLWQdK7GNxRljWzwsvXscV4zK4LXleymrqAlQcCqYaCJQQeGvi3dRVVvHHecNaP3g3qMBA0XrnA4rtO1babeZLScCgNvO6U9FtYdXvtzjcFAqGGkiUK4rr6zh+SW7uCyvFwPTfFhYvb7BWKuHWrZvFUgE9BrZ6qF5Gd05e2Ayz32+k+raugAEp4KJJgLlupeX7qG8spa7LvChNADQvTd0S9cG49YUrrTTcjTTUNzY7ef258DRKt5aWeBwYCrYaCJQrqqs8TDns52cMzCFkVk9fD+x92j7QaeaZoytGvKhWqje5MGpjMxK5PFF+dR4tFQQTjQRKFe9vqKA0mNV3HW+j6WBetkToHQLnNCBUE0qK4DjJa32GGpIRLjvwkHsPXSCt1fvczA4FWw0ESjXVNV6eGrRdkZn9+DMAcltOzl7ot0WLPd/YJ3BvlV220qPocYuGppGXu/uPL4wn1otFYQNTQTKNXO/3EvhkRM8cMngpqeTaEnGWDsl9d6lzgQX6gqXQ0Q0pA9r02kiwn0XDWRn6XHeXbvfoeBUsNFEoFxxotrDYwvzOaNfEucOamJyudbEdrMTqWkiaNruJbZ9IDquzademteL3PQE/vTxNi0VhAlNBMoVL36xi5LyKn5waW7bSwP1sidCwQpdw7ixmhO2aqjPpHadHhEhPHDpYHaUHOe15dqDKBxoIlABV15Zw5OLtnPe4FTO6JfU/gtlT4Sa47o+QWOFK6GuBvqc1e5LXJqXzri+PfnDv7ZSUa2JtrPTRKAC7rGP8zlcUcMPL83t2IWyz7DbvV92PKjOZM8Su63/92kHEeGn04ZQUl7FnM90DqLOThOBCqhdpcd5dvFOvjEuixFZiR27WGI2JPQ++cGnrD1LIHUoxHegtAWM65vElGG9ePqT7ZSU61IhnZkmAhVQv5m/iZjICH50WQdLAwAikHMu7PzUDqBStr1k75ftbh9o7EdTcqn21PHb9zf55XoqOGkiUAHzydYSPtp4gLsuGEha97b3ZmlS//PtwKliXdAesI3EVUeh33l+uVz/1G7cfm5/3lpZyBc7Dvrlmir4aCJQAXG8qpafvrWO/qldufWcJhalb6/+k+12xyL/XTOUbf8YEJsg/eTeCweR1bMLP/vHep2QrpPSRKAC4n//uYXCIyf43TUjm199rD0SsyB5kCaCets/ttNKdLB9oKEuMZE8OH0Y24qP8dQn2/12XRU8NBEox63YfYjnPt/FTZP6MiHHfx9QX+k/GXYthtpq/187lFSWQcEyGHCh3y990dB0rhydwZ8WbGNtwRG/X1+5SxOBclRZRQ33vbqazB5d+NEUPzQQN6X/BXY8wZ7Pnbl+qNj5KRiPI4kA4FfTh5OaEMt3/7aaE9UeR+6h3BHldgCq8zLG8OM313LgaCVvfOcsEuKinbnRgAsgKg42v+fXuvFWlRfB9oX2W3hZAdRUQHS8XSw+YwwMvAS6tnEyvY7Y9k+ISYCsCY5cPjE+mt9fO4pvzlnKg+9s4KFrWl/wRoUGTQTKMc99vosPNhTx02lDGJ3dw7kbxXSFgRfbRDD1Ydut1Ek7PoEvnoRtH4Kpg9ju0LMvxHSD8n2w69+w9Cm7OljuNDjzHuh7prMxeWrt+x98GUTFOHabswamcPcFA3h84XZGZCVyw8S+jt1LBY4mAuWIhZuL+e93N3JJXjq3ndPf+RsOuRw2v+tdjGWcM/co3Qbv/xi2L7ArpJ39XRh+NaQNg4gGtax1dVC0Bjb8HVY8b+PK/Rpc9htbWnDCns+h4iDkTXfm+g08cEkuG/cd5Rdvb2BQWkLHpglRQUHbCJTfbdhXxr2vrmJo7+48OmM0EREOf0MH+01YImHTO/6/dl0dLH0anjrXTu986a/h/rVw8S+g14hTkwDY5xlj4JJfwQMb4aKf215NT5xpE4MTg982zoOoLrZk5LDICOGPM8bQJyme219Yzuaio47fUzlLE4Hyq81FR7lxzlK6x0Xxl29NID4mQIXO+CTbPrDuTfvB7S81J+C1m+D9H0G/c+HuL+Gse32f3jmmK5z7fbhnmZ3755374I1ZUHXMfzHWVsOGt2DwpfZ+AZDYJZrnZ51Bl+hIbpzzJTtLjwfkvsoZmgiU36wvLOOGZ5YSGxXJq3dMolein0YP+2rMDVC2B3Yu8s/1Kg7BC1fZuvfL/ge++Rok9GrftRIz4aZ/2NLBxn/Ac9PgqJ8Wftn6vq0WGnOTf67no+ykeF66bSJ1xjBj9hI27deSQajSRKD8YuGWYq57eglx0ZG8cvtE+iYH5pvpKYZcDl16wsoXO36tI3vh2Sm2zeHav8KZd3e8EToiwpYOZs6F0nyYcxEUre94rKtegoQMx7qNtmRgWjdevX0SgnDdU0v4PL804DGojtNEoDqk1lPH/320lVnPLaNfSlf+ftdZ9E/t5k4wUbEwcoZtJyjrwIIqRevhL5fY7qE3/R2Gfd1/MYJtz5j1gW0r+OtU2PlZ+69Vmg/bPrKloQg/jthug9xeCbx111n07hHHTc9+yROL8qmr00kAQ4kmAtVu20uO8c1nlvKnBdu4ekwWr915pv8mk2uvM+8CDCx5vH3n7/zUfjgjMOt9yDnHn9Gd1Hsk3PYRdM+Al662PYzaY/EfbAI84w7/xtdGGT268MZ3zmLK8F48/MEWbnp2KXsOVrgak/KdJgLVZmUnanjo/c1M+eOnbCo6yh+uH8XvrxtF19gg6I3cow+MuA5WPAflB9p27vo34aVr7IfzbR+1eeH3NkvMglvet91dX7/F9kxqi8O7Yc1c2zbQLc2ZGNuge1w0j80cw2+vHsHqPUe4+A+f8IePtnKsSlc4C3ZiQmwe9/Hjx5vly5e7HUZYKiqr5MUvdvHC57spr6rlG+Oy+PGUIaQmxLod2qkObocnJkHelXDNnNaPN94SxD//n13eceYrtq0hUGpOwJu32fEGZ38XLv6lb+0Rf7sR8hfAPcttY3QQKSqr5DfzN/HOmn30iI/mlrP68c2JfYLvdyWMiMgKY8z4Jl/TRKBacvh4NZ9uK+GtlYV8tq0EA0wd3ou7zh/I8MwOrjDmpIX/A5/8zvb0GXxZ88d5amD+D2HFX2HodLj6Gd+7hvpTnQfm/wCWPwujZsL0P0NkC1NyrH/TdkO98Gdw3g8CF2cbrd57hMc+zudfmw4QFSGcn5vGVWMyOHdgKonxDk05oprkWiIQkSnAo0AkMMcY81Cj12OBF4BxwEHgemPMrpauqYnAOcYY9h46wdrCI6wrLGPpjkOsKTiCMdA7MY5rxmbxjXFZ5KS40COorWpOwJyLoWyvrX5pqprnyB74+7dh92I453tw4c9PHxwWSMbAp/8LC39tx0Rc9aStpmqsYAW8MB3S8uCW+S0njCCRX1zO68sLeGtVISXlVURGCGOye3BGvyRGZiUyPDORzB5dEKenBwljriQCEYkEtgKXAAXAMmCmMWZjg2PuAkYaY74tIjOArxtjrm/pupoIfFPjqaOqto6qGg+V9duaOo6cqObw8RoOV1Rz+Hg1B49Xs/dQBXsOVbD3cAWVNXYwVkxkBMMyuzN5cCqTB6cyMqsHkYEYIexPh3fZLqA1FTD1ERh+DURGwbFiO8J38aP2uK/9Hka1+GsXWKtegvd+AJExcO4DMPY/7IA5Tw2sfgU+/Cl0TbEJrqlEEcRqPXWs3nuERVtK+HRbCRv3HaXW28MoPiaS7J7xZCfFk9WzC6kJsfSMj6FnfDQ9u8bQPS6auOgIusREEhcVSVx0JLFREYEZud4JuJUIzgR+aYy5zPv8PwGMMb9tcMyH3mOWiEgUUASkmhaCam8ieG3ZXmZ/toP6S391A3PK5rTXG0ZivHvr9zWOsrlzTzvvtGs393qjWE+5d9Pvw2MMVbV1eHzsvpcQG0Vmzy70SYqnT1I8/VO7MTIrkcHpCcREdYK+BId32YbYfSvtzJxdetpSAsZOCDflITthXLA5uN1WWW1fAAgkZttBYzXHoc+ZcM1fgq5doD0qazxsLipnXWEZO0uO2y8khyooOFzBcR+nuo6JjCAiAiJFiIgQIiOECLE/kQ32R4ic1vTSVAppXCppMs346zptdN9Fg7hiVPuSf0uJwMluHpnA3gbPC4CJzR1jjKkVkTIgGThlVIqI3AHcAdCnT592BdOzawy56QneC56y+eo/7OTzpl9vuO/kNaSZc5p5vdEFfD6vwXs57ReswTkRwlfflGKjI4iNiiTOu42NiqBHfAw9u0aTFB9DYnw0sVHu9D0PmJ45cNu/YOsHdsroqnJIHghDvgbpeW5H17zkAXDTW7B/DWz90CaGuEQYeJGd3trNKiw/iouOZHR2jyZnp62s8XCkooZDx6s5XFHN0RM1VNbakm1ljYcT3lJudW0ddcbgqbM/xhg8xuCpg7o6+7iuzlDX6JtbU1+VTvty1+QxrV+n8U7T9FFtltjFmWrAIOjv1zpjzGxgNtgSQXuucUleOpfkpfs1LhUiIiLtB/+Qr7kdSdv1HmV/wlBcdCS9EiMDP1VJGHLya0UhkN3geZZ3X5PHeKuGErGNxkoppQLEyUSwDBgkIv1EJAaYAcxrdMw84Fvex98APm6pfUAppZT/OVY15K3zvwf4ENt99FljzAYR+RWw3BgzD/gL8KKI5AOHsMlCKaVUADnaRmCMmQ/Mb7Tv5w0eVwLXOhmDUkqplnWOrgdKKaXaTROBUkqFOU0ESikV5jQRKKVUmAu52UdFpATY3c7TU2g0ajkM6HsOD/qew0NH3nNfY0xqUy+EXCLoCBFZ3txcG52VvufwoO85PDj1nrVqSCmlwpwmAqWUCnPhlghmux2AC/Q9hwd9z+HBkfccVm0ESimlThduJQKllFKNaCJQSqkwFzaJQESmiMgWEckXkZ+4HY/TRCRbRBaKyEYR2SAi97sdUyCISKSIrBKRd92OJRBEpIeIvCEim0Vkk3eJ2E5NRL7n/Z1eLyKvikinW7lGRJ4VkWIRWd9gX5KIfCQi27zbnv66X1gkAhGJBB4HpgJ5wEwRCeJ1Cv2iFvi+MSYPmATcHQbvGeB+YJPbQQTQo8AHxpghwCg6+XsXkUzgPmC8MWY4dor7zjh9/XPAlEb7fgIsMMYMAhZ4n/tFWCQC4Awg3xizwxhTDcwFrnQ5JkcZY/YbY1Z6H5djPyBCf7XzFohIFvA1YI7bsQSCiCQC52HX9cAYU22MOeJqUIERBXTxrmoYD+xzOR6/M8Z8il2jpaErgee9j58HrvLX/cIlEWQCexs8L6CTfyg2JCI5wBhgqcuhOO2PwI+AOpfjCJR+QAnwV2912BwR6ep2UE4yxhQC/wvsAfYDZcaYf7obVcCkG2P2ex8XAX5bhD1cEkHYEpFuwJvAd40xR92OxykicjlQbIxZ4XYsARQFjAWeNMaMAY7jx+qCYOStF78SmwQzgK4icqO7UQWed0lfv/X9D5dEUAhkN3ie5d3XqYlINDYJvGyMecvteBx2NjBdRHZhq/4uFJGX3A3JcQVAgTGmvqT3BjYxdGYXAzuNMSXGmBrgLeAsl2MKlAMi0hvAuy3214XDJREsAwaJSD8RicE2Ls1zOSZHiYhg6443GWP+z+14nGaM+U9jTJYxJgf7//uxMaZTf1M0xhQBe0Uk17vrImCjiyEFwh5gkojEe3/HL6KTN5A3MA/4lvfxt4C3/XVhR9csDhbGmFoRuQf4ENvL4FljzAaXw3La2cBNwDoRWe3d91PvOtKq87gXeNn7BWcHcIvL8TjKGLNURN4AVmJ7xq2iE041ISKvAucDKSJSAPwCeAh4TURuxU7Ff53f7qdTTCilVHgLl6ohpZRSzdBEoJRSYU4TgVJKhTlNBEopFeY0ESilVJjTRKBUC7yze97lfZzh7bqoVKei3UeVaoF3nqZ3vTNdKtUphcWAMqU64CFggHdQ3jZgqDFmuIjcjJ39sSswCDsRWgx2EF8VMM0Yc0hEBmCnQE8FKoDbjTGbA/0mlGqJVg0p1bKfANuNMaOBHzZ6bThwNTAB+A1Q4Z38bQnwH95jZgP3GmPGAT8AnghE0Eq1hZYIlGq/hd61HspFpAx4x7t/HTDSO/PrWcDrdlocAGIDH6ZSLdNEoFT7VTV4XNfgeR32bysCOOItTSgVtLRqSKmWlQMJ7TnRu/7DThG5FuyMsCIyyp/BKeUPmgiUaoEx5iCw2LuI+CPtuMQNwK0isgbYQCdfIlWFJu0+qpRSYU5LBEopFeY0ESilVJjTRKCUUmFOE4FSSoU5TQRKKRXmNBEopVSY00SglFJh7v8DB4aGhqlTizoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_population(guess_dynamics[0])\n", "plot_population(guess_dynamics[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the desired shape of the update and the factor $\\lambda_a$, and then start the optimization" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:18:11.081557Z", "start_time": "2020-03-21T21:18:11.065096Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:51.331098Z", "iopub.status.busy": "2021-01-13T19:17:51.330071Z", "iopub.status.idle": "2021-01-13T19:17:51.332524Z", "shell.execute_reply": "2021-01-13T19:17:51.333094Z" } }, "outputs": [], "source": [ "def S(t):\n", " \"\"\"Scales the Krotov methods update of the pulse value at the time t\"\"\"\n", " return krotov.shapes.flattop(\n", " t, t_start=0.0, t_stop=10.0, t_rise=0.5, func='sinsq'\n", " )\n", "\n", "pulse_options = {H[1][1]: dict(lambda_a=1, update_shape=S)}\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:19:48.367084Z", "start_time": "2020-03-21T21:18:15.565391Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:17:51.341244Z", "iopub.status.busy": "2021-01-13T19:17:51.340416Z", "iopub.status.idle": "2021-01-13T19:19:29.975184Z", "shell.execute_reply": "2021-01-13T19:19:29.976524Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter. J_T g_a_int J Delta J_T Delta J secs\n", "0 1.00e+00 0.00e+00 1.00e+00 n/a n/a 7\n", "1 2.80e-01 3.41e-01 6.22e-01 -7.20e-01 -3.78e-01 17\n", "2 2.12e-01 3.06e-02 2.43e-01 -6.81e-02 -3.75e-02 18\n", "3 1.35e-01 3.28e-02 1.68e-01 -7.72e-02 -4.44e-02 20\n", "4 9.79e-02 1.56e-02 1.13e-01 -3.71e-02 -2.15e-02 16\n", "5 7.13e-02 1.11e-02 8.25e-02 -2.65e-02 -1.54e-02 17\n" ] } ], "source": [ "opt_result = krotov.optimize_pulses(\n", " objectives,\n", " pulse_options,\n", " tlist,\n", " propagator=krotov.propagators.expm,\n", " chi_constructor=krotov.functionals.chis_re,\n", " info_hook=krotov.info_hooks.print_table(\n", " J_T=krotov.functionals.J_T_re,\n", " show_g_a_int_per_pulse=True,\n", " unicode=False,\n", " ),\n", " check_convergence=krotov.convergence.Or(\n", " krotov.convergence.value_below(1e-3, name='J_T'),\n", " krotov.convergence.delta_below(1e-5),\n", " krotov.convergence.check_monotonic_error,\n", " ),\n", " iter_stop=5,\n", " parallel_map=(\n", " krotov.parallelization.parallel_map,\n", " krotov.parallelization.parallel_map,\n", " krotov.parallelization.parallel_map_fw_prop_step,\n", " ),\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(this takes a while ...)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:19:54.234031Z", "start_time": "2020-03-21T21:19:54.217987Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:29.990312Z", "iopub.status.busy": "2021-01-13T19:19:29.988931Z", "iopub.status.idle": "2021-01-13T19:19:29.998469Z", "shell.execute_reply": "2021-01-13T19:19:29.997416Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "dumpfile = \"./transmonxgate_opt_result.dump\"\n", "if os.path.isfile(dumpfile):\n", " opt_result = krotov.result.Result.load(dumpfile, objectives)\n", "else:\n", " opt_result = krotov.optimize_pulses(\n", " objectives,\n", " pulse_options,\n", " tlist,\n", " propagator=krotov.propagators.expm,\n", " chi_constructor=krotov.functionals.chis_re,\n", " info_hook=krotov.info_hooks.print_table(\n", " J_T=krotov.functionals.J_T_re,\n", " show_g_a_int_per_pulse=True,\n", " unicode=False,\n", " ),\n", " check_convergence=krotov.convergence.Or(\n", " krotov.convergence.value_below(1e-3, name='J_T'),\n", " krotov.convergence.delta_below(1e-5),\n", " krotov.convergence.check_monotonic_error,\n", " ),\n", " iter_stop=1000,\n", " parallel_map=(\n", " qutip.parallel_map,\n", " qutip.parallel_map,\n", " krotov.parallelization.parallel_map_fw_prop_step,\n", " ),\n", " continue_from=opt_result\n", " )\n", " opt_result.dump(dumpfile)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:19:55.184889Z", "start_time": "2020-03-21T21:19:55.178133Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:30.011476Z", "iopub.status.busy": "2021-01-13T19:19:30.009934Z", "iopub.status.idle": "2021-01-13T19:19:30.015098Z", "shell.execute_reply": "2021-01-13T19:19:30.016022Z" } }, "outputs": [ { "data": { "text/plain": [ "Krotov Optimization Result\n", "--------------------------\n", "- Started at 2019-04-12 17:45:43\n", "- Number of objectives: 2\n", "- Number of iterations: 398\n", "- Reason for termination: Reached convergence: Δ(('info_vals', T[-1]),('info_vals', T[-2])) < 1e-05\n", "- Ended at 2019-04-12 18:20:47 (0:35:04)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opt_result" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:19:57.106863Z", "start_time": "2020-03-21T21:19:57.099117Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:30.025575Z", "iopub.status.busy": "2021-01-13T19:19:30.023920Z", "iopub.status.idle": "2021-01-13T19:19:30.027083Z", "shell.execute_reply": "2021-01-13T19:19:30.028427Z" } }, "outputs": [], "source": [ "def plot_convergence(result):\n", " fig, ax = plt.subplots()\n", " ax.semilogy(result.iters, np.array(result.info_vals))\n", " ax.set_xlabel('OCT iteration')\n", " ax.set_ylabel('error')\n", " plt.show(fig)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:19:58.706232Z", "start_time": "2020-03-21T21:19:58.026972Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:30.071838Z", "iopub.status.busy": "2021-01-13T19:19:30.057105Z", "iopub.status.idle": "2021-01-13T19:19:31.443029Z", "shell.execute_reply": "2021-01-13T19:19:31.442015Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_convergence(opt_result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimized pulse and dynamics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We obtain the following optimized pulse:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:00.640274Z", "start_time": "2020-03-21T21:20:00.433074Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:31.489999Z", "iopub.status.busy": "2021-01-13T19:19:31.489302Z", "iopub.status.idle": "2021-01-13T19:19:31.606728Z", "shell.execute_reply": "2021-01-13T19:19:31.607246Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(opt_result.optimized_controls[0], tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The oscillations in the control shape indicate non-negligible spectral broadening:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:03.040946Z", "start_time": "2020-03-21T21:20:02.755327Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:31.616388Z", "iopub.status.busy": "2021-01-13T19:19:31.615245Z", "iopub.status.idle": "2021-01-13T19:19:31.811812Z", "shell.execute_reply": "2021-01-13T19:19:31.812322Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_spectrum(pulse, tlist, xlim=None):\n", "\n", " if callable(pulse):\n", " pulse = np.array([pulse(t, None) for t in tlist])\n", "\n", " dt = tlist[1] - tlist[0]\n", " n = len(tlist)\n", "\n", " w = np.fft.fftfreq(n, d=dt/(2.0*np.pi))\n", " # the factor 2π in the normalization means that\n", " # the spectrum is in units of angular frequency,\n", " # which is normally what we want\n", "\n", " spectrum = np.fft.fft(pulse) / n\n", " # normalizing the spectrum with n means that\n", " # the y-axis is independent of dt\n", "\n", " # we assume a real-valued pulse, so we throw away\n", " # the half of the spectrum with negative frequencies\n", " w = w[range(int(n / 2))]\n", " spectrum = np.abs(spectrum[range(int(n / 2))])\n", "\n", " fig, ax = plt.subplots()\n", " ax.plot(w, spectrum, '-o')\n", " ax.set_xlabel(r'$\\omega$')\n", " ax.set_ylabel('amplitude (arb. units)')\n", " if xlim is not None:\n", " ax.set_xlim(*xlim)\n", " plt.show(fig)\n", "\n", "\n", "plot_spectrum(opt_result.optimized_controls[0], tlist, xlim=(0, 40))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lastly, we verify that the pulse produces the desired dynamics $\\ket{0_l} \\rightarrow \\ket{1_l}$ and $\\ket{1_l} \\rightarrow \\ket{0_l}$:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:05.388221Z", "start_time": "2020-03-21T21:20:04.164574Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:32.248672Z", "iopub.status.busy": "2021-01-13T19:19:32.121771Z", "iopub.status.idle": "2021-01-13T19:19:33.103103Z", "shell.execute_reply": "2021-01-13T19:19:33.104093Z" } }, "outputs": [], "source": [ "opt_dynamics = [\n", " opt_result.optimized_objectives[x].mesolve(tlist, e_ops=[proj0, proj1])\n", " for x in [0, 1]\n", "]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:05.916763Z", "start_time": "2020-03-21T21:20:05.686139Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:33.211022Z", "iopub.status.busy": "2021-01-13T19:19:33.205885Z", "iopub.status.idle": "2021-01-13T19:19:33.713123Z", "shell.execute_reply": "2021-01-13T19:19:33.713648Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_population(opt_dynamics[0])" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:06.453462Z", "start_time": "2020-03-21T21:20:06.250554Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:33.721558Z", "iopub.status.busy": "2021-01-13T19:19:33.719894Z", "iopub.status.idle": "2021-01-13T19:19:33.928417Z", "shell.execute_reply": "2021-01-13T19:19:33.929264Z" }, "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_population(opt_dynamics[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the optimized pulse shows some oscillations (cf. the spectrum above),\n", "it is a good idea to check for any discretization error. To this end, we also\n", "propagate the optimization result using the same propagator that\n", "was used in the optimization (instead of `qutip.mesolve`). The main difference\n", "between the two propagations is that `mesolve` assumes piecewise constant\n", "pulses that switch between two points in `tlist`, whereas `propagate` assumes\n", "that pulses are constant on the intervals of `tlist`, and thus switches *on*\n", "the points in `tlist`." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:11.269620Z", "start_time": "2020-03-21T21:20:07.755573Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:33.937957Z", "iopub.status.busy": "2021-01-13T19:19:33.936741Z", "iopub.status.idle": "2021-01-13T19:19:38.351806Z", "shell.execute_reply": "2021-01-13T19:19:38.352544Z" } }, "outputs": [], "source": [ "opt_dynamics2 = [\n", " opt_result.optimized_objectives[x].propagate(\n", " tlist, e_ops=[proj0, proj1], propagator=krotov.propagators.expm\n", " )\n", " for x in [0, 1]\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The difference between the two propagations gives an indication of the error\n", "due to the choice of the piecewise constant time discretization. If this error\n", "were unacceptably large, we would need a smaller time step." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2020-03-21T21:20:15.957560Z", "start_time": "2020-03-21T21:20:15.951751Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:19:38.359114Z", "iopub.status.busy": "2021-01-13T19:19:38.358026Z", "iopub.status.idle": "2021-01-13T19:19:38.361476Z", "shell.execute_reply": "2021-01-13T19:19:38.362002Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time discretization error = 2.9e-05\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "# Note: the particular error value may depend on the version of QuTiP\n", "print(\n", " \"Time discretization error = %.1e\" %\n", " abs(opt_dynamics2[0].expect[1][-1] - opt_dynamics[0].expect[1][-1])\n", ")" ] } ], "metadata": { "hide_input": false, "jupytext": { "formats": "" }, "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.7.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }