{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Remote computing on Quandela Cloud" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "Here, we aim at showing how to connect to Quandela Cloud services to perform computation with real QPU and simulators remotely. We are going to use a simple two modes circuit.\n", "\n", "Please note that other Cloud providers exist besides Quandela, see [providers](https://perceval.quandela.net/docs/providers.html) for additional information." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import time\n", "import math\n", "from pprint import pprint\n", "from tqdm.notebook import tqdm\n", "\n", "import perceval as pcvl\n", "from perceval.algorithm import Sampler" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "First, define your Perceval objects (circuit, input state, etc.) as usual." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=pi/4\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Rx\n", "\n", "\n", "0\n", "1\n", "0\n", "1\n", "" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_state = pcvl.BasicState([1, 1])\n", "\n", "c = pcvl.Circuit(2)\n", "c.add(0, pcvl.BS())\n", "c.add(0, pcvl.PS(phi = math.pi/4))\n", "c.add(0, pcvl.BS())\n", "\n", "pcvl.pdisplay(c)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "Now, visit [cloud.quandela.com](https://cloud.quandela.com) and login to see which QPU and simulators are available, as well as their specifications. \n", "You have to create a token that will let you use our cloud. You can save it once and for all in Perceval (you can even do it with a terminal). \n", "If your token changes, just call the same method again with the new token." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Save your token into Perceval persistent data, you only need to do it once\n", "pcvl.save_token('YOUR_API_KEY')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you have chosen the platform you want your code executed on, all you have to do is to copy its name and define a `RemoteProcessor` with it. Don't forget to give the platform access rights to your token. Note that simulator platform start with \"sim:\" and actual QPUs start with \"qpu:\"." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "remote_simulator = pcvl.RemoteProcessor(\"sim:altair\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "You can now access to the specifications of the platform directly in Perceval." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi0\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi1\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi2\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi3\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi4\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi5\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi6\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi7\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi8\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi9\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi10\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi11\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi12\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi13\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi14\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi15\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi16\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi17\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi18\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi19\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi20\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi21\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi22\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi23\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi24\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi25\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi26\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi27\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi28\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi29\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi30\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi31\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi32\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi33\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi34\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi35\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi36\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi37\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi38\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi39\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi40\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi41\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi42\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi43\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi44\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi45\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi46\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi47\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi48\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi49\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi50\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi51\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi52\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi53\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi54\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi55\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi56\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi57\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi58\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi59\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi60\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi61\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi62\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi63\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi64\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi65\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi66\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi67\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi68\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi69\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi70\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi71\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi72\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi73\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi74\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi75\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi76\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi77\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi78\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi79\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi80\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi81\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi82\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi83\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi84\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi85\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi86\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi87\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi88\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi89\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi90\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi91\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi92\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi93\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi94\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi95\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi96\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi97\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi98\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi99\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi100\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi101\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi102\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi103\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi104\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi105\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi106\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi107\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi108\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi109\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi110\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi111\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi112\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi113\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi114\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi115\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi116\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi117\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi118\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi119\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi120\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi121\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi122\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi123\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi124\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi125\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi126\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi127\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi128\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi129\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi130\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi131\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi132\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi133\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi134\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi135\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi136\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi137\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi138\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi139\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi140\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi141\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi142\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi143\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi144\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi145\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi146\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi147\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi148\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi149\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi150\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi151\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi152\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi153\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi154\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi155\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi156\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi157\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi158\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi159\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi160\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi161\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi162\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi163\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi164\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi165\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi166\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi167\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi168\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi169\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi170\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi171\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi172\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi173\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi174\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi175\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi176\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi177\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi178\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi179\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi180\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi181\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi182\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi183\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi184\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi185\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi186\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi187\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi188\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi189\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi190\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi191\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi192\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi193\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi194\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi195\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi196\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi197\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi198\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi199\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi200\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi201\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi202\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi203\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi204\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi205\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi206\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi207\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi208\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi209\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi210\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi211\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi212\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi213\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi214\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi215\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi216\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi217\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi218\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi219\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi220\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi221\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi222\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi223\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi224\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi225\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi226\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi227\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi228\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi229\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi230\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi231\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi232\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi233\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi234\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi235\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi236\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi237\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi238\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi239\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi240\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi241\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi242\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi243\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi244\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi245\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi246\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi247\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi248\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi249\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi250\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi251\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi252\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi253\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi254\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi255\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi256\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi257\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi258\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi259\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi260\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi261\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi262\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi263\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi264\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi265\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi266\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi267\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi268\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi269\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi270\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi271\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi272\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi273\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi274\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi275\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi276\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi277\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi278\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi279\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi280\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi281\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi282\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi283\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi284\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi285\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi286\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi287\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi288\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi289\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi290\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi291\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi292\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi293\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi294\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi295\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi296\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi297\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi298\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi299\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi300\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi301\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi302\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi303\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi304\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi305\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi306\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi307\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi308\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi309\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi310\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi311\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi312\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi313\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi314\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi315\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi316\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi317\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi318\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi319\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi320\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi321\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi322\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi323\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi324\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi325\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi326\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi327\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi328\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi329\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi330\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi331\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi332\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi333\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi334\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi335\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi336\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi337\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi338\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi339\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi340\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi341\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi342\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi343\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi344\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi345\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi346\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi347\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi348\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi349\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi350\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi351\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi352\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi353\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi354\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi355\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi356\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi357\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi358\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi359\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi360\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi361\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi362\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi363\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi364\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi365\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi366\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi367\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi368\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi369\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi370\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi371\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi372\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi373\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi374\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi375\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi376\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi377\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi378\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Θ=1.32843\n", "\n", "\n", "Rx\n", "\n", "\n", "Φ=phi379\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n", "11\n", "12\n", "13\n", "14\n", "15\n", "16\n", "17\n", "18\n", "19\n", "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n", "11\n", "12\n", "13\n", "14\n", "15\n", "16\n", "17\n", "18\n", "19\n", "" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "specs = remote_simulator.specs\n", "pcvl.pdisplay(specs[\"specific_circuit\"])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Platform constraints:\n", "{'max_mode_count': 20,\n", " 'max_photon_count': 10,\n", " 'min_mode_count': 1,\n", " 'min_photon_count': 1}\n", "\n", "Platform supported parameters:\n", "{'HOM': 'indistinguishability value, using HOM model (default 0.92)',\n", " 'final_mode_number': 'number of modes of the output states. States having a '\n", " 'photon on unused modes will be ignored. Useful when '\n", " 'using computed circuits (default input_state.m)',\n", " 'g2': 'g2 value (default 0.003)',\n", " 'min_detected_photons': 'minimum number of detected photons to keep a state '\n", " '(default input_state.n)',\n", " 'phase_imprecision': 'imprecision on the phase shifter phases (default 0)',\n", " 'transmittance': 'probability that an emitted photon is sent to the system '\n", " 'and is detected (default 0.06)',\n", " 'use_photon_recycling': 'boolean enabling the Photon Recycling noise '\n", " 'mitigation process. (default enabled whenever it can '\n", " 'be used)'}\n" ] } ], "source": [ "print(\"Platform constraints:\")\n", "pprint(specs[\"constraints\"])\n", "print(\"\\nPlatform supported parameters:\")\n", "pprint(specs[\"parameters\"])" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "Now, we can specify parameters in order to tune our computation. For specific parameters, we have to use a special `set_parameter` function (or `set_parameters`)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "remote_simulator.set_circuit(c)\n", "remote_simulator.min_detected_photons_filter(1) # Output state filering on the basis of detected photons\n", "remote_simulator.with_input(input_state)\n", "\n", "remote_simulator.noise = pcvl.NoiseModel(indistinguishability=.95, transmittance=.1, g2=.01)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "We can now use the `Sampler` with our `RemoteProcessor`. You have to set a maximum shots threshold (`max_shots_per_call` named parameter) when creating a `Sampler` with a remote platform. Local simulations do not require this threshold.\n", "A shot is any detected event containing at least one photon, it is easy to explain, easy to measure. This shot threshold will prevent the user from consuming too many QPU resources, as once it's reached, the acquisition stops. Shots up to this threshold can be reached for all jobs generated by `Sampler` calls (e.g. calling `sample_count` thrice can lead to the use of at most `3*max_shots_per_call` shots)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "aabaf27d-cad1-4afb-a4bf-1be5437e62f6\n" ] } ], "source": [ "nsamples = 200000\n", "sampler = Sampler(remote_simulator, max_shots_per_call=nsamples) # You have to set a 'max_shots_per_call' named parameter\n", "# Here, with `min_detected_photons_filter` set to 1, all shots are de facto samples of interest.\n", "# Thus, in this particular case, the expected sample number can be used as the shots threshold.\n", "\n", "sampler.default_job_name = \"My sampling job\" # All jobs created by this sampler instance will have this custom name on the cloud\n", "\n", "remote_job = sampler.sample_count.execute_async(nsamples) # Create a job\n", "print(remote_job.id) # Once created, the job was assigned a unique id" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "The request has now been sent to a remote platform through the cloud. As it is an asynchronous computation (`execute_async`), other computations can be performed locally before the results are retrieved. In this example, let's just wait for the end of the computation. If you go to the Quandela Cloud website again, you can see the job and its completion status." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a1ae8eb7e5674941b020b515f3f1d64a", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| |" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Job status = SUCCESS\n" ] } ], "source": [ "previous_prog = 0\n", "with tqdm(total=1, bar_format='{desc}{percentage:3.0f}%|{bar}|') as tq:\n", " tq.set_description(f'Get {nsamples} samples from {remote_simulator.name}')\n", " while not remote_job.is_complete:\n", " tq.update(remote_job.status.progress/100-previous_prog)\n", " previous_prog = remote_job.status.progress/100\n", " time.sleep(1)\n", " tq.update(1-previous_prog)\n", " tq.close()\n", "\n", "print(f\"Job status = {remote_job.status()}\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "Once the previous cell has run to the end, the job is finished (again, you can see its status on the website). Let's retrieve the results to do some computation. In this case, the computation is expected to be fast (unless the simulator is unavailable or there are a lot of jobs queued), so we can use the `remote_job` object we created previously. If the computation lasted for a long time, we could have shut down our computer, then turn it back on and finally created a new job object by directly retrieving the results. The *job id* which is visible on the website, is required to resume a job and load its results." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " |1,0>: 97231\n", " |1,1>: 5591\n", " |0,1>: 97178\n", "}\n" ] } ], "source": [ "''' # To retrieve your job using a job id\n", "remote_processor = pcvl.RemoteProcessor(\"sim:altair\", token_qcloud)\n", "remote_job = remote_processor.resume_job(id)\n", "'''\n", "\n", "results = remote_job.get_results()\n", "print(results['results'])" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "You can run the same sampling on the corresponding QPU. In order to manage your QPU credits, you can estimate the number of shots you'd need for a particular data acquisition. Please note that the maximum shots and maximum samples number act as a dual threshold system. As soon as one of these thresholds is exceeded, the acquisition stops and the results are returned." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With this setup:\n", "To gather 200000 2-photon coincidences on qpu:altair, you would need around 17104752 shots.\n", "To gather 200000 photon events (with at least 1 photon) on qpu:altair, you would need exactly 200000 shots.\n" ] } ], "source": [ "qpu_platform_name = \"qpu:altair\"\n", "nsamples = 200000\n", "\n", "remote_qpu = pcvl.RemoteProcessor(qpu_platform_name)\n", "remote_qpu.set_circuit(c)\n", "remote_qpu.with_input(input_state)\n", "\n", "print(\"With this setup:\")\n", "remote_qpu.min_detected_photons_filter(2)\n", "required_shots = remote_qpu.estimate_required_shots(nsamples=nsamples)\n", "print(f\"To gather {nsamples} 2-photon coincidences on {qpu_platform_name}, you would need around {required_shots} shots.\")\n", "\n", "remote_qpu.min_detected_photons_filter(1)\n", "required_shots = remote_qpu.estimate_required_shots(nsamples=nsamples)\n", "print(f\"To gather {nsamples} photon events (with at least 1 photon) on {qpu_platform_name}, you would need exactly {required_shots} shots.\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "sampler_on_qpu = Sampler(remote_qpu, max_shots_per_call=nsamples)\n", "\n", "remote_job = sampler_on_qpu.sample_count\n", "remote_job.name = \"QPU sampling\" # You may also specify a name to individual jobs\n", "remote_job.execute_async(nsamples);" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fbf9ce88b2a243458ed8514c9a567089", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| |" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Job status = SUCCESS\n" ] } ], "source": [ "previous_prog = 0\n", "with tqdm(total=1, bar_format='{desc}{percentage:3.0f}%|{bar}|') as tq:\n", " tq.set_description(f'Get {nsamples} samples from {remote_qpu.name}')\n", " while not remote_job.is_complete:\n", " tq.update(remote_job.status.progress/100-previous_prog)\n", " previous_prog = remote_job.status.progress/100\n", " time.sleep(1)\n", " tq.update(1-previous_prog)\n", " tq.close()\n", "\n", "print(f\"Job status = {remote_job.status()}\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " |1,0>: 211538\n", " |0,1>: 178621\n", " |1,1>: 5013\n", "}\n" ] } ], "source": [ "results = remote_job.get_results()\n", "print(results['results'])" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 1 }