{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Inductively Shunted Superconducting Circuits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we try to reproduce the result of the [\"Quantization of inductively shunted superconducting circuits\"](https://journals-aps-org.stanford.idm.oclc.org/prb/abstract/10.1103/PhysRevB.94.144507) paper." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Smith2016](https://journals-aps-org.stanford.idm.oclc.org/prb/abstract/10.1103/PhysRevB.94.144507) explained how the conventional method or perturbation theory does not correctly diagonalize their highly anharmonic inductively-shunted qubits. However, by using SQcircuit, we simply reproduced the energy spectrum. The diagram of the circuit is" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We choose the device A circuit parameters from the following table of the paper:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Circuit Description" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Firstly, we import the SQcircuit and the relavant libraries" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import SQcircuit as sq\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the single inductive loop of the circuit via `Loop` class" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "loop1 = sq.Loop()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The elements of the circuit can be defined via `Capacitor`, `Inductor`, and `Junction` classes in SQcircuit, and to define the circuit, we use the `Circuit` class. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# define the circuit ’s elements\n", "C_r = sq.Capacitor(20.3, \"fF\")\n", "C_q = sq.Capacitor(5.3, \"fF\")\n", "L_r = sq.Inductor (15.6, \"nH\")\n", "L_q = sq.Inductor(386, \"nH\", loops=[loop1])\n", "L_s = sq.Inductor(4.5, \"nH\", loops=[loop1])\n", "JJ = sq.Junction(6.2, \"GHz\", loops=[loop1])\n", "\n", "# define the circuit\n", "elemetns = {(0, 1): [C_r],\n", " (1, 2): [L_r],\n", " (0, 2): [L_s],\n", " (2, 3): [L_q],\n", " (0, 3): [JJ,C_q]}\n", "\n", "cr = sq.Circuit(elemetns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By creating an object of `Circuit` class, SQcircuit systematically finds the correct set of transformations and basis to make the circuit ready to be diagonalized.\n", "\n", "Before setting the truncation numbers for each mode and diagonalizing the Hamiltonian, we can gain more insight into our circuit by calling the `description()` method. This prints out the Hamiltonian and a listing of the modes, whether they are harmonic or charge modes, and the frequency for each harmonic in GHz (the default unit)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\hat{H} =~\\omega_1\\hat a^\\dagger_1\\hat a_1~+~\\omega_2\\hat a^\\dagger_2\\hat a_2~+~\\omega_3\\hat a^\\dagger_3\\hat a_3~~-~E_{J_{1}}\\cos(\\hat{\\varphi}_1+\\hat{\\varphi}_2+\\hat{\\varphi}_3-\\varphi_{\\text{ext}_{1}})$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$------------------------------------------------------------$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\text{mode}~1:~~~~~~~~~~~\\text{harmonic}~~~~~~~~~~~\\hat{\\varphi}_1~=~\\varphi_{zp_{1}}(\\hat a_1+\\hat a^\\dagger_1)~~~~~~~~~~~\\omega_1/2\\pi~=~15618.70522~~~~~~~~~~~\\varphi_{zp_{1}}~=~2.36e-05$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\text{mode}~2:~~~~~~~~~~~\\text{harmonic}~~~~~~~~~~~\\hat{\\varphi}_2~=~\\varphi_{zp_{2}}(\\hat a_2+\\hat a^\\dagger_2)~~~~~~~~~~~\\omega_2/2\\pi~=~7.89173~~~~~~~~~~~\\varphi_{zp_{2}}~=~3.82e-02$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\text{mode}~3:~~~~~~~~~~~\\text{harmonic}~~~~~~~~~~~\\hat{\\varphi}_3~=~\\varphi_{zp_{3}}(\\hat a_3+\\hat a^\\dagger_3)~~~~~~~~~~~\\omega_3/2\\pi~=~3.4973~~~~~~~~~~~\\varphi_{zp_{3}}~=~2.04e+00$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$------------------------------------------------------------$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\text{parameters}:~~~~~~~~~~~E_{J_{1}}~=~6.2~~~~~~~~~~~$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\text{loops}:~~~~~~~~~~~~~~~~~~~~\\varphi_{\\text{ext}_{1}}/2\\pi~=~0.0~~~~~~~~~~~$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cr.description()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output of `description()` method specifies that our circuit is consist of three harmonic modes. However, the frequency of the first mode is about 16 THz which is extermly high. Since it is a fast-rotating mode and does not have an impact on the dynamics of the lower eigenvalues of the circuit, we can remove it by setting its truncation number to one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To determine the size of the Hilbert space, we specify the truncation number for each circuit mode via `set_trunc_nums()` method. Note that this is a necessary step before diagonalizing the circuit." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "cr.set_trunc_nums([1,9,23])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Circuit Spectrum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To generate the spectrum of the circuit, firstly, we need to change and sweep the external flux of `loop1` by the `set_flux()` method. Then, we need to find the eigenfrequencies of the circuit that correspond to that external flux via `diag()` method. The following lines of code find the `spec` a 2D NumPy array so that each column of it contains the eigenfrequencies with respect to its external flux. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# number of eigenvalues we aim for\n", "n_eig=10\n", "\n", "# array that contains the spectrum\n", "phi = np.linspace(-0.1,0.6,100)\n", "\n", "# array that contains the spectrum\n", "spec = np.zeros((n_eig, len(phi)))\n", "\n", "for i in range(len(phi)):\n", " # set the value of the flux external flux\n", " loop1.set_flux(phi[i])\n", " \n", " # diagonlize the circuit\n", " spec[:, i], _ = cr.diag(n_eig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we plot the spectrum as a function of external fluxes" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i in range(1,n_eig):\n", " plt.plot(phi, spec[i,:]- spec[0,:])\n", " \n", "plt.xlabel(\"$\\Phi_{ext}/\\Phi_0$\", fontsize=13)\n", "plt.ylabel(r\"$f_i-f_0$[GHz]\", fontsize=13)\n", "plt.ylim([0,18])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next cell shows the spectrum from the figure 2 of the paper, which is the same spectrum that SQcircuit calculated." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 2 }