{ "cells": [ { "cell_type": "markdown", "id": "3046a507", "metadata": {}, "source": [ "## Coupling qubits to the feedline\n", "\n", "We consider a feedline with an input capacitance $ C_{\\text{in}} $ to investigate how the coupling changes as the distance between the device under test (either a qubit coupled to a single resonator or a qubit coupled to a resonator which is itself coupled to a Purcell filter) and the input capacitance varies. We perform this analysis for both capacitive and inductive coupling. We expect maximum coupling at a distance of $\\lambda/2$ for capacitive coupling and $\\lambda/4$ for inductive coupling, where $\\lambda$ is the wavelength corresponding to the frequency we aim to read out through the feedline.\n", "\n", "It should be noted that a feedline terminated on an input capacitance may introduce unwanted modes. Such modes generally exhibit a very high $\\kappa$ and are automatically removed by the code. \n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "3ac92e47", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import qultra as qu" ] }, { "cell_type": "code", "execution_count": 4, "id": "fbddba40", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------+------------+-----------+-----------+\n", "| Mode | Freq [GHz] | k [MHz] | Q |\n", "+------+------------+-----------+-----------+\n", "| 1 | 5.50e+00 | -4.64e-05 | -1.18e+08 |\n", "| 2 | 7.33e+00 | -1.49e+01 | -4.90e+02 |\n", "| 3 | 7.64e+00 | -5.31e+00 | -1.44e+03 |\n", "+------+------------+-----------+-----------+\n", "Chi matrix [MHz]:\n", "+------+----------+----------+----------+\n", "| Mode | 1 | 2 | 3 |\n", "+------+----------+----------+----------+\n", "| 1 | 2.11e+02 | 4.55e-01 | 1.21e+00 |\n", "| 2 | 4.55e-01 | 2.45e-04 | 1.30e-03 |\n", "| 3 | 1.21e+00 | 1.30e-03 | 1.73e-03 |\n", "+------+----------+----------+----------+\n", "Qubit Purcell decay time is: 3.427857827751835 ms\n" ] } ], "source": [ "Cj=85e-15 #qubit capacitance\n", "Lj=9.2e-9 #qubit junction\n", "Cg=6e-15 #coupling capacitance\n", "l=3.8e-3 #cpw length\n", "Cp=12e-15\n", "\n", "\n", "net=[qu.C(0,1,Cj),qu.J(0,1,Lj,1),qu.C(1,2,Cg),qu.CPW(0,2,l),qu.C(2,3,Cp),qu.CPW(3,0,l),qu.C(3,4,20e-15),qu.R(0,4,50)]\n", "circuit=qu.QCircuit(net,3,10)\n", "circuit.show_all()\n", "print(\"Qubit Purcell decay time is:\",1/circuit.kappa()[0]/1e6/2/np.pi/1e-3,\"ms\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "60519252", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 11947674207.507673j: Failed to converge after 150 iterations, value is (-2765418734.14917+8629017391.706299j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2765418734.1491723+8629017391.706297j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2730992242.4150095+8494629400.988188j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2697293423.1152987+8364353010.970018j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2664299149.7694764+8237974706.168632j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2631991092.9345245+8115294189.9715j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2600355462.3362546+7996124061.939791j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2569382623.424843+7880289569.708474j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2539066583.8641067+7767628391.325259j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2509404355.915103+7657990402.240671j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2480395212.5544333+7551237382.721739j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n" ] } ], "source": [ "from qultra import constants\n", "constants.step=0.001\n", "Cin=0.204/(2*50*2*np.pi*7.6e9)\n", "l_l=np.arange(0.1,14,0.2)\n", "k1=[]\n", "for li in l_l:\n", " net=[qu.C(0,1,Cj),qu.J(0,1,Lj,1),qu.C(1,2,Cg),qu.CPW(0,2,l),qu.C(2,3,Cp),qu.CPW(3,0,l),qu.C(3,4,20e-15),qu.CPW(5,4,li*1e-3),qu.C(6,5,Cin),qu.R(0,4,50),qu.R(6,0,50)]\n", " circuit=qu.QCircuit(net,3,12)\n", " k1.append(circuit.kappa()[2])\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "df7054c1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------+------------+-----------+-----------+\n", "| Mode | Freq [GHz] | k [MHz] | Q |\n", "+------+------------+-----------+-----------+\n", "| 1 | 3.84e+00 | -4.93e-03 | -7.80e+05 |\n", "| 2 | 4.98e+00 | -2.76e+00 | -1.81e+03 |\n", "+------+------------+-----------+-----------+\n", "Chi matrix [MHz]:\n", "+------+----------+----------+\n", "| Mode | 1 | 2 |\n", "+------+----------+----------+\n", "| 1 | 1.82e+02 | 2.10e+00 |\n", "| 2 | 2.10e+00 | 6.04e-03 |\n", "+------+----------+----------+\n" ] } ], "source": [ "Cj2=97e-15\n", "Lj2=16.3e-9\n", "Cg2=8e-15\n", "l2=5.85e-3\n", "lc=0.7e-3\n", "\n", "net2=[qu.C(0,1,Cj2),qu.J(0,1,Lj2),qu.C(1,2,Cg2),qu.CPW(2,3,l2-lc),qu.CPW_coupler([3,0,4,5],[10,10,10,10],[15,5,15],lc),qu.CPW(6,4,l2-lc),qu.R(0,5,50),qu.C(7,6,Cin),qu.R(0,7,50)]\n", "circuit2=qu.QCircuit(net2,3,10)\n", "circuit2.show_all()" ] }, { "cell_type": "code", "execution_count": 7, "id": "2342dc2b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4649134255.719523+9208964384.734392j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4562801462.14497+8999810928.990198j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4480072583.546942+8800017992.851988j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4400704306.063507+8608974137.684431j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4324476070.651874+8426119117.129855j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4251187397.734509+8250938818.623587j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4180655569.5274034+8082960748.330269j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4112713623.185771+7921750001.82787j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-4047208611.9238124+7766905668.106449j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 8288340939.111109j: Tolerance of (4.76837158203125e-07+0j) reached. Failed to converge after 19 iterations, value is (-3984000096.068919+7618057619.330958j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3984000096.068917+7618057619.330943j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3922958830.913135+7474863643.45938j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3863965622.849436+7337006881.209097j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3806910329.4538264+7204193532.987835j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3751690982.830714+7076150805.217025j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3698213018.688848+6952625068.953495j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 7451299166.965779j: Tolerance of 9.5367431640625e-07j reached. Failed to converge after 31 iterations, value is (-3646388596.294395+6833380206.855303j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3646388596.2944064+6833380206.855319j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3596135996.709822+6718196127.3468485j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3547379088.630535+6606867427.334314j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3500046852.7273903+6499202187.029139j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3454072956.742829+6395020882.377176j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3409395374.7143908+6294155402.295723j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3365956044.646349+6196448159.410965j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3323700559.7525325+6101751284.294157j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 6567315828.203839j: Tolerance of 9.5367431640625e-07j reached. Failed to converge after 24 iterations, value is (-3282577889.0711865+6009925894.33428j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3282577889.071195+6009925894.334276j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3242540123.8353643+5920841429.384845j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 6378225517.567605j: Tolerance of (-4.76837158203125e-07+0j) reached. Failed to converge after 38 iterations, value is (-3203542246.476552+5834375047.194803j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3203542246.4765387+5834375047.194812j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3165541919.56969+5750411072.402091j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:65: UserWarning: Newton's method failed for initial guess 2065506063.8546505j: Tolerance of 9.5367431640625e-07j reached. Failed to converge after 34 iterations, value is (-3128499292.397835+5668840493.543201j).\n", " warnings.warn(f\"Newton's method failed for initial guess {x0}: {e_newton}\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3128499292.397852+5668840493.543187j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3092376823.138115+5589560503.127822j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3092376823.138118+5589560503.127829j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3057139114.9518204+5512474076.357481j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3057139114.951834+5512474076.357496j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-3022752764.5087557+5437489584.53555j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n", "C:\\Users\\simyz\\OneDrive - Alma Mater Studiorum Università di Bologna\\Desktop\\GitHub\\QuLTRA\\src\\qultra\\find_zeros.py:76: UserWarning: Zero point (-2756821802.155334+9366187816.504473j) has k > k_max, excluding it.\n", " warnings.warn(f\"Zero point {zero_point} has k > k_max, excluding it.\")\n" ] } ], "source": [ "\n", "k2=[]\n", "for li in l_l:\n", " net2=[qu.C(0,1,Cj2),qu.J(0,1,Lj2),qu.C(1,2,Cg2),qu.CPW(2,3,l2-lc),qu.CPW_coupler([3,0,4,5],[10,10,10,10],[15,5,15],lc),qu.CPW(6,4,li*1e-3),qu.R(0,5,50),qu.C(7,6,Cin),qu.R(0,7,50)]\n", " circuit2=qu.QCircuit(net2,2,10)\n", " k2.append(circuit2.kappa()[1])" ] }, { "cell_type": "code", "execution_count": 11, "id": "e426889f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([-1., 0., 1., 2., 3., 4., 5., 6.]),\n", " [Text(0, -1.0, '−1'),\n", " Text(0, 0.0, '0'),\n", " Text(0, 1.0, '1'),\n", " Text(0, 2.0, '2'),\n", " Text(0, 3.0, '3'),\n", " Text(0, 4.0, '4'),\n", " Text(0, 5.0, '5'),\n", " Text(0, 6.0, '6')])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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X331VVtHOJ955hntJsj/c9y4cWYPiRBTYeoCIQ7k77//zr1J1CczM1OLwo0cORK1atXC/v37ceedd6Jv375wu90Fnv/iiy9i06ZN2pYQYePGjWjatKkmciVSetttt+Gnn35Ceno6Dh48iIyMDKxZswaPPPIIkpOTtePlMUIICScUuoQQbQm5YcOGuP/++7F+/Xr06tVL2z9hwgS89NJLZg+PRDm///47LrnkEuzZswfVq1fHwoUL8e6776JZs2a5aQIxMTFo1KiR9n7avHkzWrdurb3nCCEknFDoEkLyIdE2We6UfF1BhMmBAweCKkb77LPPtBxMSZGIj4/Xlq7r1Kmj5f6++eabuXmDsvQur6Mvv0sOsXchjeSg6khkcOzYsbjuuus0kVShQgUtelizZk306dMHy5Yt8/n/kqV9eT3JVZYo9fvvv48LL7xQy2ksXbo0WrZsiU8//bTQ+dm5cycefvhhNG7cGGXLltWE3FlnnYWuXbtqS/JGOZHyf5AiofPOO0/LiZY5rlevHu677z7s2LEDwRLsvOnMnz9fy4+tVq0aEhISkJqainbt2uHDDz9EdnY2ioKsBsjc79u3T5tH+R0S2fWHiGEZeyTzwAPF832SlZWFUaNGaZ8F+budccYZ6NatG9auXZt7vESlJc2nQYMGKFmypJb2c/311+OPP/4w5fUJIV64CSGOYMiQIZKDoN0CYfLkybnHjx07Nt9j/fv31/bL1pubb74593lyK1WqlDs5OTnfvq1bt2rHTpo0yV2pUiV3fHy8tr9kyZLaz563HTt2GP4fYmNj3eXLl3cnJCTk7nO5XO5XX33V8P9zySWXaMc88cQT7q5du2r34+Li3GXKlMk3tqeeesrnnHz88cfuxMTE3GNLlCjhTklJ0V5H37d69ep8z/n000/zjVHuJyUl5f5cunRp96xZs9zBEOy8CYMHD843T+XKldPmUN932WWXuY8cOeIOlldeeSX3NeT/Gq3UrFlTG+OHH37o9zj9ffK///3P3a5du9y/s8yx53t6xYoV7n379rmbNGmi7ZP3heff9YwzznBv37494q8f6OeUEKdAoUuIQwhW6B49ejRXCPXr1y+gL9CFCxdq+2NiYtwvv/yye//+/bmPyZe2CDp5zq5duwy//GWM/nj33Xe1Y1auXOk+deqUti8nJ8f9559/uu+77z5NwMmY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.figure(figsize=(8, 5))\n", "plt.plot(l_l, k1, 'o-', color='blue',label='Structure 1')\n", "plt.plot(l_l, k2, 'o-', color='orange',label='Structure 2')\n", "plt.xlabel('Distance to $C_\\mathrm{in}$ [mm]', fontsize=18)\n", "plt.ylabel('$\\kappa$ [MHz]',fontsize=18)\n", "plt.grid(True)\n", "\n", "#plt.legend(fontsize=18)\n", "plt.xticks(fontsize=18)\n", "plt.yticks(fontsize=18)" ] }, { "cell_type": "markdown", "id": "3c426f8d", "metadata": {}, "source": [ "Here, we place the two structures at the positions where $\\kappa$ is maximized and analyze the entire circuit in one shot." ] }, { "cell_type": "code", "execution_count": 14, "id": "8daf4343", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------+------------+-----------+-----------+\n", "| Mode | Freq [GHz] | k [MHz] | Q |\n", "+------+------------+-----------+-----------+\n", "| 1 | 3.84e+00 | -5.04e-03 | -7.62e+05 |\n", "| 2 | 4.98e+00 | -2.78e+00 | -1.80e+03 |\n", "| 3 | 5.50e+00 | -4.55e-05 | -1.21e+08 |\n", "| 4 | 7.33e+00 | -1.42e+01 | -5.16e+02 |\n", "| 5 | 7.64e+00 | -5.06e+00 | -1.51e+03 |\n", "+------+------------+-----------+-----------+\n", "Chi matrix [MHz]:\n", "+------+----------+----------+----------+----------+----------+\n", "| Mode | 1 | 2 | 3 | 4 | 5 |\n", "+------+----------+----------+----------+----------+----------+\n", "| 1 | 1.82e+02 | 2.10e+00 | 1.76e-10 | 2.05e-06 | 5.86e-07 |\n", "| 2 | 2.10e+00 | 6.04e-03 | 9.58e-09 | 1.18e-08 | 3.40e-09 |\n", "| 3 | 1.76e-10 | 9.58e-09 | 2.11e+02 | 4.55e-01 | 1.20e+00 |\n", "| 4 | 2.05e-06 | 1.18e-08 | 4.55e-01 | 2.45e-04 | 1.30e-03 |\n", "| 5 | 5.86e-07 | 3.40e-09 | 1.20e+00 | 1.30e-03 | 1.72e-03 |\n", "+------+----------+----------+----------+----------+----------+\n" ] } ], "source": [ "complex_net=[qu.C(0,1,Cj), #first qubit\n", " qu.J(0,1,Lj),\n", " qu.C(1,2,Cg), #coupling capacitor\n", " qu.CPW(0,2,l), #resonator\n", " qu.C(2,3,Cp),\n", " qu.CPW(3,0,l), #purcell filter\n", " qu.C(3,4,20e-15), #coupling capacitance\n", " qu.C(0,5,Cj2), #second qubit\n", " qu.J(0,5,Lj2),\n", " qu.C(5,6,Cg2),\n", " qu.CPW(6,7,l2-0.7e-3),\n", " qu.CPW_coupler([7,0,8,9],[10,10,10,10],[15,5,15],0.7e-3), #coupler\n", " qu.R(0,9,50),\n", " qu.CPW(8,4,l2-0.7e-3),\n", " qu.C(4,10,Cin),\n", " qu.R(10,0,50)]\n", "\n", "complex=qu.QCircuit(complex_net,3,10)\n", "complex.show_all()" ] }, { "cell_type": "code", "execution_count": null, "id": "34289703", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 5 }