Qubit designer

The final qubit and resonator system has a bunch of parameters following a set of design equations. The modules found under SQDMetal.Utilities.QubitDesigner facilitate in optimising said parameters. Currently, the supported resonator types are:

The idea is that the qubit designer classes gobble up the resonator object to create the transmon-resonator system. Supported qubit types are:

Resonator types

The resonator classes listed in this section all implement certain functions that can be useful:

ResonatorHalfWave

This represents a λ/2 stripline resonator. The class calculates the equivalent capacitance and inductance depending on whether it is a open or short circuit termination:

from SQDMetal.Utilities.QubitDesigner import ResonatorHalfWave

resonator = ResonatorHalfWave(7.25e9, shorted=False, impedance=50)

The first argument is the resonant frequency (in Hertz). The last two arguments are optional with the default values shown above; that is, a 50Ω λ/2 resonator with an open-ended termination (thus, equivalent to a parallel LC circuit).

ResonatorQuarterWave

This represents a λ/4 stripline resonator. The class calculates the equivalent capacitance and inductance depending on whether it is a open or short circuit termination:

from SQDMetal.Utilities.QubitDesigner import ResonatorQuarterWave

resonator = ResonatorQuarterWave(7.25e9, shorted=True, impedance=50)

The first argument is the resonant frequency (in Hertz). The last two arguments are optional with the default values shown above; that is, a 50Ω λ/4 resonator with a shorted termination (thus, equivalent to a parallel LC circuit).

ResonatorLC

This represents a simple parallel LC circuit. The class can be instantiated by providing any two of: inductance \(L\), capacitance \(C\) and resonant-frequency \(f_0\). For example:

from SQDMetal.Utilities.QubitDesigner import ResonatorLC

resonator1 = ResonatorLC(f0=7.25e9, L=1e-9)
resonator2 = ResonatorLC(f0=7.25e9, C=1e-12)
resonator3 = ResonatorLC(L=1e-9, C=1e-12)

Qubit types

The qubit designer classes all implement an optimise function:

  • The function takes up a dictionary of parameters pertaining to that qubit type

  • Each parameter in the dictionary can be either given as a single floating-point value (that is, a fixed constraint) or a 2-tuple (that is, a bounded interval).

  • The optimise command will try to satisfy all the fixed and interval constraints. Note that if any of the parameters are not provided, a wide interval constraint is taken as a default value.

The function prints a list of the qubit parameters (e.g. \(g\), \(\chi\), anharmonicity etc.).

XmonDesigner

This class is for a simple transmon capacitively coupled to a resonator:

from SQDMetal.Utilities.QubitDesigner import ResonatorHalfWave, XmonDesigner

resonator = ResonatorHalfWave(10.5e9)
XmonDesigner(resonator).optimise({
    'fQubit':9.5e9,
    'C_g':(0.1e-15,10e-15),
    'C_J':(10e-15,150e-15),
    'chi':(-10e6,-0.1e6),
    'Ej/Ec':(1,100)})

FloatingTransmonDesigner

This class is for a floating transmon capacitively coupled to a resonator:

from SQDMetal.Utilities.QubitDesigner import ResonatorHalfWave, FloatingTransmonDesigner

resonator = ResonatorHalfWave(10.5e9)
FloatingTransmonDesigner(resonator).optimise({'fQubit':(1e9, 10e9),
                                            'C_q1':(30.862e-15),
                                            'C_q2':(31.974e-15),
                                            'C_g1':(10.910e-15),
                                            'C_g2':(0.916e-15),
                                            'C_J':(42.461e-15, 55e-15),
                                            'chi':(-0.9e6,-0.2e6),
                                            'Ej/Ec':20})