TunableTransmon#

../../_images/tunable_transmon.png

The flux-tunable transmon qubit [Koch2007] is a simple modification of the fixed-frequency transmon obtained. It is obtained by replacing the Josephson junction by a SQUID loop of two Josephson junctions. A flux threaded through this loop can then be used to change the effective Josephson energy of the circuit and thus make the transmon tunable.

\[H = 4E_\text{C}(\hat{n}-n_g)^2-\frac{1}{2}E_\text{J,eff}(\Phi_\text{ext})\sum_n(|n\rangle\langle n+1|+\text{h.c.}),\]

expressed in the charge basis. Here, the parameters are those of the fixed-frequency transmon except for the effective Josephson energy \(E_\text{J,eff}(\Phi_\text{ext}) = E_{\text{J,max}} \sqrt{\cos^2(\pi\Phi_\text{ext}/\Phi_0)+ d^2 \sin^2 (\pi\Phi_\text{ext}/\Phi_0)}\), where \(E_\text{J,max} = E_\text{J1} + E_\text{J2}\) is the maximum Josephson energy, and \(d=(E_\text{J1}-E_\text{J2})/(E_\text{J1}+E_\text{J2})\) is the relative junction asymmetry.

An instance of a tunable transmon qubit is created like this:

tune_tmon = scqubits.TunableTransmon(
   EJmax=50.0,
   EC=0.5,
   d=0.01,
   flux=0.0,
   ng=0.0,
   ncut=30
)

From within Jupyter notebook, a GUI-based creation is supported via:

tune_tmon = scqubits.TunableTransmon.create()

This functionality is enabled if the ipywidgets package is installed, and displays GUI forms prompting for the entry of the required parameters.

Wavefunctions and visualization of eigenstates#

scqubits.TunableTransmon.numberbasis_wavefunction([...])

Return the transmon wave function in number basis.

scqubits.TunableTransmon.wavefunction([...])

Return the transmon wave function in phase basis.

scqubits.TunableTransmon.plot_n_wavefunction([...])

Plots transmon wave function in charge basis

scqubits.TunableTransmon.plot_phi_wavefunction([...])

Alias for plot_wavefunction

Implemented operators#

The following operators are implemented for use in matrix element calculations.

scqubits.TunableTransmon.n_operator([...])

Returns charge operator n in the charge or eigenenergy basis.

scqubits.TunableTransmon.exp_i_phi_operator([...])

Returns operator \(e^{i\varphi}\) in the charge or eigenenergy basis.

scqubits.TunableTransmon.cos_phi_operator([...])

Returns operator \(\cos \varphi\) in the charge or eigenenergy basis.

scqubits.TunableTransmon.sin_phi_operator([...])

Returns operator \(\sin \varphi\) in the charge or eigenenergy basis.

Computation and visualization of matrix elements#

scqubits.TunableTransmon.matrixelement_table(...)

Returns table of matrix elements for operator with respect to the eigenstates of the qubit.

scqubits.TunableTransmon.plot_matrixelements(...)

Plots matrix elements for operator, given as a string referring to a class method that returns an operator matrix.

scqubits.TunableTransmon.get_matelements_vs_paramvals(...)

Calculates matrix elements for a varying system parameter, given an array of parameter values.

scqubits.TunableTransmon.plot_matelem_vs_paramvals(...)

Generates a simple plot of a set of eigenvalues as a function of one parameter.

Estimation of coherence times#

scqubits.TunableTransmon.plot_coherence_vs_paramvals(...)

Show plots of coherence for various channels supported by the qubit as they vary as a function of a changing parameter.

scqubits.TunableTransmon.plot_t1_effective_vs_paramvals(...)

Plot effective \(T_1\) coherence time (rate) as a function of changing parameter.

scqubits.TunableTransmon.plot_t2_effective_vs_paramvals(...)

Plot effective \(T_2\) coherence time (rate) as a function of changing parameter.

scqubits.TunableTransmon.t1(i, j, noise_op, ...)

Calculate the transition time (or rate) using Fermi's Golden Rule due to a noise channel with a spectral density spectral_density and system noise operator noise_op.

scqubits.TunableTransmon.t1_capacitive([i, ...])

\(T_1\) due to dielectric dissipation in the Josephson junction capacitances.

scqubits.TunableTransmon.t1_charge_impedance([...])

Noise due to charge coupling to an impedance (such as a transmission line).

scqubits.TunableTransmon.t1_effective([...])

Calculate the effective \(T_1\) time (or rate).

scqubits.TunableTransmon.t1_flux_bias_line([...])

Noise due to a bias flux line.

scqubits.TunableTransmon.t2_effective([...])

Calculate the effective \(T_2\) time (or rate).

scqubits.TunableTransmon.tphi_1_over_f(...)

Calculate the 1/f dephasing time (or rate) due to arbitrary noise source.

scqubits.TunableTransmon.tphi_1_over_f_cc([...])

Calculate the 1/f dephasing time (or rate) due to critical current noise.

scqubits.TunableTransmon.tphi_1_over_f_flux([...])

Calculate the 1/f dephasing time (or rate) due to flux noise.