{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Two-Level: Sech Pulse 4π — Pulse Breakup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the Problem\n", "\n", "First we need to define a sech pulse with the area we want. We'll fix the width of the pulse and the area to find the right amplitude.\n", "\n", "The full-width at half maximum (FWHM) $t_s$ of the sech pulse is related to the FWHM of a Gaussian by a factor of $1/2.6339157938$. (See §3.2.2 of my [PhD thesis](https://github.com/tommyogden/phd-thesis))." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "t_width 0.3796628587572578\n" ] } ], "source": [ "import numpy as np\n", "\n", "SECH_FWHM_CONV = 1.0 / 2.6339157938\n", "t_width = 1.0 * SECH_FWHM_CONV # [τ]\n", "print(\"t_width\", t_width)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "mb_solve_json = \"\"\"\n", "{\n", " \"atom\": {\n", " \"fields\": [\n", " {\n", " \"coupled_levels\": [[0, 1]],\n", " \"rabi_freq_t_args\": {\n", " \"n_pi\": 4.0,\n", " \"centre\": 0.0,\n", " \"width\": %f\n", " },\n", " \"rabi_freq_t_func\": \"sech\"\n", " }\n", " ],\n", " \"num_states\": 2\n", " },\n", " \"t_min\": -2.0,\n", " \"t_max\": 10.0,\n", " \"t_steps\": 240,\n", " \"z_min\": -0.5,\n", " \"z_max\": 1.5,\n", " \"z_steps\": 100,\n", " \"interaction_strengths\": [\n", " 10.0\n", " ],\n", " \"savefile\": \"mbs-two-sech-4pi\"\n", "}\n", "\"\"\" % (t_width)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from maxwellbloch import mb_solve\n", "\n", "mbs = mb_solve.MBSolve().from_json_str(mb_solve_json)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll just check that the pulse area is what we want." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The input pulse area is 3.986854595865458\n" ] } ], "source": [ "print(\n", " \"The input pulse area is {0}\".format(\n", " np.trapezoid(mbs.Omegas_zt[0, 0, :].real, mbs.tlist) / np.pi\n", " )\n", ")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "Omegas_zt, states_zt = mbs.mbsolve(recalc=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot Output" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKoAAAIoCAYAAABJSAP6AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAekBJREFUeJzt3Qd4VGX2x/GTQkJCAiQhdFcEVkAWEUFFRcQuiquguDawl1VwV7GBu4ptccHd/YvYUHABXUUQURBQEbsIShUQpCiIlPTey/85b5hhJo1Jcmfmzsz38zx5MuWdmTt3JjeZX8573rDKyspKAQAAAAAAAPws3N8bAAAAAAAAACiCKgAAAAAAANgCQRUAAAAAAABsgaAKAAAAAAAAtkBQBQAAAAAAAFsgqAIAAAAAAIAtEFQBAAAAAADAFgiqAAAAAAAAYAsEVQAAAAAAALAFgioAAAAAAADYAkEVAAAAAAAAbCHS3xsAAACAui1YsEDGjx9f5/Wff/65tG/f3pyuqKiQ0047TW6++WY55ZRTZOHChbJq1Sr57bffpHXr1tK3b1/561//Kscccwy7HAAA2BJBFQAAAWDUqFGyevVqt8vCwsIkNjZWunTpItdff71ceumlDbrPs88+W04++WR5+umnGz3moYceknfffbfO2z/77LNy4YUXNmi7Qt3MmTNly5Yt8swzz7hdfvfdd0vnzp1rjG/VqpXz9MaNGyUzM1OGDBkizz33nKxdu9bs/x49ekhqaqq88cYbMmLECJk7d64ce+yxDd626667Tq655hq56KKLGvnsAAAA6kdQBQBAgDjuuOPk0UcfdZ4vLy+XAwcOyH//+1954IEHTMXMmWeeaeljTps2TeLi4uodk5ycbMbVRkM0eG7nzp3y8ssvy/vvv1/jusGDB0ufPn3qvb1WV3Xq1El+//vfyw033GDCrqioKOf1GjBdcsklMn369BpBmCcmTJjgrNZKSkpq8O0BAACOhKAKAIAAoYHRCSecUGuAceqpp5opYlYHVRqOHYkGIbVtFxpuypQpMmzYMGnXrl2jdp8GVY73wIknnlhrcKgh1q5du9wunzhxorz55pv13vcnn3xi3g/HH3+8vPjii/K3v/2tUdsIAABQH5qpAwAQ4KKjo01YpFMBHYqKiuRf//qXnH/++fKHP/zBhBY33nij/Pjjj263LS0tlSeffFJOOukkGTBggDz44IOSkZHhNvVPp/c1ld7PP/7xDzNFUYOOhx9+2HndvHnz5OKLLzbb6ZiyptViDtp36fnnnzfXaY+lO+64Q5YuXWqms+3du9eM0dN6O1d6Xi+v7kiPp9s6depU+ec//2n6Pen2ahXRL7/84hxTWVlpKtmGDh1qrj/vvPNkxowZ5nKlt9XLc3Nz3R77hRdekP79+0thYWGN7frpp5/ks88+M0FVY+jUPp0yWF9YqduXlpYmCQkJbpdfcMEFZnu1Om7y5MnOr6OOOkq6d+9u3kuOaYdakTV//ny39wkAAIBVCKoAAAgQGjKUlZU5v4qLi01ljDbazs/Pd+tRpVMB33nnHbnttttMzyMds337dhk3bpwzTFEa+GzevNn0oNKQSoOSW2+91S248YTrdjm+XB9HaX8knbqmYc0VV1xhLtNpbn//+99NRdhLL70k1157rbzyyivmMgcNTPQ2l19+uQmVWrZs6TYFsiE8eTw1e/Zss28nTZpkgrxNmzaZ/eO6TfqloZbejz4fnUqnU+qUntfXZ9myZW73+95775npdzExMTW2bdGiRSYoamx1mlZTaWg5cODAOsfolMKDBw+agM2V7g8NLXv16mXeR46v7OxsE6y5hmf6nPX98fHHHzdqOwEAAOrD1D8AAALEd999J71793a7TKuotCm2Ni0/66yzzGUlJSUmuNKpWY6m19oQPS8vzwRSWlGjgYjSyhqtBNKm7I7zd911l3zxxRfO+zsSXVGu+nYpDcU0KHPo2LGj3Hfffc7zWm2kAdSf/vQn5zSyQYMGmV5bel4rwNq2bSuvv/66jB49WsaOHeuc6qjXffPNNw3af548nk6LUxqG6diIiAhzfs+ePSYk00blepkGWdpY/P777zfXa+WVVjTpa3T77bdLt27dpF+/fiaYGjlypBmjjc21KquuxvTffvutCfJcK+MaQl8z7R3VvHnzOvtfPf7442a7hg8f7nadBk8azOnzcNi/f7/k5OQ494mDvlf0+a1cudLsSwAAACsRVAEAECA0DHrsscfM6ZSUFPm///s/UwWj37t27eocp9MANXxSWj3z888/m4Dk008/dQZZDjpNzBFSOaplIiMjTeDiaVCloZf2LKquffv2bue1WsfVunXrzBRFfUytwHLdBvX111/LMcccY57jOeec43bbP/7xjw0Oqjx5PEcoo4GRI6RyfS46ZW/Hjh3m9jqt0lX1nk1aAaaVWhrkaYNzXR1Rn48GRbX59ddf67zuSHQf6fbfe++9tV6vIZoGaPHx8SbUdH1uavfu3aYCzDWU0qmIqnpQpfT5OKZdAgAAWImgCgCAANGiRQu3Vd+0X5MGNjfddJNppJ6YmOi87ssvvzQ9obRKRm/Xs2dPZyDlOiXPUVnlEB4ebqqqtJLGUxqMHWk1OuUaiKmsrCzz3bXqypWGcY7n5PrcVGOajXvyeA7Vp+bpfnH0y3LcT/Vtqk6r2fQ10Koq7XGl0yzremylFW+1TQn0xJo1a8zta+tPpZVkOp1Tv+v0y9r2nU4LrR5Kbdu2zXzXir3qdDur998CAACwAkEVAAABqk2bNvLII4/IX/7yF3nqqadMw2vHNDWdvnfuueeankzaEFunk2lIoQGWK0fo4joFTKe3JSUleX37dXqd0t5Ouhpdbc9Pq5dUenq6W9VY9e1W1ftqFRQUNPjxGrLd2kzcdZv27dtn9r32dGrWrJkJCC+88EITUGnYo9vj2kesOp2C2NjwR/tTadNzR8NzB62S0ubzWlH32muvmTG10aBKwzid0ucaVOn7oLZAToPM6g3ZAQAArEAzdQAAApgGIWeccYYsXrxYVq9ebS7Txt8aUGj1zu9+9ztnzyNHSOVaUaXTxVynwX344YfmvPY68jatCNNAR6cnakWW40unHv773/82U8t0KpxW71RvSr5ixQq383FxceZ+XGlPqIY+nid0dTy9H8dUSgdtWq9T71yn1WlTdZ1CN2vWLNP/qb5KMJ1Op32hGhtUVa+m0uDur3/9q6xfv95M96tvWqFuo4ZcrhVdOmW0rmDrwIEDZnsBAACsRkUVAAABbsKECWYKoK5Op32QtJeVhi9Tpkwx0wK1J5VODdQV/apXGmnvIm1SPmrUKFN1o4HN6aefblaB8zatyLnllltMiKLT1jQc0xBJz2u4ptMVNYDS6jDdLm0SrtulgduSJUvc7mvIkCHywQcfmDDq6KOPNs9X+y419PE8oRVG2tz9v//9r5n2qI3qN2zYIG+++aZZbdExTVBpdZX2pdIQ8T//+U+996v7/X//+58JEhvSUF17W2mj9IkTJ7pdrk3bNdDTXmNagaZTEF25VndpRVX1UErfG7rPtXrKUUWmtOpLx+t7CwAAwGoEVQAABDidfqZBk1b0aFiiq9HpNMBp06bJn//8Z2nVqpWccMIJMmfOHDPu+++/lx49epjbXnPNNSZ40DBIQ5dLLrnErGTX2JXnGkorfrRPlgY0r776qtlWDaO0Mkkbfyvtr6TT6PT56Wp7Gv7odLbnn3/eeT/jx483lWD//Oc/TUin/aF01cHqDc49eTxP6D7SaXFvvfWWuR+tRtLG6VdddVWNsRqi6TRBnYpZH23Ors9p48aNJnBryGp/uu0nnnii2+Vbt24137Xyq3r1l2tQpUGmTlms3hxeV1d8//335eGHHzYrHjpoUKgVZfq8AAAArBZW6Vr/DwAAEAC0YkrDqU8++aRGXyY70T+zLr74Yhk0aJCpfDsSDeC08mvSpEkeP4YGedqoXivDfOH66683Pbc0wAIAALAaPaoAAAAsplMLtaJNgyedmqeVbJ6455575KOPPjKN2T2lUw9vuOEG8YUffvjBVGrVt3ohAABAUxBUAQAAWEx7O+m0QA12/vGPf5iVFz2hUzJvv/12szJhQyqq6muUbiWt9NIpjjp9EgAAwBsCcuqf9lIYMWKE+UOprlWJtCdH9RWBXnrpJdNQVGkD1BkzZpj/eA4dOtTcl+tKNwAAAAAAABCzSM3jjz9uVlXWHp/aE1UXqanNli1b5NFHHzWrCutiLY899pj84Q9/CN6KKl1uWxue6moz9dHVb3S1o6+++sr5pavpOJbe1nJ83cm6XLSu1KNjAQAAAAAAcFhFRYWZ9q99NHWFaQ2eXnzxRVm0aJFUp6tL69gBAwaYnqJa9a3V4q6rTgdVULVjxw658sorzco0R6q42rt3r/Tp08eUpju+dDUjpSsGaSNQra46/vjjzU5+5513pLCw0EfPBAAAAAAAwP7S0tKkV69eMnHiROnSpYuceeaZZtXkNWvW1Bi7ZMkSiY6OlgceeEC6detmFl/R1ZuXLVsWnEHV6tWrzVS/uXPn1jtu165dZlnt2vpBlJeXm34Rmu456JLdpaWlzmWcAQAAAAAAINK2bVv5v//7P4mLizMrGmtA9d1335kFXarTGWv9+/c3mYzS7yeeeKKsX7/e410ZGUg7/ZprrvFonAZVugM1wdNwq3379jJ27FiT+uXk5Jjpg7qjHSIjI6V169Zy4MABL249AAAAAACAPZSUlJgvVzoTzTEbrTZnn322WZ1YZ6hdcMEFNa5PTU01falcJSUlHbF9U8BWVHlKg6qioiIZNGiQvPrqqyag0ubqWkmll6vqO17PV3+BAAAAAAAA/GF/eq5X719nlukUPq2Acny9/PLL9d5m6tSpZqG6H3/80awGXJ22VGpq3hJQFVWeuvPOO2XUqFGmE73q2bOnbN68Wd5++2255557zGXVd5Keb+iqf5kF5RZuNWC99LziOq/LyK15oNidd7jB3Y60wz3bdqUdvnz3waqD5f597gfNjIMZdT5WYrtE5+kOHeOdp49uV3W6a5tY52Xd2xz+OTw6LrbmfcXXne4nxUXXeR0AWHX8tEptx+FgUt/x2ioc9wEgNCTERkgo6pAUL91HPCM5+db/XdKyRbTsWHCfrFy50u3y+qqplPYCVzpT7b777jMz2Vxvo/2pastbmjdvHtpBVXh4uDOkcujatatpxq5T/HTHaTMwbeylysrKJCsryzRcB4JJRWXd15XXcl2Zyw2KyyucpwtLD58uKKkKaPOKy9xum1tYWudjRbmMddze9X5dH8t1G2rbxvqeEwBYxRfHmtqOccGE4zUAAE2Xk18suQXe+weatk06Es1PtMfUueee67xMp/dpRVZeXp4kJh4uTGjXrp0ZX/32ru2XQnLq30MPPSTjx493u0wbpWtYpSGWJoCu3el1h2ufKq28AgAAAAAAQJW9e/fKmDFj5ODBg4cuEdm0aZMJqFxDKtW3b19Zt26dabqu9PvatWvN5SEXVGnDLkf/KW3utWjRIlm4cKHs3r1bpk2bZoKp6667ztmUfcaMGbJ8+XLZuHGjWWLxyiuvbPDUPwAAAAAAgGDWp08f6d27t0yYMMHMVPv8889lypQpcscdd9TIYy688EKziN1TTz1lxup37Vs1dOjQ0AuqtHH6kiVLzOnzzz9fHn30UXnxxRdl2LBhsmLFCtNUvXPnzub6iy++WG6//XZ55JFH5KabbpLjjz9e7r//fj8/AwAAAAAAAHuJiIiQF154wRT3/OlPf5KHH37Y9AUfPXp0jTxGpxJqQ3YtFhoxYoRs2LBBpk+fLrGxNfsP1yWs0lGPhQajmTrsLjW37rnM6bU08f0lN995eluqS2P1lMOnfzmQY77/9luO+/3tT6/zsZI6JDlPd+rU0nm6S/uq093bHj5o9Ug+fLpLfIua91VPc97keJqpA/D+8dMqtR2Hg0l9x2urcNwHgNAQqs3UVdsLnvJKj6r42GhJ+fBhsaOgqagCAAAAAABAYCOoAgAAAAAAgC0QVAEAAAAAAMAWCKoAAAAAAABgCwRVAAAAAAAAsAWCKgAAAAAAANgCQRUAAAAAAABsgaAKAAAAAAAAtkBQBQAAAAAAAFsgqAIAAAAAAIAtEFQBAAAAAADAFgiqAAAAAAAAYAsEVQAAAAAAALAFgioAAAAAAADYAkEVAAAAAAAAbIGgCgAAAAAAALZAUAUAAAAAAABbIKgCAAAAAACALRBUAQAAAAAAwBYIqgAAAAAAAGALBFUAAAAAAACwBYIqAAAAAAAA2AJBFQAAAAAAAGyBoAoAAAAAAAC2QFAFAAAAAAAAWyCoAgAAAAAAgC0QVAEAAAAAAMAWCKoAAAAAAABgCwRVAAAAAAAAsAWCKgAAAAAAANgCQRUAAAAAAABsgaAKAAAAAAAAtkBQBQAAAAAAAFsgqAIAAAAAAIAtEFQBAAAAAADAFgiqAAAAAAAAYAsEVQAAAAAAALAFgioAAAAAAADYAkEVAAAAAAAAbCHS3xsAAAAAAACAmpp17CrNCkst3zXNYprZdndTUQUAAAAAAABbIKgCAAAAAACALRBUAQAAAAAAwBYIqgAAAAAAAGALBFUAAAAAAACwBYIqAAAAAAAA2EJABlUlJSUybNgwWbVqVZ1jPvvsM7n00kulX79+cskll8gnn3zidv2AAQOkR48ebl/5+fk+2HoAAAAAAADUJlICTHFxsYwbN062b99e55itW7fKmDFj5IEHHpAzzzxTvvrqK/nLX/4i8+fPl549e8rBgwclNzdXli9fLs2bN3feLjY21kfPAgAAAAAAAAEdVO3YscOEVJWVlfWOW7x4sQwcOFBGjx5tzh999NGyYsUKWbp0qQmqdu7cKcnJyXLUUUf5aMsBAAAAAAAQVEHV6tWr5ZRTTpF77rlHTjjhhDrHDR8+XEpLS2tcrlVUjsDrmGOO8eq2AgAAAAAAIIiDqmuuucajcd26dXM7r9MEV65cKVdddZU5rxVVhYWFMmrUKPn555+lV69eMmHCBMIrAAAAAAAAPwrIZuoNkZGRIWPHjpUTTzxRzjnnHHPZrl27JDs7W/785z/LCy+8YPpU3XDDDZKXl+fvzQUAAAAAAAhZAVVR1VBpaWly4403mp5WU6dOlfDwqlxuxowZZmpgixYtzPlnnnnGNF3/9NNPzQqBAAAAAAAA8L2gDap0ZT9HM/XZs2dLYmKi87qoqCjz5RAdHS2dO3c2twEAAAAAAIB/BOXUv4KCArnllltMBdXrr78u7dq1c16n1VXnnnuuLFiwwG387t27pWvXrn7aYgAAAAAAAARNRVVqaqrEx8ebflMvv/yy7NmzR+bMmeO8Tul1OmbIkCHy3HPPSadOnUyl1bPPPivt27c30/8AAAAAAADgH0ETVA0aNEgmTZokI0aMkA8//FCKiopk5MiRbmOGDx8uTz/9tNx///0SGRkp48aNMw3UBw4cKNOnT5eIiAi/bT8AAAAAAECoC9igatu2bXWeX7ZsWb231Z5UDz30kPkCAAAAAACAPQRljyoAAAAAAAAEHoIqAAAAAAAA2AJBFQAAAAAAAGyBoAoAAAAAAAC2QFAFAAAAAAAAWyCoAgAAAAAAgC0QVAEAAAAAAMAWCKoAAAAAAABgCwRVAAAAAAAAsAWCKgAAAAAAANgCQRUAAAAAAABsgaAKAAAAAAAAtkBQBQAAAAAAAFsgqAIAAAAAAIAtEFQBAAAAAADAFgiqAAAAAAAAYAsEVQAAAAAAALAFgioAAAAAAADYAkEVAAAAAAAAbIGgCgAAAAAAALZAUAUAAAAAAABbIKgCAAAAAACALRBUAQAAAAAAoE4HDx6Uu+++W04++WQ544wzZNKkSVJcXFz3DURk79690q9fP1m1apU0RGSDRgMAAAAAACBkVFZWmpCqZcuW8sYbb0h2drZMmDBBwsPD5cEHH6zzdhMnTpSCgoIGPx4VVQAAAAAAAKjVrl27ZP369aaK6ve//70MGDDABFeLFy+u/QYi8v7770t+fr40BkEVAAAAAAAAapWcnCyvvvqqtGnTxu3yvLy8WsdnZmbKlClT5PHHH5fGYOofAAAAAABACMqrFjZFRUWZL1c65U/7UjlUVFTI66+/LgMHDqz1Pp9++mkZPny4qb5qDIIqAAAAAAAAG0pslyhRxWWW329cdFUcNHjwYLcpemPGjJGxY8fWe1utltqyZYvMnz+/xnXffPONrFmzpt5pgUdCUAUAAAAAABCCvvjiC7fz1aupagupZs2aJf/5z3/k2GOPdbuuqKhIHnnkEXn00UelefPmjd4mgioAAAAAAIAQFBcX5/HYJ554Qt58800TVl1wwQU1rt+4caP8+uuvptG6q1tvvVUuu+wyj3tWEVQBAAAAAACgTtOmTZO33npL/v3vf8uFF15Y65jjjz9ePvroI7fLzj//fHnyySfl9NNPF08RVAEAAAAAAKBWO3fulBdeeEFuu+026d+/v6SmprqtCKjn4+PjzXS/o48+usbt27VrJ0lJSeKpcI9HAgAAAAAAIKR88sknUl5eLi+++KIMGjTI7Uvp9yVLllj2eFRUAQAAAAAAoFZaSaVfddm2bVujrqsLFVUAAAAAAACwBYIqAAAAAAAA2AJBFQAAAAAAAGyBoAoAAAAAAAC2QFAFAAAAAAAAWyCoAgAAAAAAgC0QVAEAAAAAAMAWCKoAAAAAAABgCwRVAAAAAAAAsAWCKgAAAAAAANgCQRUAAAAAAABsISCDqpKSEhk2bJisWrWqzjFbtmyRkSNHSt++feXyyy+XTZs2uV2/ePFiOffcc831d911l2RkZPhgywEAAAAAAFCXgAuqiouL5d5775Xt27fXOaagoEBuu+02GTBggCxYsED69esnt99+u7lcbdy4UR5++GEZM2aMzJ07V3JycmT8+PE+fBYAAAAAAAAI6KBqx44dcuWVV8qePXvqHbdkyRKJjo6WBx54QLp162ZCqRYtWsiyZcvM9a+//roMHTpULrvsMunZs6dMnjxZPv/8c/n111999EwAAAAAAAAQ0EHV6tWr5ZRTTjFVUPXZsGGD9O/fX8LCwsx5/X7iiSfK+vXrnddrtZVDhw4dpGPHjuZyAAAAAAAA+EdABVXXXHONTJgwQWJiYuodl5qaKm3btnW7LCkpSQ4cOGBOp6Sk1Hu9pzLSUp2n09NSJTcn25wuKyuTlIP7paSk2JwvyM+T1JSDzrGZGemSk51lTpeXl5uxxcVFVWML8iXl4OHtyMrMkOysTHO6oqLCjC0qKjTnCwsLzPnKykrnWP1Seplep2OU3kbP630ovU/HWLNPDh4wj610W3SsbpvSbdVtdu7flIPmOSl9jjpWn7PSfaD7wiEtNUXy83LN6dKSkqqxpaXmfF5ujttYsw9zc6r2YWnpoX1YYs7rfaS57MOM9LQa+1unhTr3t8s+rHV/F7nu7/317+/Cqv2t3133d819uF8KC+re3277UPd3vmN/F7vtb31e+vyc+zDloOTnOfZ3ifv+rr4PU1Mkz7G/S0slI/Wgc3/rfsnKODw2LztdigqqxpaXl0lORopUlFWNLSsqEMmv2g+qWUmuRJZWPbewygqJL8+VZlK1vc3DSiUxouo6lRBVKi2bVd1PmFRK2+bFEhVWtb3RYaXmts77Lc2TyNKq/SC6X/MypLyk6rXR77pNlYf2YUFutuTnHN4mfW5Fh97fJcVF5nyd71mzv/Pc9rfre7bm/s5139+H9mGN/Z2Wat7Hru9ZfZ8737OpKW5jOUZwjLDbMcK8Zx3H5Lxcc73be9bx/nb+XnO8v/PqPCYf/r3mOCbn1zgm1/l7raDq91ptx2TH77Xqx+S6f6/tP/x7regIv9dqOUbocdE819wcyc48PDYzPUUKD40tLS2pOs4eOnYW5OVKdsbh10ZP62VV+9BxTK7ah3ofuZlp7sfkfPdjsmNscWG+5GYefh31WFiYV/XaVFSUm7Glh/7mKCkqMOddxxbkVb02ejw1Yw/9zVFSXFh1nD30e60gN8t8Ofa3XqdjzHMtrnZMznM/Jpux+rvD/L4vrvqdcmh/5+dmS07W4dcmMy1FCg+9NnrMNMfvQ+/Z/Lwct32YlZ7q3N9ltexv/o7gGOGvYwR/R/BZw3lMC+HPGr76OyLdZSxCQ0AFVZ4qLCyUqKgot8v0vOMHo6ioqN7rPfXBe/Odp5ctelfWfvetOa0fXN+aPUNSDlQdlH7c/IMsmDvHOfbjJe/L6pVfVW1LYYEZu29v1bTD7Vt/lLffeM059tOPlsjKLz81p/UgoGN/3f2zOf/zzu3mvONg9uWnH5svpZfpdTpG6W30vONAovep9+2gj6mPrXRbdKwjBNBt1W120Oeiz0npc9Sxjg/rug90Xzi8N/9N+WHDWucBSMc6Drgb1n0vi999+/D+XDhPNqxZbU5nZ2eZsY6D3eYf1svC+W86x364eKF8v+obc1r/cNCxB/f/Zs5v3bJJ5r812zl2+bJFsurrL5whnI79bW/V9NGdP22VuXNmOsd+tnyZfP35CnNa/2jWsbt/2WnO/7JrhznvOMh/9dly+WLFR87b6nU7d2wzp/fu2W3Olxw6wH771eey4qMPnGPnvTlLftq62Zw+sG+vGev4Y+m7lV/JR0veO7y/335DtmyqqvZLSzlgxjoO5Ou+WyVL33/HOfb9BXPlh3Xfm9OZGWny4TuznR8OdmxeJ18sWeAcu+HLJbL7x3XmtH44+nbpm1KcXfULLufXn0S2VO0H1T5ljSRm/SS/HMiRqMoSGVj0nSRHVv1CO6ZZhgyN2+oce177NDk9ueoXcHR4hYw6Zp+0j6z6hfa7Zlnmtg7JaT9IcvqhhQ4qKyTsh2WSf7DqZyE/5TezTeUVVft7+/qvZOv3nzlv+9GCObL355/M6ZT9e81zdQS++nrr6+6g7wd9Xyh9n5j9fegPTn0f6fvJQd9n+n5T+v7Tsfp+NPtszWrzPnXQ96++j5W+r3Ws4xe/vu/1/e/AMYJjhB2PETpWv5v37LrvzfUOeju9vdL707F6/0ofTx/X+fO45D2zXUq3U8fqdit9Hvp8HPR56vNV+vx1rO4PpftHzzvoMVaPtUqPvXqdHouVHpvNMfnQH9N67NZjuIMe2/UYr/SYr2M9OUb8tOsXM7bw0B/4P65fJSs/Wewc+9kH82Xn1qrfgdnpqebYk39of2/7YY18+eHh48kXy96VnzZXHWdzszPNWEfotXH9Wln76eHXceNXS+WXH9eY08UFeeb45wic9v28Vb5bfvh13LTyI9m1abUzQNKxWan7qt4vu7fLqg8P/2798btPZcf6qt+X5eWlZmz6garjbOren815x98R29Z8Yb6UXqbX6RiltzHH5PKqvyP0PvW+HfQx9bGVbov5nXIogNy0ZqV8++nhvzlWLJorv/xU9f7OSD1g9kvBoZBu6/rv5Ovlh1+bz5bMlx1bqt7fuu90rO5L81ptXsffERwjfH6M4O8IPmvwWcP3f0e8O/9/zrEIDWGVjr9OAkyPHj1k9uzZZipgddpI/dhjj5X77rvPedmUKVNk586d8tJLL8kJJ5wgU6dOlcGDBzuv1xUCL7roIrnxxhs93oadew5IYptkZ2KsYVd8y1YmMc5IT5XWCYkSFRVtPhDn5+dLctt2Zqym3REREdKyVWvzSzU9LUVatU6Q6Ojm5gczLzdX2rZr7/zwq1MX9XpNzNNSD5rbNW8eY6ql9Ic+uW17M8YRAOnj6suamnLAbE9MTKxJ3TXpb5PcTsLDw03qrmN0rKOiKi4+XmJjW5hf0np9Upu2Zjv1drqdCYlJzooq7fkV2yLOVFTp4yYmJUtkZKTZHg38kg7tF60o0Qq4FnHx5r+mmZnpkpjYRiKbNTPhliblSa77MDpa4uNbmuqUjIw0aZ2QZParVqfofxDaHNqHGgY0a9bMbX+3ap1oepOZ/Z2XJ8mH9mGt+7tVgkQ3d+zvHGnbrkPd+7tla2keE2P+y5GTk+Xc3zX34X6Jj28lMbG172+9P+c+PHjA7JPYFrq/iyU7K8O5v3UfaqCYmNSmah+mHJSY2BbSIk73d4lk6T507O/cHPNBz7kPU1MkOiZG4nR/l5bKrl/3S8vWiWZ/637R/4y3Tqwau3vvfolsFiXNY+PNf+/zszMkLSxKwiObmYqqnQcyRVokHBp7UCrDImRHepmpqIqryJedB8qkVCJMRVVseKls31vorKgqrxTJKW1mKqqSm5dIRGJbKamMNBVVx7SLktyIeOnSvqWpqKqUMOnSKbmqoio/U7p3aiMRUc1NRVVyWLnEt24jYeHhpqKqsrJCftfp0Hsg9aDExsVL85hYU1GVl5Mt3Y/uVPt71uzvOPOedexv1/dszf0da14f5/4+9J6tsb/TUs17Ls7lPZuQkCTNHO/ZwkJpk1xVvckxgmOEHY8R+sdlQmIbczzV/4QWFxZKkut71nFMdv5ecxyT80xFTG3H5MO/1xzH5Hzz8+B6TNbnXOvvtYICyc3NrvWY7Pi9Vv2YXPfvtf3mZ9P8Xisqkuzsen6vHTpG5Fc0M9VAudlZ0ioxSSIiIk1FlVbwtEpIclZUNW8eKzEt4kxFVW5WprRMSJTIyGamwkdv3yqx6rXRyqBmUdHmWKX3kZOZIS1bJ0h2UVWVVElRocQntHFWVEVGRknzFoePybHxrc1xumpsgcQnVL2OWskUHh4hMXEtTUVVXla6xMS1Mo+l44oK8qRlYlvnWD2Gxsa1MtVQuVlpEtOipTSLbm5+J+g/KvR+dT87qqn0cXVfahWXbk9UdIwJxArzcw4fk/Oyzf21aFn1e0JDteaxcRLVPFbioyolLydLWie2kfCICFNRpftbfx+ZfZimY1uY963+baDBk+7fiMhIU1FVVlLi3IdaURXdPMbsb62oynHZ3zFSzN8RHCN8eozg7wg+a/BZwz9/R2hlbfcuHSVU9XnoQ8krrgrdrRQXHSk/PH2B2FFQBlV///vfzQ/O008/7bzswQcfNG/0xx9/XC644AKzCuCIESOc15911lkybtw4GTZsmMfbkFlQVekB2FVqblW1Rm3Sc90rCH/JPTQF75BtqVUVdTtSDk/r04oqh99+O3w6ff/hUuPqkjpU/ZHn0KlTS/NdgyqH7m1jnad7JB8+3SW+hft9xbtXQlaXHB9d7/UA0NBjpZWqH3eD0ZGO01bheA8AoSUhNkJCVZ8QDKqCcupf3759Zd26dc5Sdv2+du1ac7nj+jVrqsrr1f79+82X43og1D94OUIqqzlCqrq4hlQAECwhlQZUwR5SaUDli5BKAypCKgAAglvQBFXaQF17T6kLL7xQcnJy5KmnnpIdO3aY7zoFZ+jQoeb6q6++Wt577z2ZN2+ebN26VR544AEZMmSIHHXUUX5+FkBgcK2mairXaqqm4IMLgIYGVL4KqYIZARUAALBa0ARVgwYNkiVLqhp1xsXFycsvv2yqpnR634YNG2T69OkSG1v1gbhfv35mCuDzzz9vQqtWrVrJpEmT/PwMAN/x1Qen6tP+GqL6tD8ACLSAKhRCKl/gHxEAAISWSAlQ27Ztq/f88ccfL+++e3j1ueo0wHLtUQWgfq79qQAgEFFBZQ0CKgAA4E0BG1QBsE71RuoNUV8j9bq4NlIHAG+jWbp1fNWHCgAAhC6CKiAIWfWhzHXFP283UrfLf/ABBBeqqKxBFRUAAPAVgioAPlnx70iasuIf/30HUB1VVNYgoAIAAL5GUAWEmKY29/V0xT9PGqnXteIfjdQBNBYBlXUIqQAAgD8QVAFodCP1xvSnAgBvYZqfNQioAACAPxFUAfApGqkDsBpVVNahWToAAPA3giogxD+wNWXFP1+hkTqAulBFFVjHWXoKAgCAIyGoAuD3Ff+a0kgdQGiiisoaBFQAAMBuCKoAeLzin6eN1H2J/84DoYcqKmswzQ8AANgRQRUQQpq64p+nWPEPgDcQUFmDKioAAGBnBFUA6sWKfwD8jWl+1qGKCgAA2B1BFRDCfN1IvTEr/tFIHQhtVFFZgyoqAAAQKAiqgCBi1Qc6KxupHwmN1AHUhioqaxBQAQCAQENQBcAjjW2kfqQV/wCgOqqorME0PwAAEIgIqgB4tOKflbq3jbXkfljxDwguBFTWoIoKAAAEMoIqIEQ0ZsW/uhqpe0uX+BY+fTwA9kFIZQ2qqAAAQKAjqAJg20bqAIIfAZU1CKgAAAhOHTrGS0FJueX3GxsVIXZFUAWEqKas+Je+P73O65I6JDX6fmvcV3yUZfcFwF5olm4NpvkBAIBgQ1AFBAk7rvh3pEbqrPgHhCaqqKxBFRUAAAhGBFUAjthIvbEr/tWGRupA6KKKyhpUUQEAgGBGUAWEgMY0UgcAK1FFZQ2qqAAAQLAjqAJg2Yp/TelPxYp/QHAioLIGARUAAAgVBFVACGpKI/XGYMU/IPQwzc8aTPMDAAChhqAKCAK+bKRe34p/DWmkfiSs+AcELqqorEEVFQAACEUEVUCIO1IjdW9pyop/yfHRlm4LAGtQRWUNqqgAAEAoI6gCglxTG6l7uuKfJ/2prFrxD4D9UEVlDaqoAABAqCOoAmBJI/WmoJE6ELgIqKxBQAUAAFCFoAqAxzztT+WKRupAcGKanzWY5gcAAOCOoAoIsQ+Lvl7xrzFopA7YG1VU1qCKCgAAoCaCKgAer/jnqaau+AfAnqiisgZVVAAAAHUjqAJC2JFW/PO0kXpDseIfEFgIqKxDFRUAAED9CKqAINbUFf881ZQV/2ikDtgb0/ysQRUVAACAZwiqAHi04l9jGqkDCFxUUVmHKioAAADPEVQBIcTXjdRZ8Q8ITFRRWYOACgAAoOEIqoAAZtWHSSsbqTcVK/4B/kMVlTWY5gcAANB4BFUALG2kfqQV/5rSSB2AdxBQWYcqKgAAgKYhqAJC1JFW/LNSXY3UAfgf0/ysQRUVAACANQiqgCDlqxX/mqKhK/4lx0d7bVuAUEMVlXWoogIAALAOQRWAI6741xg0UgfsiYDKOgRUAAAA1iOoAtAkSR2S2INAgCCksgbT/AAAALyHoAoIkQ+cv+TmN3rFv/T96ZY0Uj8SVvwDvIOAyjpUUQEAAHgXQRUQgo7USL2xK/4dCSv+Ab5Hs3RrUEUFAADgGwRVQBCyUyN1q1b8o5E60DBUUVmDgAoAAMC3CKoANLqRelP6UzV0xT8AniGgsg4hFQAAgO8RVAEhoK7+VN7Cin+AfxBSWYOACgAAwH8IqoAQ/jBqZSN1AP5DQGUdmqUDAAD4V0AFVcXFxfLYY4/JRx99JM2bN5ebbrrJfFU3atQoWb16dY3LR4wYIZMmTZLs7Gw5+eST3a5r3bq1rFq1yqvbDwRCI/XGOtKKf0dqpM6Kf0DDEVBZhyoqAAAAewiooGry5MmyadMmmTVrluzbt08efPBB6dixo1x44YVu45577jkpLS11nt+wYYP89a9/lWuuucac37FjhwmmFi9e7BwTHh7uw2cC2LeRuqcr/nnSn4pG6oD3EFJZg4AKAADAXgImqCooKJB58+bJK6+8Ir179zZf27dvlzfeeKNGUKUhlEN5ebn85z//kVtuuUX69OljLtu1a5ccc8wxkpyc7PPnAYBG6kBTEFBZh5AKAADAfgKmjGjr1q1SVlYm/fr1c17Wv39/Uy1VUVFR5+0WLFhgpvrdeuutzsu0oqpLly5e32Yg0Ff8oz8VEHohlVZlNrUyMxACKl/1otIvAAAABGFFVWpqqiQkJEhU1OE/LNu0aWP6VmVlZUliYmKN21RWVsqrr74qo0ePlhYtWjgv37lzpwm9rrjiCjl48KAMGDBAxo8fL23btvXZ8wF89UGVFf+AwEcVlXVolg4AAGBvAVNRVVhY6BZSKcf5kpLa//OrzdEPHDggV155pdvlOvUvLy/PhFM6LTAlJUXuuOMOM00QCBWerPhnVSP1I6GROlB3QEUVVeBVUQEAACAEKqqio6NrBFKO87oCYG0+/PBDGTx4sFvPKvXBBx9IWFiY83ZTp06VQYMGmWmEJ554oteeA2D3Ff88baTeUEda8Q9ATVRRWYM+VAAAAIElYCqq2rVrJ5mZmWbKnut0QA2bWrasvZrjyy+/lHPOOafG5TExMW7hVlJSkgmzdBogEMh81VemKSv+dYk/PA3XE1QnINRQRWUdQioAAIDAEzBBVa9evSQyMlLWr1/vvGzNmjVmJb/w8JpPIyMjQ3799VfTcN2VTvk76aST5Ntvv3VepgGVhmBdu3b18rMA7IdG6oB9MM3PGjRLBwAACFwBE1RpFdRll10mEydOlI0bN8ry5ctl5syZplG6o7qqqKjIOX779u1mumDnzp3d7icuLs6EV5MmTTL3s3nzZrnnnnvkjDPOkB49evj8eQHeRCN1IDD4sooq2LGaHwAAQGALmKBKafPz3r17y/XXXy+PPfaYjB07Vs4//3xznfaYWrJkiXNsenq6mRKovaiq++c//ynHHXec3HbbbTJq1Cjp1KmTPPPMMz59LkBjWPVB1spG6k1FI3WEMqb5WYdm6QAAAMEhrLKystLfGxGoMgtYJRD2CqqqV0tUr6hyNFN3DaocU/+qN1JP35/uUY8q1xX/urRvWaNHVfVG6tV7VB0pqKJHFYIVzdKtQR8qAACCX0JshISq86d+IwUl1mcPsVER8tHdp4kdBVRFFQDvrfgHwDeoorIO0/wAAAB8q6SkRIYNGyarVq2qc8zHH38sQ4cOlX79+snVV19tWi41BEEVECTs1HuGFf+A2tEs3RpM8wMAAPC94uJiuffee01P8LrodePGjZPbb79d3nvvPbMwnp4uLCz0+HEIqoAQVteKfwCsRbN0a7CaHwAAgH/s2LFDrrzyStmzZ0+9477++mvp3r27WQzvd7/7nQm2dPE7vb2nCKoANIhrfypXrv2pAFRhmp916EUFAADgP6tXr5ZTTjlF5s6dW++41q1bm1BqzZo1UlFRIQsWLJC4uDgTWnkq0oLtBWDDKUPVG6k3ZMW/+hqpu3JtpN4YrPiHYOaraX7BjoAKAADAe/Ly8tzOR0VFma/qrrnmGo/u76KLLpIVK1aY8RERERIeHi4vv/yytGrVyuNtIqgCQsCRGqlXX/HPKtVX/ANCAav5BV6zdAAAALs6ul28FJZWWH6/Mc2qJtgNHjxY8vMPFzmMGTNGxo4d2+j7zczMNFP9HnnkEenbt6+8+eabMn78eHn33XclKan22TnVEVQBQSAQGqkDoYAqKmtQRQUAAOAbX3zxhdv52qqpGuKZZ56RY489Vq699lpz/oknnjArAL7zzjty2223eXQfBFVAiPJ1I/Uu8S0aNJ4qBwQSqqisQUAFAADgW9o/ykqbN2+WUaNGOc/r1L+ePXvKvn37PL4PmqkD8BiN1AH/VVHZqXLSGwipAAAAAl/btm1l586dbpf9/PPP0rlzZ4/vg4oqIAjV1UgdgHWY5mcNAioAAIDAlpqaKvHx8dK8eXO58sor5aGHHpI//OEP0q9fP5k3b56ppho+fLjH90dQBQT5B2LXRuqs+Af49+exIYK9gkrRLB0AACDwDRo0SCZNmiQjRowwq/5pc3Zd6e/AgQPSq1cvmTVrlseN1BVBFRDgmvph1tMV/+qa9ldXI3VW/EMwoorKGlRRAQAABK5t27bVe37kyJHmq7EIqgB4HY3UEeioorIGARUAAACOhKAKCEG+XvEPCGRUUVmDaX4AAADwSVBVWVkpmZmZZsnB1q1bN/XuAPixkXr6/vQG36ZL+5aNfjzAzgiorEEVFQAAALweVO3fv1/eeust+fLLL81cxIqKCnN5RESEHHfccTJ48GDTRKtjx46NuXsAXviw7Ekj9WD74Ao0BtP8rEMVFQAAALwaVGVkZMiUKVNkxYoVctppp8nVV18t3bt3N5VUGlZpZZUGV2vXrpVLL71UzjrrLHnwwQcb1N0dgHVcV/yzUqdO9VdR0UgdgYoqKmtQRQUAAACfBFW33HKLjBo1Sh5//HFp1qxZrWMGDBgg1157rRQWFsr7778vN998syxcuLDRGwgg8Fb8c0UjdQQCqqisQUAFAAAAnwZVc+fOrTOgqi4mJkb+9Kc/mSmAAOzfSL0x/amAYEAVlTWY5gcAAACfB1WehlRNvQ2AwEAjdQQyAiprUEUFAAAAK4VbXq3xyy9y3XXXWX23QEhq6Afppqz45ys0Uocdfq4IqQKrikq/AAAAEBoatepffUpLS2XNmjVW3y0Ai1f887Q/VUPRSB12RkBlDab5AQAAIGCCKgChveIfYEc0S7cG0/wAAABgu6DqkUcekT/84Q/Sq1cv6dGjh0RFeb/sH4D1K/5ZiRX/YGdUUVmDKioAAADYMqj66aefZNGiRVJYWCiRkZHSvXt3Oe6446R3797mKzzc8rZXALy84h8QjKiisgZVVAAAALB1UPXWW29JZWWl7Nq1S7Zs2WK+Nm/eLMuXL5ecnKoPwWFhYd7YVgBekr4/vc7rkjok1Xo5K/7BrgiorEMVFQAAAAKiR5UGUd26dTNfl1xyifPyX3/9VTZt2iQ//vijldsIoAkr/tXWSN1fWPEP3sY0P2sQUAEAACAggqry8nKJiIio8/qjjjrKfA0dOtR5WVlZmZkiCMB3H7iP1Ei9sSv+HamROiv+wV+oorIG0/wAAADgbw1qKDVy5EhZuHChlJaWHnFscXGxzJs3z9wGQPCqq5E6EGxVVHZawCCQq6j0CwAAAKhLg0qdXn31VZkyZYpMmjRJBg0aJKeddpqZ/peQkGCqrbKysmTbtm2yZs0a+eKLL+TMM8+U6dOnN+QhAHigMR+Yfd1IvUt8iwaN58MrGooqKmtQRQUAAICADaoSExNNSLV37155++235fXXXzfBVEVFhblepwX26NFDzjjjDHnnnXfMNEAAgYtG6rAjAirr0IsKAAAAdtOo5lGdO3eWe++913xpJVV2dra5XCurWPEPsE8jdSDY0CzdGgRUAAAAsKsmdznXKiqttAJgvw/jnqz4l74/3ZJG6kfCin9oCqqorME0PwAAANgdy/EBQcZbK/4dCSv+wRsIqKxDFRUAAAACAUEVEGB8tfJYXf2pvLHiH43UURtCKmtQRQUAAICQC6q0R1V8fLzpT0WPKsB+7L7iH+CKgMo6VFEBAAAg0IQ39oaVlZXy4osvyimnnCKnnnqq/Pbbb3L//ffLI488IiUlvqn4ANC0Ruqe9qdy1aV903pVAXZolu6rykR/BlSEVAAAAAipoOr555+X999/X55++mmJiooylw0fPly+/vprmTx5spXbCIQUX1WT+BKN1OHJ+54V/QIroGLKLgAAAGwVVL377rvy+OOPy1lnneWc7nf66afLP//5T1m6dKmV2wigEY3UPVnxz1NHWvGPRuoIhIAqFKqovI2ACgAAALbtUZWeni5t27atcXnLli2loMC6D8gAXH7umvhB29MV/2ikDl+ggsoaNEsHAABAMGl0RdXAgQNlxowZbpfl5eXJv//9b9O3CoC9NaY/lSdopI4jYZqfdaiiAgAAQLBpdEXVxIkTZcyYMWa6X3Fxsdx5552moXqnTp1Mk3UAwbfiH43U0VRUUVmDKioAAAAEq0YHVe3bt5f58+fLypUrZdeuXVJWVibHHHOMDBo0SMLDG12oBcBHK/75Co3U4ctFAuhDZQ0apQMAACDggir1+eefm1Dq2muvNeefeuop833w4MHWbB0QYqz6MG9lI/UjoZE66kNAFXjT/AAAAAB/anTp05w5c+See+6RtLQ052WRkZHy17/+Vd5++22rtg9AI1b8a0oj9Yau+AfUhdX8rAuoCKkAAAAQKhpdUfXaa6/Jv/71LznrrLOclz344IMyYMAAmTRpklx55ZVWbSMAm01p6t421t+bABujiso6BFQAAAAINY2uqMrMzJTf/e53NS7XPlWuVVZW0qbtEyZMMGGY9sKaOXNmnWP//Oc/S48ePdy+Pv30U+f1//3vf+WMM86Qfv36mfssLCz0yjYDgdZIPalDks9W/GOaUXDx5Wp+dgpuvYEqKgAAAISqRldU9e/fX5577jlTPRUTE+MMkl566SUT/njD5MmTZdOmTTJr1izZt2+fqeDq2LGjXHjhhTXG7ty5U6ZMmSKnnnqq87JWrVqZ7x9++KFMmzbNXJ+UlCTjx483px955BGvbDcQDFjxD/WhisoarOYHAACAUNfooEpDnZtuuslUNnXp0sVctmfPHmnTpo288MILYrWCggKZN2+evPLKK9K7d2/ztX37dnnjjTdqBFUlJSWyd+9e6dOnjyQnJ9e4r9mzZ8v111/vnLb42GOPyc033yz333+/M3QD7P5Bv64V/zxppJ6+P118gRX/gh8BlXUIqQAAAIAmBFU67W/JkiXy5Zdfyi+//GIaqWtgpcFVRESE5ft269atUlZW5latpVVdWsFVUVFhVh902LVrl4SFhclRRx1V437Ky8vlhx9+kDFjxjgvO+GEE6S0tNQ8hreqwQB/NlJvrCM1UmfFv9BFQGUdAioAAADAgqBKRUVFyTnnnCO+kJqaKgkJCeYxHbR6S6cbZmVlSWJioltQFRcXJw888ICsXr1a2rdvL2PHjpUzzzxTcnJyzG3atm3rHK8hW+vWreXAgQM+eS6ArzV2xb/a0EgdhFTWIKACAAAALAyqNPDRZuZanaSVTpWVlTWm11lJm527hlTKcV6n+rnSoKqoqMhUd912223y8ccfm+bqc+fONeGW621d76v6/QB2EeyNoxEYCKisQ0gFAAAAT3RtEyvF5RWW76zoiEavrWffoEqrlTSkuuSSS0z1krdFR0fXCJIc55s3b+52+Z133imjRo1yNk/v2bOnbN68Wd5++22555573G7rel/0p0Kor/jXFKz4F9x8tZpfsCOgAgAAALwUVH3zzTfy+uuvy/HHHy++0K5dO8nMzDTVWzpVzzEdUEOqli3d++hovypHSOXQtWtX2bFjh5nip6FXWlqadOvWzVyn96nTB2trvA7YUV2N1JsqqUNSrZez4l/ooooqsEKq5Phorz8GAAAA4E3hTQmOXBuYe1uvXr1MQLV+/XrnZWvWrDEr+1XfjoceekjGjx/vdpk2StewSsfqbfS2Dnqfet9aeQUEchhg5Yp/R2qkfiSs+Bf470lfVVEFeyWV/iwQUgEAAACeCW/K1L+JEyfKF198Ibt375Z9+/a5fVlNp+Vddtll5jE3btwoy5cvNz2yRo8e7ayu0r5U6uyzz5ZFixbJwoULzbZNmzbNBFPXXXeduf6aa66RGTNmmPvQ+9L7vPLKK5n6h4DkrRX/joQV/4IXVVSBF1BRSQUAAAAJ9al/uoqe0mblYWFhzsu1qbqe//HHH8VqWiWlodL1119v+mLpNpx//vnmOm2cPmnSJBkxYoS57NFHH5UXX3zRhGa///3v5dVXX5XOnTubsRdffLH89ttv8sgjj5jeVDr+/vvvt3x7ASs0tdrE0xX/6pr254oV/4IbAZV16EUFAAAANE5YZfXl+jykQU99OnXqJMEus6Dc35uAEAgIaguqXHtUuVZUOab+uTZSrx5U1TX1r3pQ5Tr1z9GjyjWocq2oqq2Ren0f1Kn+sB+apVuDgAoAAMB6CbERIbtbJ32y02ur/o0/p6pvd9BUVNUXRJWWljb2bgH4qZF6XWikHtyoorIGARUAAADg56BKV817+eWXzUp65eVVlUVanKUh1c6dO+W7776zaBOB4OaroKAhjdQR/AiorENIBQAAANigmfqECRPkyy+/NCvorV27Vvr27SuJiYmmObmjfxUA76pt2p8VWPEvuLGanzVolg4AAADYqKJKK6Z01b1+/frJ119/LUOGDJH+/fvL9OnTzUqAjtX4AARfI3VW/AtMVFFZhyoqAAAAwGYVVTrNr127duZ09+7dZcuWLeb00KFD5YcffrBuCwHYetpfbY3UYT9UUVmDKioAAADApkHVcccdJ++995453atXL1NVpfbu3WtCLAD+CQ9cV/yzI1b88/17jBX9mo6ACgAAALD51L/77rtPbr/9domJiZFLL71UXn31Vbnkkktk37598sc//tHarQRgsOIfPMU0P+swzQ8AAAAIgKBq3rx58umnn0pRUZEkJCTIO++8I8uXL5eWLVvKRx99ZO1WAqgXjdThigoqaxBQAQAAADYPqtatWye7d+82pxcuXCi9e/eWuLg45/UtWrSQn376yTkNEID3Gqm7rvjXlEbqDUUjdfuiiiqwQiqmwQIAAABNDKp0mt9zzz1nelDpl073Cw8/3OYqLCxMYmNjzbRAAIGhoSv+wZ6oorIGVVQAAABAAAVVPXv2lE8++cScHjVqlEybNk1atWrlrW0DYPNG6qz4539UUVmDgAoAAAAI8B5Vc+bMMd8rKipMVVVKSoqsWbPGhFnHHHOMldsIBKWGBgw0UkdT3j/emoIaDJjmBwAAANjH4Xl7DaSh1BlnnCGrV682IdWIESPkkUceMSv/LV261NqtBNCkRurp+9PZg0HEV9P8gj2k0oCKkAoAAAAIkqDqH//4h1x00UXSt29fefvttyU6Oto0UX/iiSdk6tSp1m4lgAY1Um+sTp1aerWROs2jmx5Q0YsqsAIq3vMAAACAj4Kq7du3y/XXX28arK9YsULOP/98iYqKkpNPPln27dvX2LsFYMF0KytX/GtII3Vf9fkJRVRRWYNeVAAAAECQ9qhq06aN7NixQwoKCmTLli3y0EMPmcu/+eYb6dChg5XbCAAhi15U1iCgAgAAAII8qLrhhhvkrrvuMo3U+/TpYyqpXnrpJbMS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yFNPPSU7duww33UKztChQ831V199tbz33nsyb948s5rgAw88IEOGDJGjjjrKr88RAAAAAAAglAVMUKXGjx8vvXv3luuvv14ee+wxGTt2rJx//vnmukGDBsmSJVVNPePi4uTll182VVM6vW/Dhg0yffp0iY2tmqrUr18/MwXw+eefN6FVq1atZNKkSX59bgAAAAAAAKEuYHpU2RE9qryPHlW+Q48qAAAAAHZEjyqxHD2qAAAAAAAAgGCa+gcAAAAAAIDgRVAFAAAAAAAAWyCoAgAAAAAAgC0QVAEAAAAAAMAWCKoAAAAAAABgCwRVAAAAAAAAsAWCKgAAAAAAANgCQRUAAAAAAABsgaAKAAAAAAAAtkBQBQAAAAAAAFsgqAIAAAAAAECdiouLZcKECTJgwAAZNGiQzJw5s86x27Ztk6uvvlqOP/54ueSSS+Tbb7+VhiCoAgAAAAAAQJ0mT54smzZtklmzZsmjjz4q06ZNk2XLltUYl5ubKzfddJN0795dFi1aJOedd56MGTNG0tPTxVMEVQAAAAAAAKhVQUGBzJs3Tx5++GHp3bu3CZ9uueUWeeONN2qMfffddyU2NlYmTpwoRx99tNx9993mu4Zcnor0eCQAAAAAAABCytatW6WsrEz69evnvKx///7y0ksvSUVFhYSHH66BWr16tZxzzjkSERHhvOydd95p0ONRUQUAAAAAABCC8vLy3L5KSkpqjElNTZWEhASJiopyXtamTRvTtyorK8tt7K+//iqJiYny97//XU4//XS58sorZc2aNQ3aJiqqAAAAAAAAbCgxPkoqKq2/3/Cwqu+DBw+W/Px85+XaT2rs2LFuYwsLC91CKuU4Xz3Y0mmC06dPl9GjR8srr7wiH3zwgdx8882ydOlS6dChg0fbRlAFAAAAAAAQgr744gu389UDKRUdHV0jkHKcb968udvlOuWvV69epjeVOu644+Trr7+W9957T+644w6PtomgCgAAAAAAIATFxcUdcUy7du0kMzPT9KmKjIx0TgfUkKply5ZuY5OTk6Vr165ul3Xp0kX279/v8TbRowoAAAAAAAC10gopDajWr1/vvEz7TvXp08etkbo64YQTZNu2bW6X7dq1Szp16iSeIqgCAAAAAABArWJiYuSyyy6TiRMnysaNG2X58uUyc+ZM04fKUV1VVFRkTl911VUmqHruuedk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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "import seaborn as sns\n", "\n", "sns.set_style(\"darkgrid\")\n", "fig = plt.figure(1, figsize=(16, 6))\n", "ax = fig.add_subplot(111)\n", "cmap_range = np.linspace(0.0, 3.0, 11)\n", "cf = ax.contourf(\n", " mbs.tlist,\n", " mbs.zlist,\n", " np.abs(mbs.Omegas_zt[0] / (2 * np.pi)),\n", " cmap_range,\n", " cmap=plt.cm.Blues,\n", ")\n", "ax.set_title(r\"Rabi Frequency ($\\Gamma / 2\\pi $)\")\n", "ax.set_xlabel(r\"Time ($1/\\Gamma$)\")\n", "ax.set_ylabel(\"Distance ($L$)\")\n", "for y in [0.0, 1.0]:\n", " ax.axhline(y, c=\"grey\", lw=1.0, ls=\"dotted\")\n", "plt.colorbar(cf);" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Pulse Area ($\\\\pi$)')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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AIBWOv358ssvj5EjR8bw4cOjT58+sfXWW2fTn5dbbrlsFOOUKVOycyuOHz8+/va3v0W/fv3isssua7rWAwAAAADlHSp26dIlCxTffffduPHGG+Oaa67JQsSamprs9XQl6HTl5759+8bNN98c3/zmN5uq3QAAAABAS7pQy2qrrRbHHHNMdksjFKdOnZotTyMW0zkVAQAAAIDKtchXfy5KoxPTCEYAAAAAoHXIdaEWAAAAAAChIgAAAADQ/KHirFmzmmKzAAAAAEBLPqfixx9/HJdeemlMmDAhu1hLUigUskDx9ddfjyeffLIx2wkAAAAAtPSRikOGDIlx48ZFjx494qmnnoqePXtmF2x57rnn4mc/+1njthIAAAAAaPkjFdNIxCuuuCJ69eoVjzzySPTv3z823XTTuOyyy+Jvf/tb7L///o3bUgAAAACgZY9UTFOdV1pppezxOuusEy+99FL2+Hvf+148//zzjddCAAAAAKAyQsUNN9wwbr/99uxx9+7ds9GKybvvvtt4rQMAAAAAKmf68//+7//G4YcfHh07doxddtklLr/88thpp51i0qRJsfPOOzduKwEAAACAlh8qpvMnPvTQQzFjxoxYbrnl4uabb44HHnggll122WwKNAAAAABQmRY5VEw6deqU3aZOnRorrLBC7L333lFVVdV4rQMAAAAAKutCLRdffHFsscUWsdVWW8V7770Xxx13XJxyyikxc+bMxm0lAAAAANDyQ8ULL7ww7rjjjjjzzDOjffv22bLBgwdnF2wZMWJEY7YRAAAAAKiEUPHWW2+NoUOHxoABA2qnPG+zzTZx1llnxT333NOYbQQAAAAAKiFUnDx5cqy44orzLe/cuXNMnz59cdsFAAAAAFRaqLjlllvGqFGj6iybNm1anHvuudl5FgEAAACAyrTIoeKpp54aL730Ujblubq6Oo488sjo169fdsGWk046qXFbCQAAAACUjbaL+saVV145brrppnj00Udj4sSJMXv27FhzzTWjT58+0abNImeVAAAAAEClhoqnnXZa7L///rHVVltlNwAAAACgdVjkIYV33HFH7VWfAQAAAIDWY5FHKh544IExdOjQ7L5bt27RoUOHOq+nZYvj0EMPjS5dusSZZ565WNsBAAAAAMokVDz//POz+3HjxmX3xVGLhUIhe/zyyy8vcqPuvvvuePjhh2Pw4MGLvA0AAAAAoMxCxbFjxy7wtQ8++GBRNxtTpkyJESNGRI8ePRZ5GwAAAABAGYaKq666ap3nM2fOjDFjxsStt96aXRH6xRdfXKTtnnXWWbHLLrvEhx9+uEjvr9zTPBZiwofT4sOPp0WhuZtCi5D+V/hgZk1MnTJdzbDQNfPJnIionhmdl2wXbdssWoc6p6YQn0yfGf/+T3V2++CzubdpM2dH9eya2tuMWXPmez5j3uO0jdSfpxak0e91Hs/r69vM6/DT/RJt5t7atolo26bN3Ocly+e+lu7Tdqoi7Vp6X9UC7tPrab25/W0hCoX034iaeQ/S4+xhoTD38bzXamoKUVOY97hQsiy9XlOIOWn9QtTe15Tc18zbXul9TfFnz+v45/60eY//y5dB7T7N+3CL+z33+dzl2fN5+zvf7yHq/j6i+Hje+4vbat++bcyePaf2d1bn59b+7GKb5j6at7kvC2/uzpXefXk/b0drd7fksyj+DrLH9T+TksfZ77Tkd5l9jg28L61X/Jm1yxt4nh582b767S75YBb0GZX8r1X8TZX+31as9+JBTbHmi/fFd5X+f1H6vjr/z8z7TBZUE1+uN///ayVNKPnZJW2u81rD/UVDS9u1XyJmzZxT59dT/Jzr/9pK67z2M2zotQV8Rl8uq/f/7rxtRenzr9hm6fMv31PSsgW1q3TH69fyYvry/6G6NVT6UZR+bqV18+VrX65c/7Ovs6z+Z15SC7X1Om+jpevWtqleO0vbEA38zPr72L5d25g1e3bJXjSOOv+/li5fwOc593ndz7FOH1Dy2vyvf7nROnU5X919WY/zv1ay/TztKtnjBvep3r4v6LXFsaBPraHPu253UrXA17+qftou0SbmzEnfvrBwllAz5JD6mBO+t0Fstkqnivy95cnVFjlULBo/fnzcdtttce+998a0adNi7bXXjiFDhizStlIY+c9//jPuvPPOOPXUUxdpG127Lh2V6IIHX4uz7/9XczcDaEWW6dguuizVPrst94320TXdL/XlfacObeOjadUxacoX8f6UL2LSlBkxaeoX8e+pM2J2MZ1ZDLX/sKnzLxx/VgEAAJrXE298GoO+tUqr/xgWKVR87733siDx9ttvj3feeSc6d+6cBYrnnHNO7Ljjjov0S62uro7f/OY3ccopp8SSSy65yB/M5Mmf/dfRGy3Rqku1i2926RhfVKdhRLBw2rSpykZHwcKaVVOIqV/Myh6n+3R74+PPc/8Cl6iKWL5Th1i5c4dYaem5t6U7tI0l27WJDm3bxJJtl5h33yaWbDf3cYeSx2lkYe1Io5KRZbWj++b9nNLRgCnITCMc0yjA2sclt9lp+ZwvR6h91cjAudusOyqndkRO8XG9EWXF0X5phGRanvZh7vO5oyjSKMm5o/7mrTvv9eIIvwWOGqw/kqN0REbJ77y4uM7oupLHtaPworjPpSP5FjBysnbdht4zd2tLdeoYn332RfY7Lv3dftXomS9HHX75Wv2RTKX7NN9Ix3qj8IqfSXFEZemozOLou7kDb4u/5wZGVTbw+64zkq84QrDkef0RU/XbW//zqv87Kf291PuV1BnB9OWopNLPtKF16n7m9Ufl1d9OzUKM6vty+3VHOJW2c0HfMg0dj6VfR6dOS8a0aTOy1xsapVT83df/vRYf1xl9WfLG+iMviyNyF/YzrD8iujjKts4I23qjTOcfyTn/KM759qERRtotaNTy/CPOGqqj+d9fWjPFDdVf9t9qs/6y0v/PvxzJ2/C26o9UrrtfhVh66bn9zKIe0tSvtYbUf72hEbl1Hyz8qMy6ddDAe+qNAp7/9ZK+sYGRpl9VZwuuxYb7r/lfaTrz/+1w/rpeYM00sF5p37rMMt+IqVPN1mHhpJpXM+TRfok2sc2Gq1Rs/pS+ExZ2wF6uUPHmm2/OwsQ0mnDFFVeMgQMHxvbbbx+bbbZZ9OzZM9Zbb71FbXNccMEF8a1vfSv69u0bi6N0mlgl6bt21xi8xRrx8ceVWbQ0TUew/PJLqxly18y/P/xPFiZOKd6mz73/NHs+Oz6dPjOmfjE7m87c9Rvts8CwNDxMtxQoLur0aVoO/QxqBv0M5fvd1M6/m1AzNFk/kwYQFCo0f8ojV6j461//OlZfffXsvIc777xzozYkXfH5448/jl69etWeozG577774umnn27UnwXAgqUwsMs32mc3AAAAWOxQ8YwzzsjCvxNPPDGGDx8e/fv3j2233Tb69OkTi+tPf/pTzJ53Aubk7LPPzu6PPfbYxd42AAAAANBMoeJuu+2W3T755JO455574i9/+UscffTR2TkQa2pq4vHHH89GMrZr126xrya91FJLZfdpewAAAABA+WizKG/q0qVL7LPPPnHttdfGQw89FEcddVR07949hg0blp0TMY1iBAAAAAAqU1Wh9DJZi+nNN9+Mu+66KxvBmG7NoVIvZOJk+KgZ9DOUG99NqBn0M5Qb302oGfQzjdOPNtlIxQVZY401sunQzRUoAgAAAABNr1FDRQAAAACg8gkVAQAAAIBchIoAAAAAwNcfKk6dOjVqamqiEa/5AgAAAABUWqiYAsSLL744tthii9hqq63ivffei+OOOy5OOeWUmDlzZuO2EgAAAABo+aHihRdeGHfccUeceeaZ0b59+2zZ4MGD45FHHokRI0Y0ZhsBAAAAgEoIFW+99dYYOnRoDBgwIKqqqrJl22yzTZx11llxzz33NGYbAQAAAIBKCBUnT54cK6644nzLO3fuHNOnT1/cdgEAAAAAlRYqbrnlljFq1Kg6y6ZNmxbnnntudp5FAAAAAKAyLXKoeOqpp8aLL76YTXmurq6OI488Mvr165ddsOWkk05q3FYCAAAAAGWj7aK+ceWVV47Ro0fHP/7xj3jrrbfis88+y5b16NEjVltttcZtJQAAAADQ8kcqjh8/PhuZ2LZt29huu+3immuuidNPPz122WUXF2oBAAAAgAq2yKHiGWecETvuuGP07NkzbrzxxujQoUM88sgjMWzYsDj//PMbt5UAAAAAQMsPFV977bU44IADomPHjvHggw/G9ttvH+3bt4/NN988Jk2a1LitBAAAAABafqi4/PLLx4QJE7LbSy+9FAMGDMiWp3MsrrLKKo3ZRgAAAACgEi7UcuCBB8ZRRx0Vbdq0yS7OkkYoXnLJJXHBBRfE8OHDG7eVAAAAAEDLDxX333//2GyzzeK9996LPn36ZMu23HLL6N+/f2ywwQaN2UYAAAAAoBJCxaR79+7ZrWjjjTdujDYBAAAAAJUSKua5AEu3bt0WpT0AAAAAQCWFigMHDoyqqqrscaFQWOB6aZ2XX3558VsHAAAAALTsUHHs2LFN1xIAAAAAoPJCxVVXXbXOhVq+yh//+MdFbxUAAAAAUHkXatl8883rPJ89e3a888478fDDD8cRRxzRGG0DAAAAACopVDz66KMbXH7LLbfE/fffHwcffPDitAsAAAAAKFNtGnuDm222WTz66KONvVkAAAAAoKWPVJw0adJ8yz7//PMYNWpUnXMvAgAAAACVZZFDxYEDB0ZVVVWdZYVCIVZZZZU444wzGqNtAAAAAEAlhYpjx46t8zwFjO3atYvll19+vrARAAAAAGjFoeLtt98eY8aMyQLEbbfdNr7//e83TcsAAAAAgJZ/oZarr746hgwZEjNmzIgvvvgiTjjhhDj33HObrnUAAAAAQMseqXj99dfH6aefHrvuumv2/P77748TTzwxfvnLX5ryDAAAAACtRK6Riu+8805stdVWdS7WkkYsfvjhh03RNgAAAACgpYeKs2fPjrZtvxzcmB536NAhZs6c2RRtAwAAAABaeqgIAAAAAJD76s/33HNPdOrUqfZ5TU1NdjXoLl261FmveN5FAAAAAKAVh4rdunWLK664os6yrl27xjXXXFNnWVVV1SKFim+99VYMHTo0nnrqqVhmmWVi3333jUMOOST3dgAAAACAMgkVH3zwwSZrSBrxeOihh0aPHj3i1ltvzQLGY445JlZaaaXYaaedmuznAgAAAAAt9JyKH3/8cXTv3j1OPfXUWGONNaJfv37ZlabHjx/f3E0DAAAAABbnnIpNZcUVV4zf/e532eNCoZBNgX7yySfjN7/5Ta7tVFVFRSruV6XuH41PzaBmaGr6GdQM+hnKje8m1Az6mcWTJ3eqKqQEr8wMGDAgJk2alN1feOGFscQSSzR3kwAAAACAcg4Vn3/++Ww6dJoKvd1228VJJ5200O+dPPmzKL89apykuGvXpSt2/2h8agY1Q1PTz6Bm0M9Qbnw3oWbQzzROP9qipj+XShdrSaqrq+PYY4+N448/Ptq3b79Q702BWyWHbpW+fzQ+NYOaoanpZ1Az6GcoN76bUDPoZ1rZhVoeeOCBOsvWWWedmDVrVkybNq3Z2gUAAAAAlGmo+O6778bRRx8dH3zwQe2yF154Ibp06ZLdAAAAAIDy0KacpjxvtNFGMWTIkJgwYUI8/PDDMXLkyDj88MObu2kAAAAAQDmGiukKzxdddFF07Ngx9thjj/j1r38d++23X+y///7N3TQAAAAAoFwv1LLSSivFBRdc0NzNAAAAAABawkhFAAAAAKBlECoCAAAAALkIFQEAAACAXISKAAAAAEAuQkUAAAAAIBehIgAAAACQi1ARAAAAAMhFqAgAAAAA5CJUBAAAAAByESoCAAAAALkIFQEAAACAXISKAAAAAEAuQkUAAAAAIBehIgAAAAAgVAQAAAAAmo6RigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAALTcUPGDDz6In//857H55ptH3759Y/jw4VFdXd3czQIAAAAASrSNMlEoFLJAsXPnznHttdfG1KlTY8iQIdGmTZs44YQTmrt5AAAAAEC5jVScOHFiPPPMM9noxHXXXTd69+6dhYx33XVXczcNAAAAACjHkYorrLBCXH755bH88svXWT5t2rRc26mqiopU3K9K3T8an5pBzdDU9DOoGfQzlBvfTagZ9DOLJ0/uVFVI847LUE1NTey9996x3HLLxcUXX9zczQEAAAAAym2kYn0jR46Ml156KW666aZc75s8+bMoz5h08ZPirl2Xrtj9o/GpGdQMTU0/g5pBP0O58d2EmkE/0zj9aIsNFVOgePXVV8d5550X6623Xq73psCtkkO3St8/Gp+aQc3Q1PQzqBn0M5Qb302oGfQzTa/sQsVhw4bFddddlwWLO+ywQ3M3BwAAAAAo51DxggsuiOuvvz7OPffcGDRoUHM3BwAAAAAo51Dx9ddfj4suuigOPfTQ2HTTTeOjjz6qc2VoAAAAAKA8lE2oOHbs2JgzZ052pef6V3t+9dVXm61dAAAAAECZhopphGK6AQAAAADlrU1zNwAAAAAAaFmEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAA0PJDxZkzZ8YPfvCDePzxx5u7KQAAAABAuYeK1dXVccwxx8Rrr73W3E0BAAAAAMo9VJwwYUL8+Mc/jrfffru5mwIAAAAAtIRQ8YknnogtttgibrjhhuZuCgAAAACwAG2jjOy9996LvY2qqqhIxf2q1P2j8akZ1AxNTT+DmkE/Q7nx3YSaQT+zePLkTmUVKjaGrl2XjkpW6ftH41MzqBmamn4GNYN+hnLjuwk1g36m6VVcqDh58mdRKERFJsXpi7FS94/Gp2ZQMzQ1/QxqBv0M5cZ3E2oG/Uzj9KOtMlRMgVslh26Vvn80PjWDmqGp6WdQM+hnKDe+m1Az6Gda2YVaAAAAAIDyJ1QEAAAAAHIRKgIAAAAAuZTtORVfffXV5m4CAAAAANAAIxUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAAKEiAAAAANB0jFQEAAAAAHIRKgIAAAAAuQgVAQAAAIBchIoAAAAAQC5CRQAAAAAgF6EiAAAAAJCLUBEAAAAAyEWoCAAAAADkIlQEAAAAAHIRKgIAAAAALTdUrK6ujiFDhkTv3r2jT58+ccUVVzR3kwAAAACAetpGGRkxYkS88MILcfXVV8ekSZPihBNOiG7dusWgQYOau2kAAAAAQLmFitOnT4/Ro0fHH/7wh9hoo42y22uvvRbXXnutUBEAAAAAykjZTH9+5ZVXYvbs2dGrV6/aZZtuumk8++yzUVNT06xtAwAAAADKcKTiRx99FMstt1y0b9++dtnyyy+fnWdxypQp0aVLl4XaTps2EYVCVJyqqsrePxqfmkHN0NT0M6gZ9DOUG99NqBn0M43Tj7aoUPGLL76oEygmxeczZ85c6O106bJ0VLJK3z8an5pBzdDU9DOoGfQzlBvfTagZ9DOtaPpzhw4d5gsPi8+XXHLJZmoVAAAAAFC2oeJKK60Un376aXZexdIp0SlQ7Ny5c7O2DQAAAAAow1Cxe/fu0bZt23jmmWdql40fPz569OgRbdKJBAEAAACAslA2aV3Hjh1j1113jVNPPTWee+65eOCBB+KKK66I/fffv7mbBgAAAACUqCoUyudawuliLSlUvP/++6NTp05x8MEHx4EHHtjczQIAAAAAyjVUBAAAAADKX9lMfwYAAAAAWgahIgAAAACQi1ARAAAAAMhFqFhG0uktzz777Nhyyy1j8803jxEjRkRNTc0C1z/ttNNi/fXXr3O75ppral+/6667Ytttt42ePXvGUUcdFZ988snXtCeUY70888wzseeee0avXr1ihx12iNGjR9d5feedd56vnv71r399DXtCU6quro4hQ4ZE7969o0+fPnHFFVcscN2XXnopfvSjH2V9xg9/+MN44YUX6ryuT2kd8tTMX//619hll12yfmWnnXaKsWPH1nk9baN+v/L5559/DXtBudbMEUccMV9NPPTQQ7WvX3XVVdG3b9+sptI200X8aL01s99++81XL+l24oknZq9PnTp1vte22GKLr3lv+DrNnDkzfvCDH8Tjjz++wHUcz5C3ZhzPkLdmHM+USBdqoTyMGjWq0K9fv8KTTz5ZePTRRwt9+vQpXH755Qtc/8ADDyxceumlhQ8//LD2Nn369Oy1Z599tvDtb3+7cOuttxZefvnlwr777ls49NBDv8a9oZzqJdVG7969C+ecc07hjTfeKNx1112FHj16FB566KHs9dmzZ2fPn3jiiTr1NGvWLB9kCzd06NDCTjvtVHjhhRcK999/f6FXr16Fe+65Z771Pv/888I222xTOPPMMwsTJkwoDBs2rLD11ltnyxN9SuuxsDWTvls22mijwtVXX1148803C9dcc032PC1P/v3vfxfWW2+9wttvv12nX6mpqWmGvaIcaibZbrvtCrfffnudmqiurs5eu/feewubbrpp4cEHH8z6nB133LHw29/+1ofXimvm008/rVMrY8aMyfqZ5557Lnv9n//8Z2HzzTevs87HH3/cDHvE12HGjBmFo446Kvtueeyxxxpcx/EMeWvG8Qx5ayZxPPMloWIZSQHRzTffXPv8tttuKwwYMGCB6/ft27cwbty4Bl877rjjCieccELt80mTJhXWX3/97B93tL56+fOf/1wYNGhQnWUnn3xy4Zhjjskep0Bggw02yDpRKkc6sE5hcekX4oUXXpj9kaG+0aNHFwYOHFgb+KT79GVZrDF9SuuQp2ZGjhxZOPjgg+ssO+iggwrnnntu9viRRx7JgmoqW56aSeFh9+7dCxMnTmxwW3vvvXfh/PPPr32e/miW/kBa/IMpra9mSqU/gKag+bzzzqtdduONNxb22GOPJm0v5eG1114r7LzzzlkY/VX/2Hc8Q96acTxD3ppxPFOX6c9l4oMPPoj3338/Nttss9plm266abz33nvx4Ycfzrf+tGnTsvesscYaDW7v2WefzaaUFK2yyirRrVu3bDmtr17SVLLhw4c3WEfJhAkTshrp0KFDE7ecr9Mrr7wSs2fPzqYRltZJ6gfqT5VPy9JrVVVV2fN0v8kmm2TT5ouv61MqX56aGTx4cBx77LHzbeOzzz6r7VfWXHPNr6HVtJSamThxYta3fPOb35xvO3PmzInnn3++Tj+z8cYbx6xZs7KfQeusmVK33HJLNt35pz/9ae2y1M8s6FiYyvLEE09kU9tvuOGGr1zP8Qx5a8bxDHlrxvFMXULFMvHRRx9l9yuuuGLtsuWXXz67//e//z3f+q+//np2YH7JJZfEd77znex8eLfeemvt6ylYKt1W0rVr1wa3ReXXy2qrrZb946xo8uTJcffdd8dWW21VW0/t2rWLww47LLbZZpvYd99947nnnvsa9oSmrpPlllsu2rdvX6dO0rmspkyZMt+6X9Vn6FNahzw1s/baa8cGG2xQ+/y1116LRx99tE6/ks6Hl86Jls6ZloKAN95442vcG8qtZtJBeKdOneL444/PamL33XePhx9+OHvtP//5T/ae0n6obdu2seyyyzp2acU1U5RmV11++eWx//77x1JLLVW7PPUz6Xsq1VL6A+ovf/nLBv+4Ssu39957Z+fh7Nix41eu53iGvDXjeIa8NeN4pi6h4tdoxowZ8dZbbzV4mz59erZO6QFW8XE6UeiC0vG11lorLrvssuziCieffHKMGTOm9meVbqu4vYa2ReXXS/3t/uxnP8sO4PfYY49sWfqHfvrrf6qjVE/py/WAAw7IRkPScqVAp6F+oKE6WdC6xfX0Ka1DnpoplS4ElvqVNLr1u9/9bu33VOpX0omsL7roolhyySXjwAMPrB0hTeurmVQTqS9JgWIKiPr165fVRxqhmJaXvrd0W45dKsui9DPpZPkpPPzxj388X02lPiVduOW8887LAsXDDz88G/lK6+R4hsXheIaF4Ximrrb1ntOE0nD89BfWhhx33HG1B1PFKajFA6uGkvJdd901BgwYkP0FP0mjRd5888247rrrYrvttsu2Uf/ALD3/b6k7lVkvRemqq0ceeWRWK3/+859r1x02bFj2D7o0giQ59dRT46mnnorbb789OzinZVpQP5CkgGdh1i2up09pHfLUTNHHH38cP/nJT7KRROeff360aTP375WjRo3Kpq4WRxWlq9WnECld6TddKZrWVzPp+yeNXF1mmWVqj11efPHFuPHGG7MRZqXvLd2WY5fKsij9zH333ZfNzCke9xalWRfpj+zF96U+KIXW6Rgq/ZGD1sfxDIvK8QwLy/FMXULFr1Gan//qq68u8Bx5I0eOzIbsp6mqpVNcV1hhhfnWTwdQ9Q+s0qjFxx57LHu80korZR1jqfS8oW1R+fWSpL/kH3LIIfH222/H1VdfXeccRGmKWTFQTIqjYNPPoeVK/cCnn36anbsqfcbFOkn/+OrcufN86zbUZxSnIupTWoc8NZOkPqL4x48//vGP0aVLlzojj0pHI6V/6KX+Sr/SemsmBc7FQLEofdek8+KlY5pUI6nfSaPlk7TNNB3WsUvr7meScePGxdFHHz3f8vqBczptR6ol/Uzr5XiGReF4hjwcz9Rl+nMZfQGmC6mMHz++dll6nJbVP89Z8n//93/ZNLL6J75OB+dJz54962wrTWNNt7Sc1lcv6cTn6WD83XffjT/96U+x7rrr1nk9jRy54IIL6qyfAs1iPdEyde/ePfsHW/FiK8U66dGjR+1osqLUNzz99NPZaLMk3afRqsU+Q5/SOuSpmXQahvSHirT8mmuuyfqlolQ/2267bXZhhdL10+kb9Cutt2Z+9atfZdNUGzp2Seum95R+r6Vtpm2XnruT1lUzxemI77zzTnYxl/p/LE0XrCv+Qb0YDKTAUj/TejmeIS/HM+TleKYuoWIZ2WuvvbLpYem8Mel2zjnn1Jn+mg6q0vTVJE19fvLJJ7PpZWnkWZrKetttt8VBBx1Uu600dXX06NHZAXs6KXr//v0bvOIilV8vN910U7bOaaedlo0CSCMC0q14QvSBAwfGVVddFWPHjs3OETF06NDsCq7pami0XGkERzpVQprOni6888ADD8QVV1xRWyepBornMRs0aFB2oYTTTz89GzWU7tN5ib73ve9lr+tTWoc8NXPppZdm3z9nnXVW7WvplvqONNo5fef8/ve/z/qedBGX9D208sorZ1OgaZ01k75r7rzzzux4JQXM6Y9ZKUxKFwcrniA9HdekbaRtpW2mc+iZ/tx6ayZJ/UdxpHOpNMMiBY3Dhw/PtpOm0qdp9OmCLeuvv/7Xvl80H8czLE7NOJ4hb804nqmnQNmYPXt24Ywzzij07t27sMUWWxRGjhxZqKmpqX19wIABhfPPP7/2+ZgxYwo77bRToUePHoVBgwYV7rvvvjrbu/nmmwv9+vUrbLzxxoWjjjqq8Mknn3yt+0P51MtBBx1UWG+99ea77bvvvtnr6X0XX3xxoX///oVvfetbhX322afw6quv+ggrwPTp0wvHH3981g/06dOncOWVV9a+lmog9RNFzz77bGHXXXfN+pTdd9+98OKLL9bZlj6ldVjYmtlhhx0a7FdOOOGE7PUZM2YUhg8fXthmm20KPXv2LBx22GGFSZMmNdt+UR79zI033ljYfvvts++awYMHF5544ok627r00ksLW221VWHTTTctnHjiiVkd0bpr5u677876kYZMmTKl8Ktf/So7DurVq1fh2GOPzZZR2VKNPPbYY3WeO55hUWvG8QyL0s84nvlSVfpP/aARAAAAAGBBTH8GAAAAAHIRKgIAAAAAuQgVAQAAAIBchIoAAAAAQC5CRQAAAAAgF6EiAAAAAJCLUBEAAAAAyEWoCAAAAADkIlQEAAAAAHIRKgIAAAAAuQgVAQAq2MCBA2P99dfPbhtssEH06tUr9txzzxg3blztOu+++272err/b15++eV46qmnotxMnjw5dtttt5g1a9Z/XXfmzJkxePDg7D0AACwaoSIAQIUbMmRI/P3vf4+HH344brjhhthkk03isMMOi3/84x/Z66usskr2err/b4466qh48803o9yMHDky9tlnn2jXrl3tshSennzyyfOt2759+9h3332z9wAAsGiEigAAFW7ppZeOFVZYIVZaaaVYb7314vjjj4/vf//7MXz48Oz1JZZYIns93bdEaYTl2LFjY6eddqpdVlNTE6+++mpsuOGGDb4nrfvggw/Ge++99zW2FACgcggVAQBaoT322CP+9a9/xVtvvTXf9Oc//vGPMWDAgOjRo0c2pfif//xntny//fbLQrgTTzwxfvWrX8X48eNjr732ip49e8bGG28cP/3pT+PDDz/M1i1u8/77749tt90221YaHTllypTaNqSfffDBB2dTsvv375/93KL3338/Dj/88GzbaQr3BRdcEHPmzGlwX9Loyz59+mQjEIveeOONmD59emy00UYNvietu/XWW2fvBQAgP6EiAEArtPbaa2f3EyZMqLP8pZdeihEjRsRvfvObuOeee6J3797xi1/8Ihv59/vf/z5WXnnlbDr1r3/96ywk3GabbeKuu+6KUaNGxdtvvx2XXXZZne1dcsklce6558Y111wTzz//fFx55ZXZ8urq6jjooINiqaWWihtvvDFOOeWUOO+88+Khhx6KQqEQRx99dHTt2jVuvfXWbETlnXfemW2rIen8kCkgLPXiiy9G27Zts2BzQVLbS88tCQDAwmubY10AACpoSnTy+eef11meRiJWVVVFt27dYrXVVssCxTRqMYWKyy67bDZFOr13xowZceSRR8ZPfvKTbP1vfvObsf3228dzzz1XZ3s///nP49vf/nbtlOMULCbpHI6ffPJJnHHGGdGpU6dYd91146STToo2bdrEY489FpMmTYrRo0dnz9daa6044YQTshGS6ZyOpWbPnp1Ncy6GpKXhaFrWoUOHBf4O0uuvvPJKNgKypU79BgBoLkJFAIBWaNq0adl9CvRKpWnE6byLKQBM5yP87ne/Gz/60Y+yUX+l0jkYd91117jqqquyK0KnEY8p3EsXgSm1+uqr1z5OP6t4deY0PXnNNdes8/N/+MMfZvdpVGOaJr3pppvWvpZCzRRkfvrpp7HccsvVLp86dWr2Wumy4kjFBU19LkohaXpv+llpVCQAAAtPqAgA0AqlADBJIwRLdezYMRsh+MQTT2RTkW+55Za47rrrsvt0oZeiDz74IAsBU3CXph7/+Mc/jr/+9a/x7LPP1tle6dWYS9UPKeuPPkyjEy+66KIFjrAsSqMkkxQOlkojEHfYYYev+A1ENs26dBsAACw851QEAGiFbr755iwQTNOWSz399NNx6aWXxpZbbplNN7733nuz8x+mi7KUGjNmTCyzzDLZugcccEB27sV33nmnNqj7b9ZYY43sQi1ffPFF7bKzzjorTjvttGwEY5r+3KVLl2ykY7qlC7+cf/758wWAxSnZaQRjUTq343/+858FXvm5KL0nhZv1RzkCAPDfCRUBACrcZ599Fh999FF2ZeY0QvH000+Pv/zlL9kVnOtbcskl48ILL8xGK6Yg7+67786uoly84Mk3vvGNmDhxYnTu3DkL/h599NEsTEwXaElXep45c+ZCtSlNs15++eWzC7S8/vrrMXbs2Lj++uuz5em26qqrxnHHHZe1N119+uSTT85GUdY/92E65+IGG2xQO/KyOPU5SeumK1wXb2nKdan0nu7duxupCACwCEx/BgCocOliKOmWRvml0X9pBF86F2IaXVhfCtlS6JimHg8dOjS7YMvIkSNrL4Sy1157xdlnn51Ned55552zC7Gk7fbo0SO7mEq6QvTCBItphGDxZwwePDgLGI8//vjo379/9vrFF18cw4YNy6ZVpyBz0KBB2fYb0rdv33jqqadin332qb1IS5LeWyqdo/HPf/5z7fM0+vI73/lOrt8lAABzVRUWdo4KAACUoTTdebfddotx48ZloxkXRhp9mQLF2267LbvKNQAA+Zj+DABAi/b//t//i379+sWdd9650O9J66ZRkQJFAIBFY6QiAAAtXjpf5E9/+tPsXJDt27f/ynXT9Ozdd989Ro0aFSussMLX1kYAgEoiVAQAAAAAcjH9GQAAAADIRagIAAAAAOQiVAQAAAAAchEqAgAAAAC5CBUBAAAAgFyEigAAAABALkJFAAAAACAXoSIAAAAAkItQEQAAAADIRagIAAAAAEQe/x/ykFEIMSxj7wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(16, 5))\n", "ax.plot(mbs.zlist, mbs.fields_area()[0] / np.pi)\n", "ax.set_ylim([0.0, 8.0])\n", "ax.set_xlabel(\"Distance ($L$)\")\n", "ax.set_ylabel(r\"Pulse Area ($\\pi$)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysis\n", "\n", "The $4 \\pi$ sech pulse breaks up into two $2 \\pi$ pulses, which travel at a speed according to their width." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Movie" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# C = 0.1 # speed of light\n", "# Y_MIN = 0.0 # Y-axis min\n", "# Y_MAX = 4.0 # y-axis max\n", "# ZOOM = 2 # level of linear interpolation\n", "# FPS = 60 # frames per second\n", "# ATOMS_ALPHA = 0.2 # Atom indicator transparency" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# FNAME = \"images/mb-solve-two-sech-4pi\"\n", "# FNAME_JSON = FNAME + '.json'\n", "# with open(FNAME_JSON, \"w\") as f:\n", "# f.write(mb_solve_json)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# !make-mp4-fixed-frame.py -f $FNAME_JSON -c $C --fps $FPS --y-min $Y_MIN --y-max $Y_MAX \\\n", "# --zoom $ZOOM --atoms-alpha $ATOMS_ALPHA #--peak-line --c-line" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# FNAME_MP4 = FNAME + '.mp4'\n", "# !make-gif-ffmpeg.sh -f $FNAME_MP4 --in-fps $FPS" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# from IPython.display import Image\n", "# Image(url=FNAME_MP4 +'.gif', format='gif')" ] } ], "metadata": { "kernelspec": { "display_name": "maxwellbloch", "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }