{ "cells": [ { "cell_type": "markdown", "id": "7bef0848", "metadata": {}, "source": [ "# Two-Photon Pulse" ] }, { "cell_type": "markdown", "id": "8b3f1165", "metadata": {}, "source": [ "This example demonstrates how to optimize a CZ gate if the qubit state $|1\\rangle$ is coupled to the Rydberg state $|r\\rangle$ via an intermediate state $|e\\rangle$. The example reproduces the nearly time-optimal gate from [Evered et al. (2023), Nature 622, 268-272 (2023)](https://doi.org/10.1038/s41586-023-06481-y)." ] }, { "cell_type": "code", "execution_count": 1, "id": "58fbc708", "metadata": {}, "outputs": [], "source": [ "# %pip install -q --progress-bar off rydopt # Uncomment for installation on Colab\n", "\n", "import rydopt as ro\n", "import numpy as np\n", "import jax.numpy as jnp" ] }, { "cell_type": "markdown", "id": "280c0ab3", "metadata": {}, "source": [ "First, we create the target gate." ] }, { "cell_type": "code", "execution_count": 2, "id": "6befcd94", "metadata": {}, "outputs": [], "source": [ "gate = ro.gates.TwoQubitGate(phi=None, theta=np.pi, Vnn=450, decay=0)" ] }, { "cell_type": "markdown", "id": "de09580e", "metadata": {}, "source": [ "We then implement the phase ansatz function from the publication." ] }, { "cell_type": "code", "execution_count": 3, "id": "597d6794", "metadata": {}, "outputs": [], "source": [ "def evered_phase(\n", " t: jnp.ndarray | float, _duration: float, ansatz_params: jnp.ndarray\n", ") -> jnp.ndarray:\n", " a, omega, phi0 = ansatz_params\n", " return a * jnp.cos(omega * t - phi0)" ] }, { "cell_type": "markdown", "id": "df41c40e", "metadata": {}, "source": [ "We use it and pre-defined constant ansatz functions to define a two-photon pulse ansatz. We first define the ansatz for the lower transition $|1\\rangle \\leftrightarrow |e\\rangle$, then for the upper transition $|e\\rangle \\leftrightarrow |r\\rangle$. We combine both ansatz objects in a `TwoPhotonPulseAnsatz`." ] }, { "cell_type": "code", "execution_count": 4, "id": "63d4b752", "metadata": {}, "outputs": [], "source": [ "lower = ro.pulses.PulseAnsatz(\n", " detuning_ansatz=ro.pulses.const,\n", " phase_ansatz=evered_phase,\n", " rabi_ansatz=ro.pulses.const,\n", ")\n", "upper = ro.pulses.PulseAnsatz(\n", " detuning_ansatz=ro.pulses.const,\n", " rabi_ansatz=ro.pulses.const,\n", ")\n", "pulse_ansatz = ro.pulses.TwoPhotonPulseAnsatz(\n", " lower_transition=lower,\n", " upper_transition=upper,\n", " lower_param_counts=(1, 3, 1),\n", " decay=0,\n", ")" ] }, { "cell_type": "markdown", "id": "5c7e9af3", "metadata": {}, "source": [ "We optimize the pulse parameters starting from 10 random parameter initialization. The initial values are chosen from a range specified by `min_initial_params` and `max_initial_params`. These tuples contain the min/max gate duration and parameters for the detuning/phase/rabi ansatz functions. Each parameter array is packed as `[*lower_transition_params, *upper_transition_params]`. The parameter `lower_param_counts` specifies how many entries per parameter array belong to the lower transition, see above.\n", "\n", "We assume the detunings and Rabi frequencies as fixed, using the values from the publication, and tune the other parameters to optimize the gate fidelity. All values are provided in units of $2\\pi \\times 1 \\text{ MHz}$." ] }, { "cell_type": "code", "execution_count": 18, "id": "1ab792c6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Started optimization using 1 process\n", "\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cbed6d4c36cb44d580dffdfab450bc9b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "proc00: 0%| | 0/300 [00:00 infidelity <= tol\n", "> parameters = (1.6591487674115752, [-7800. 7798.85769231], [ 0.69705774 4.83123983 -0.70452884], [237. 303.])\n", "> duration = 1.6591487674115752\n", "\n", "Fastest gate:\n", "> infidelity <= tol\n", "> parameters = (1.6591309313899778, [-7800. 7798.85769231], [ 0.69700364 4.83164103 -0.70422615], [237. 303.])\n", "> duration = 1.6591309313899778\n", "> one-sided bootstrap error on duration: 1e-07\n" ] } ], "source": [ "omega_l = 237\n", "omega_u = 303\n", "detuning_l = -7.8e3\n", "detuning_u = -detuning_l - (omega_l**2 - omega_u**2) / (4 * detuning_l)\n", "\n", "min_initial_params = (\n", " 1.0,\n", " [detuning_l, detuning_u],\n", " [0.5, 3.0, -1.0],\n", " [omega_l, omega_u],\n", ")\n", "max_initial_params = (\n", " 2.0,\n", " [detuning_l, detuning_u],\n", " [1.0, 6.0, -0.5],\n", " [omega_l, omega_u],\n", ")\n", "fixed_initial_params = (False, [True, True], [False, False, False], [True, True])\n", "\n", "result = ro.optimization.multi_start_optimize(\n", " gate,\n", " pulse_ansatz,\n", " min_initial_params,\n", " max_initial_params,\n", " fixed_initial_params,\n", " num_steps=300,\n", " tol=1e-7,\n", " num_initializations=10,\n", " num_processes=1,\n", " return_history=False,\n", " return_all=False,\n", ")" ] }, { "cell_type": "markdown", "id": "5f907fed", "metadata": {}, "source": [ "We plot the optimized effective two-photon pulse." ] }, { "cell_type": "code", "execution_count": 19, "id": "28e36400", "metadata": {}, "outputs": [ { "data": { "image/png": "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XnpGRESusclaqMuXL6d79+5WTeQLEBkZSWxsLNWrVy9oCE5La6Farzisg1fYVGfWU51ZT3VmPdWZ9YpDndliLVQXWwTSv39/AgIC6NOnD1999RWXL1/O03Hly5cv0cmbiIiISH7YJIGbMGECtWrVYsWKFQwaNIjAwEB69OjBvHnziIiwcg4pEREREbkhmyRwb775Jr///juHDx9m8uTJNG7cmO+//57hw4dTuXJlOnfuzCeffEJYWNjNTyYiIiIiN2STBC5dvXr1ePXVV9mzZw8nT55k2rRpBAcHs3nzZkaPHk3VqlVp27Yt77//PqdOnbLlpUVERERKDJsmcJlVr16dF154gW3btnH27Fk+/vhjOnTowK5du3jppZeoXbs2LVu25J133uHw4cP2CkNERESk2LFbApdZpUqVGDVqFJs2beL8+fPMmTOHbt26cfDgQcaPH0+jRo147733CiMUEREREadX6AsW+vv788QTT/DEE09w+fJlVq9ezYoVK4rUmqjr1q1j165d7N27l71792b03Ttz5kzG0F8RERERR3HoitMpKSm0b9+eRx991JFhZDNw4EBiYmIcHYaIiIhIjmz+CDUxMZFZs2Zxzz33UKVKFcqUKUOVKlVo06YN7777bpYJa1988UVq1apl6xAK7KGHHuKdd95h/fr1GRMGioiIiBQVNm2B27FjB/379+fcuXNZlsgKDw8nPDycXbt2MWXKFKZMmcLIkSMBiuRSWvPmzXN0CCIiIiK5slkCt337djp37kxiYiK1a9dm4MCBNG3alHLlyhEdHU1ISAjLli3j2LFjjB49mmPHjtnq0iIiIiIlik0SuISEBPr160diYiKTJk3itddeyzYooW/fvrz11lvMmzeP5557jg8++ABPT09bXF5ERESkRLFJH7jPP/+csLAwxo4dy/jx43MdUWqxWBg2bBjbtm2jYsWKxMbG2uLyIiIiIiWKTVrgvvvuO7y8vHjjjTfytH/Tpk1ZtGgR99xzjy0uX+TdaOqRsLAwAgICNFjCCpcuXXJ0CE5HdWY91Zn1VGfWU51ZrzjUWVpaGi4uBWtDs0kC98cff9CmTRvKli2b52M6d+7MunXrCA8Pt0UIALz88susWrXK6uPmzJlDu3btbBaHiIiIiD3ZJIG7dOkSAQEBVh9377332uLyGc6dO8eRI0esPs7ej3JDQ0Nz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7lPSnT17NuP/M6+fnpv0OmvWrBlbt27lwIEDOf6e/e233zAMg9tuuy3X+k934MABAJo0aZKnGK6XkpKCYRikpKQQERGRbcWH66WlpeHiUrCpeO2SwN16660O6SP28ssvs2rVKquPmzNnDu3a5T4KKDQ0lJ49exIbG0uvXr145ZVXChKmiIiI/KNevXq4ublx4sQJJk+ezCuvvJKxAMCNdOjQga1bt7Jz5066d++erTw9EYuPj7/puX799VcAOnbsaGX0jmOXBG748OEMHz6c3bt306pVK3tcIkfnzp3jyJEjVh8XGxuba1l4eDidO3fm77//5t5772Xp0qU3HIqck9DQ0FzLgoKCSEtLy3UNN8md6sx6qjPrqc6spzozJScnZ7RKurm53TApyUvCUlwFBQUxadIkXn31VSZPnszHH39My5YtCQgIoHLlynTr1i3HyXr79OnD22+/zU8//cS7776brbxFixb4+fmxb98+2rZtS4MGDXBxcWHIkCHcfffdGfuFhIQQGRlJcHAw1apVy/f7sFgsuLu7U6FChZv+exa09Q3stJTW0KFDGTVqFPfccw/vvPMOR44cKZRFYr/88ksMw7D61a1btxzPd+HCBTp16sTRo0fp0qULK1euxMPDw+7vQ0REpCQZN24cW7du5YknnqBy5crs3LmTJUuWMH36dLp27crSpUuzHdOsWTPuvPNOdu3axaFDh7KV+/r6smbNGjp37syJEydYtGgRCxYsyPZ484svvgDgmWeesct7sxe7JHCurq7MmjWLy5cvM2HCBG699VbKli2Lq6trtpdbER15c/HiRTp16sShQ4fo3Lkzq1atyrIEh4iIiNhO27ZtmTt3Ln/88QeXL18mOTmZiRMnArB69eocjxkzZgxgdoXKyZ133smPP/5IRERERqNN+/btM8qvXr3K4sWLqVy5MgMGDLDtG7IzuyRw1rR+pa99VpRERETQqVMn/vjjDzp37szq1auzTSIoIiIi9uPi4pKxIlJuU4v07duXtm3bMnv27HxNwjtz5kwiIiJ49913ne4Jm10SuLS0NKteRUlUVBSdO3fm4MGDdOnSRcmbiIhIIYuKiuLpp5/mueeeo0aNGowcOTLXfWfOnElCQgKTJ0+26hoxMTFMmTKF4OBgBg0aVNCQC13RfH7pQE8++SQHDhzAYrHg7++f603Tu3dvevfuXbjBiYiIlAA7d+5k/fr1PProo0ycOJGAgIBc923WrFm+pmPx8fHJmP/NGSmBu05UVBRgPgbOqdNkuho1aiiBExERsYPu3btnrHwkObNJAvfOO+/QpEkTevToke9zrF27lt9++41XX33VFiHl2+bNmx16fREREZGbsUkfuPHjx/PNN98U6BzLly9nwoQJtghHREREpFizyyAGEREREbEfm/WBW758eYEeP0ZERNgqFBEREZFizWYJXGxs7A2XpMoLa5eoEhERESmJbJLAnTx50hanEREREZE8sEkCV716dVucRkRERETyQIMYRERERJyMEjgRERERJ6METkRERMTJKIETERERcTJK4EREREScjBI4ERERESejBE5ERETEydgkgZs9ezanTp2yxalERESkBIuLi2PGjBl07NiRwMBASpUqRWBgIB07duSDDz4gPj7+pucICQnB1dWVZ5991qprx8TEUL58ee644w4Mw8jvWygUNkngRo4cyeuvv26LU4mIiEgJtWXLFurUqcMLL7zA7t27adKkCX379qVJkybs3r2bMWPG0LBhQ7Zv337D8zz77LOUKVOGCRMmZCuLjY3Fzc0Nb29vUlNTs5T5+Pgwbtw4du3axcKFC2363mzNZo9Q85IRi4iIiORk27ZtdOnShfDwcF544QXCw8PZuHEjixcvZuPGjYSHh/PSSy8RFhbGPffcw7Zt23I8z/Lly9m2bRujRo0iMDAwW/muXbtITU0lODgYV1fXbOWjR48mICCAcePGkZiYaPP3aSs2S+DOnz+fbdvTTz9Nhw4dbnjc8uXLGTx4MG+//TaRkZG2CkdEREScREJCAgMGDCApKYk33niD6dOn4+XllWUfLy8vpk2bxuuvv05SUhL9+/cnISEh27lmzJgBwLBhw3K81o4dOwBo06ZNjuWlS5dm4MCBhIWF8fXXXxfkbdmVzRK4o0ePZtsWFRXF1q1bc6xggE2bNtG/f38WLVrEhAkTuOOOOwgLC7NVSCIiIuIE5s6dy9mzZ6lVq1aOjz0ze/XVV6lduzbnzp1jzpw5WcpCQkLYvn07rVu3pn79+lnKFi1ahMViYfz48QC8/fbbWCyWjNfKlSsz9h0yZAgAs2bNKvibsxObJXAREREcO3Ysy7YLFy4AcO7cuRyPWb9+PQATJ07k888/JywsjDfffNNWIYmIiIgTWLVq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q2IWVGf5oDqznurMeqoz66nOrOfMdWaLJbcshg2awBISEqhTpw5hYWFMmjSJ1157LcelJQzDYN68eTz33HNcvXoVT09P4uLiSE1NLWgIhWbPnj20atWKWrVqcfz48QKfLz2BO3funA2iKxnSHzc784e3sKnOrKc6s57qzHqqM+sVhzpL71p1owaem7HJqquff/45YWFhjB07lvHjx+e6LpjFYmHYsGFs27aNihUr3rTlqyjy9PQEUJ81ERERcRibJHDfffcdXl5evPHGG3nav2nTpixatMhhC8AWxKZNmwCoV6+egyMRERGRksomfeD++OMP2rRpQ9myZfN8TOfOnVm3bh3h4eG2CMFmFi9eTP369WnRokWW7YZhsGLFCsaPHw/AU0895YjwRERERGyTwF26dImAgACrjyuKS1Ft2LCBRx99lKCgIG6//XZ8fX2JjIzk8OHD/P333wA888wzSuBERETEYWySwPn6+nLx4kWrj9uwYQPh4eEMGjTIFmHYxPDhw/Hx8WH79u3s27ePyMhI3N3dCQoKYvDgwTz55JM5TjkiIiIiUlhsksA1atSIHTt2EB8fn+fHqD///DPdu3cHKFIJXNu2bWnbtq2jwxARERHJlU0GMfTs2ZPY2FgmTpyYp/0PHjzI448/Tlpamk0n8hUREREpCWySwI0YMYKKFSsyffp0Jk+efMOkbNGiRbRp04Zz585lTMkhIiIiInlnk0eoZcuWZenSpXTt2pWJEyeycOFCHn300YyVGGJiYggJCWH58uUcOXIEwzAYM2YMUVFRLFy40BYhiIiIiJQYNltKq3379mzatIkBAwZw/PhxJk+enG0fwzDw9vZm6tSpjBgxgqFDh9rq8iIiIiIlhk0Xs2/bti3Hjh1jzpw5rF69mgMHDhAVFYWvry81a9akZ8+eDB06lCpVqgBmQqc+cCIiIiLWsclaqMuXL6d79+5WTeQLEBkZSWxsLNWrVy9oCE5La6Farzisg1fYVGfWU51ZT3VmPdWZ9YpDnRWZtVD79+9PQEAAffr04auvvuLy5ct5Oq58+fIlOnkTERERyQ+bJHATJkygVq1arFixgkGDBhEYGEiPHj2YN28eERERtriEiIiIiPzDJgncm2++ye+//87hw4eZPHkyjRs35vvvv2f48OFUrlyZzp0788knnxAWFmaLy4mIiIiUaDZJ4NLV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Gprvc6gPXBHg5uJGHb86jg7DaVxIvgBAoF+ggyNxHqoz66nOrKc6s57qzHrFoc4KOoAB9AhVRERExOkogRMRERFxMkrgRERERJyMEjgRERERJ6METkRERMTJKIETERERcTJK4EREREScjBI4ERERESejBE5ERETEySiBExEREXEySuBEREREnIwSOBEREREnYzEMw3B0ECVZqVKlSE1NpXLlyo4OxWmkpaUB4OKivz/ySnVmPdWZ9VRn1lOdWa841FlYWBiurq4kJSXl+xzO++6LiZSUlIybUfLm/PnznD9/3tFhOBXVmfVUZ9ZTnVlPdWa94lBnrq6uuLu7F+gcbjaKRfKpSpUqAISGhjo4EucRFBQEqM6soTqznurMeqoz66nOrKc6M6kFTkRERMTJKIETERERcTJK4EREREScjBI4ERERESejBE5ERETEySiBExEREXEymshXRERExMmoBU5ERETEySiBExEREXEySuBEREREnIwSOBEREREnowRORERExMkogRMRERFxMkrgRERERJyMErh8WLZsGXfffTd+fn54enrSpEkTpk6dSnJycr7Ot3fvXvr160fFihUpXbo0NWvW5Nlnn+XChQs3PO78+fOMHj2amjVr4uHhQcWKFenXrx/79u3LVxz2ZKs6CwkJ4d1336Vz585UrFgRd3d3/Pz8aN++PbNmzcr1fJs3b8Zisdzw9dlnn9nirdqMrersiy++uOl7X79+fa7Hl8T7rEaNGjetM4vFwqRJk7Ic50z32ZEjR5g5cyZDhgzhtttuw83NDYvFwltvvVWg8/744490796dChUqUKZMGRo0aMBrr71GbGzsDY87duwYQ4YMISgoCA8PD4KCghgyZAgnTpwoUDy2ZMs6S0tLY/v27bz++uu0a9eO8uXL4+7uToUKFejatStfffUVuU3TWtDPdGGy9X02ceLEm773w4cP53q8M9xneeXm6ACczfPPP8+HH36Im5sbnTp1wsvLi59++ol//etfrF69mg0bNlCmTJk8n2/58uU88sgjpKSk0KpVK2rWrMmePXv4+OOPWbZsGVu3bqVOnTrZjjt69Cjt27fnwoUL1KpVi969e3Py5EmWL1/OypUrWbp0KQ8++KAt33q+2arOUlJSaN68OQBeXl60atWKihUrEhoayo4dO9i6dSsLFy7khx9+wNfXN8dzVKxY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ro.characterization.plot_pulse(pulse_ansatz, result.params);" ] }, { "cell_type": "markdown", "id": "81354337", "metadata": {}, "source": [ "Finally, we compare the resulting gate duration against the result from the publication." ] }, { "cell_type": "code", "execution_count": 20, "id": "e84fd5ad", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gate duration (Omega*T / 2pi): 1.216\n" ] } ], "source": [ "duration = result.params[0]\n", "rabi_eff = abs(pulse_ansatz.evaluate_pulse_functions(0, result.params)[3].real)\n", "print(f\"Gate duration (Omega*T / 2pi): {duration * rabi_eff / (2 * np.pi):.3f}\")\n", "assert np.allclose(duration * rabi_eff / (2 * np.pi), 1.215, rtol=1e-3)" ] }, { "cell_type": "markdown", "id": "a4503dca", "metadata": {}, "source": [ "And calculate the infidelity resulting from the finite lifetime of the intermediate state." ] }, { "cell_type": "code", "execution_count": 21, "id": "683a9652", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average gate infidelity due to intermediate state decay: 0.029%\n" ] } ], "source": [ "pulse_ansatz_with_decay = ro.pulses.TwoPhotonPulseAnsatz(\n", " lower_transition=lower,\n", " upper_transition=upper,\n", " lower_param_counts=(1, 3, 1),\n", " decay=1 / (2 * np.pi * 110e-3),\n", ")\n", "infidelity = abs(\n", " 1 - ro.simulation.average_gate_fidelity(gate, pulse_ansatz_with_decay, result.params)\n", ")\n", "print(f\"Average gate infidelity due to intermediate state decay: {infidelity:.3%}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.14.3" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "07dc8b1e245c48198e0af4a7f1a4d736": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "0ce80c8e6a5f4d8ba9aab90a68028974": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "2b50c2ef21c346cca9fbc9a7dacc629c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "2de94a162d4e4c09a5857b4e05ac2d36": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "30d3f71132424b55845726cf0ed22e36": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "317c0ca1f6e54427acdd3488efb06a5f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_b96a1811b7214d7eaeb04f6841b99474", "max": 300, "style": "IPY_MODEL_efa549f8d5214976b059258de2489dd1", "value": 300 } }, "3695c835a82c40199095fd580162c573": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "39b2495f2024433cb62d8bcf2851ddd1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "476ae0d5b65745ca8916a2be06a5882f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_f1081fb13aa54736850e82f7626b6abf", "style": "IPY_MODEL_c0e7db6fb01e4dbb9e97436b1939243b", "value": "proc00: 100%" } }, "4be2cdf6b6704b08afbe65714ee1bbae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "4c2a4da2581e4910a12d2f7aea08c153": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "4e974fd36d7449dfb50545fc0ba24305": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "flex": "2" } }, "4ff13221379540499493f16484b807f8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "5249ab5e727d452cb548410fb4c3efd4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "flex": "2" } }, "539356bc08eb4ce9b3202ce05c029701": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "5e824275e33f4554a49ee06594b902fa": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "66978ae9e4fc44b0be0683f0b203ab27": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_5e824275e33f4554a49ee06594b902fa", "style": "IPY_MODEL_539356bc08eb4ce9b3202ce05c029701", "value": " 300/300 [00:19<00:00, 15.46it/s, infidelity=2.83e-09, converged=8/10]" } }, "67fb0b9e60074239af838b991908be8a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_9ab44afa818b4396bd932979dcf60080", "IPY_MODEL_f896bdc7bce74166880a67bbd9fc7b7b", "IPY_MODEL_866321759e7d4c9499bd44e8dd3eb492" ], "layout": "IPY_MODEL_8d27c1440b604139a57608815667eff1" } }, "7d7008740ef549c6a09958fd38afd9ea": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c2668e7cad604cdabbf572b3a330e761", "IPY_MODEL_b44202c182264de495583a009ffa10ae", "IPY_MODEL_ed643b6996ec45429d13643f7b3f96f2" ], "layout": "IPY_MODEL_8b47212aed29495e9f72bd5a29e4311e" } }, "81613714f6d248ee814e98f36f9f3e4c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "flex": "2" } }, "866321759e7d4c9499bd44e8dd3eb492": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_0ce80c8e6a5f4d8ba9aab90a68028974", "style": "IPY_MODEL_39b2495f2024433cb62d8bcf2851ddd1", "value": " 300/300 [00:31<00:00,  9.61it/s, infidelity=8.92e-09, converged=6/10]" } }, "8b47212aed29495e9f72bd5a29e4311e": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "display": "inline-flex", "flex_flow": "row wrap", "width": "100%" } }, "8d27c1440b604139a57608815667eff1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "display": "inline-flex", "flex_flow": "row wrap", "width": "100%" } }, "8d53741a3b1448d3bdc1ec7db35178a3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "94713bf6ba9b48d38259a4f8daf61d87": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "display": "inline-flex", "flex_flow": "row wrap", "width": "100%" } }, "9ab44afa818b4396bd932979dcf60080": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_a70e96d7996a4c8398dbe566a1009630", "style": "IPY_MODEL_2b50c2ef21c346cca9fbc9a7dacc629c", "value": "proc00: 100%" } }, "a70e96d7996a4c8398dbe566a1009630": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "ad9090fbaf5b4ca1a77ca3818e5b439b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_3695c835a82c40199095fd580162c573", "style": "IPY_MODEL_4be2cdf6b6704b08afbe65714ee1bbae", "value": "proc00: 100%" } }, "b44202c182264de495583a009ffa10ae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_5249ab5e727d452cb548410fb4c3efd4", "max": 300, "style": "IPY_MODEL_2de94a162d4e4c09a5857b4e05ac2d36", "value": 300 } }, "b96a1811b7214d7eaeb04f6841b99474": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "flex": "2" } }, "c0e7db6fb01e4dbb9e97436b1939243b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "c2668e7cad604cdabbf572b3a330e761": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_8d53741a3b1448d3bdc1ec7db35178a3", "style": "IPY_MODEL_f7c5af0a3ce24748b736eef4c378663b", "value": "proc00: 100%" } }, "cbed6d4c36cb44d580dffdfab450bc9b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ad9090fbaf5b4ca1a77ca3818e5b439b", "IPY_MODEL_317c0ca1f6e54427acdd3488efb06a5f", "IPY_MODEL_66978ae9e4fc44b0be0683f0b203ab27" ], "layout": "IPY_MODEL_94713bf6ba9b48d38259a4f8daf61d87" } }, "d1b70fcaac634c7ba47cad66be6eb0d4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "d36aff1ee821417e9f0dd9cde642d5e4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_81613714f6d248ee814e98f36f9f3e4c", "max": 300, "style": "IPY_MODEL_4c2a4da2581e4910a12d2f7aea08c153", "value": 300 } }, "d406e0d817e847e2ae908adc5e32c909": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_476ae0d5b65745ca8916a2be06a5882f", "IPY_MODEL_d36aff1ee821417e9f0dd9cde642d5e4", "IPY_MODEL_d4a9d38028024fb8903db6a087f8d6d5" ], "layout": "IPY_MODEL_e3ef3fd25f8745299c81a0c0a63a8b17" } }, "d4600fafa59d481e951db2d82198ce66": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "d4a9d38028024fb8903db6a087f8d6d5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_30d3f71132424b55845726cf0ed22e36", "style": "IPY_MODEL_07dc8b1e245c48198e0af4a7f1a4d736", "value": " 300/300 [00:19<00:00, 15.52it/s, infidelity=8.92e-09, converged=7/10]" } }, "e3ef3fd25f8745299c81a0c0a63a8b17": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "display": "inline-flex", "flex_flow": "row wrap", "width": "100%" } }, "ed643b6996ec45429d13643f7b3f96f2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_d1b70fcaac634c7ba47cad66be6eb0d4", "style": "IPY_MODEL_d4600fafa59d481e951db2d82198ce66", "value": " 300/300 [00:25<00:00, 11.55it/s, infidelity=2.83e-09, converged=8/10]" } }, "efa549f8d5214976b059258de2489dd1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "f1081fb13aa54736850e82f7626b6abf": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, "f7c5af0a3ce24748b736eef4c378663b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "description_width": "", "font_size": null, "text_color": null } }, "f896bdc7bce74166880a67bbd9fc7b7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_4e974fd36d7449dfb50545fc0ba24305", "max": 300, "style": "IPY_MODEL_4ff13221379540499493f16484b807f8", "value": 300 } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }