Motivation

We need to have a very good method of selecting resonator lengths such that we minimize the time it takes to fabricate suitable frequency-targeted qubit devices for readout with an amplifier. We must also ensure that these devices are spaced in frequency enough such that individual readout resonators are easily resolved in frequency and phase space for a given coupling rate $\kappa$.

Method

Capacitance and Inductance of Bare CPW (no crossovers)

Using the geometry alone, one is able to calculate the phase velocity of the CPW by finding the the capacitance per unit length. (See Goppel and Gupta (p. 382) for details.) The calculation to be done are

The total line capacitance per unit length (Gupta 7.8c) becomes

\begin{align} C_l &= 2\epsilon_0\left(\epsilon_r+1\right)\frac{K(k_0)}{K(k'_0)} \end{align}

where $K(m)$ is the complete elliptic integral of the first kind and $k_0$ is a geometry dependent terms

\begin{align} k_0 &= \frac{w}{w+2s},\\ k'_0 &= \sqrt{1-k_0^2}. \end{align}

Using only the geometry and materials information, we are able to calculate the characteristic impedance of the CPW along with the phase velocity and relative permittivity of the CPW.

Lumped Element Approximation (LEA)

We know that the resonance frequency of the cavity will be pulled by adding in extra capacitances (grounding straps, the coupling capacitance $C_{\kappa}$, the qubit pocket, etc.) and inductances (say from coupling in inductively). The frequency that we specify in the function calcQuarterWavelength() below is the frequency we desire after taking these capacitances into account.

For now just the basics: use the desired frequency $\omega'$ and calculated $Z_0$ of the CPW resonator to calculate an effective $L_{LEA}$,$C_{LEA}$ (Pozar 6.34), resonant circuit. This lumped element circuit will ring at the target frequency $\omega'$ following

\begin{align} \omega' &= \frac{1}{\sqrt{L_{tot}C_{tot}}} \mbox{ where}\\ C_{tot} &= C_{LEA} + C_{parasitic} \mbox{ and}\\ L_{tot} &= L_{LEA} + L_{parasitic}. \end{align}

The desired action now is to strip the parasitics out and calculate $\omega_0$, the original frequency of the resonator before it gets pulled down. From Pozar,

\begin{align} C_{LEA} &= \frac{\pi}{4\omega_0Z_0},\\ L_{LEA} &= \frac{1}{\omega_0^2C_{LEA}},\\ \end{align}

which can be used to find

\begin{align} \omega_0 &= \left(\frac{1}{2}\left(-\frac{1}{\delta\omega} + \sqrt{-4C_{parasitic}L_{parasitic}+\frac{1}{(\delta\omega)^2} + \frac{4}{\omega'^2}}\right )\right)^{-1} \end{align}

where

\begin{align} \frac{1}{\delta\omega}&=\frac{L_{parasitic}\pi}{4Z_0}+\frac{4C_{parasitic}Z_0}{\pi}. \end{align}

(n.b.: in the $\pm$ of solving the quadratic, the $-$ is non-physical, so the function below only uses $+$.) After we have the non-pulled frequency of the resonator, we can find the half-wavelength by using the already calculated phase velocity set by the geometry as

\begin{align} \frac{\lambda}{4} &= \frac{\pi v_{ph}}{2\omega_0}. \end{align}

Coupling Rates

We know that the coupling to the shorted end of the resonator will result in an additional inductance to the circuit above. The coupling quality will be

\begin{align} Q_c &= \frac{2 Z_0 L_{LEA}}{\omega_0 M^2}, \end{align}

where $M$ is the mutual inductance between the resonator and the common feedline. This makes the coupling rate of the resonator to the cavity

\begin{align} \kappa &= \frac{\left(\omega_0 M\right)^2}{2Z_0L_{LEA}}. \end{align}

Some non-pythonic code


In [1]:
import numpy as np
import scipy as sp
from scipy import special
import re
import os

from collections import namedtuple
from scipy.constants import speed_of_light,mu_0,epsilon_0,pi

from QuarterWave import *

### Resonator Parameters ###
# Center trace width (um)
CPW_w = 10

# Gap from center trace to GND (symmetric on both sides) (um)
CPW_s = 6

# Target resonator frequency (Hz)
LEA_f0 = 6.6 * 10**9 

# Target coupling quality factor
RES_Qc = 1e5

# Substrate relative permittivity
SUB_er = 11.7 # intrinsic silicon

### Parasitics ###

# Qubit pocket to ground is 10 fF in series with 60 fF
LEA_Cqb = 10.6*62/(10.6+62) * 1e-15 # (F)

# Coupling capacitance to SFQ driver at the end of the resonator
LEA_Csfq = 12e-15 # (F)

# Total parasitic capacitance
Cparasitic = LEA_Cqb + LEA_Csfq

In [8]:
RES_Qc = [75000, 10000]
LEA_f0 = [6.55e9, 6.65e9]
LEA_Csfq = [0, 12e-15]
static_lengths = [3029+60, 3609+125]
for n in range(len(RES_Qc)):
    Cparasitic = LEA_Cqb + LEA_Csfq[n]
    RES_params = calcQuarterWavelength(CPW_w,CPW_s,LEA_f0[n],SUB_er,Cparasitic,0)
    LEA_mutual = calcMutual(RES_params.z0, RES_params.L, 2*pi*RES_params.f0, RES_Qc[n])
    resonator = calcQuarterWavelength(CPW_w,CPW_s,LEA_f0[n],SUB_er,Cparasitic,LEA_mutual)
    
    print '---- Resonator {0} ----\n'.format(n)
    print 'Coupling Q:      {0}'.format(RES_Qc[n])
    print 'Target Center F: {0} GHz'.format(LEA_f0[n]/float(1e9))
    print 'Coupling Mutual: {:.2f} pH'.format(LEA_mutual*10**12)
    print 'Unpulled F:      {:.3f} GHz'.format(resonator.f0/float(1e9))
    print 'lambda/4 length: {:.2f} um'.format(resonator.quarterlength*10**6)
    print 'Required ext. l: {:.2f} um \n\n'.format((resonator.quarterlength*10**6 - static_lengths[n])/float(4))


---- Resonator 0 ----

Coupling Q:      75000
Target Center F: 6.55 GHz
Coupling Mutual: 7.05 pH
Unpulled F:      6.644 GHz
lambda/4 length: 4476.47 um
Required ext. l: 346.87 um 


---- Resonator 1 ----

Coupling Q:      10000
Target Center F: 6.65 GHz
Coupling Mutual: 18.71 pH
Unpulled F:      6.885 GHz
lambda/4 length: 4320.14 um
Required ext. l: 146.53 um 



In [ ]: