Transmon#

../../_images/transmon.png

The transmon qubit [Koch2007] is described by the Hamiltonian

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

expressed in discrete charge basis. Here, \(E_C\) is the charging energy, \(E_J\) the Josephson energy, and \(n_g\) the offset charge. Within the Transmon class, charge-basis representation is employed with a charge-number cutoff specified by ncut. This cutoff must be chosen sufficiently large for convergence.

An instance of the transmon qubit is initialized as follows:

transmon = scqubits.Transmon(EJ=30.02,
                              EC=1.2,
                              ng=0.3,
                              ncut=31)

From within Jupyter notebook, a transmon instance can alternatively be created with:

transmon = scqubits.Transmon.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.Transmon.numberbasis_wavefunction([...])

Return the transmon wave function in number basis.

scqubits.Transmon.wavefunction([esys, ...])

Return the transmon wave function in phase basis.

scqubits.Transmon.plot_n_wavefunction([...])

Plots transmon wave function in charge basis

scqubits.Transmon.plot_phi_wavefunction([...])

Alias for plot_wavefunction

Implemented operators#

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

scqubits.Transmon.n_operator([energy_esys])

Returns charge operator n in the charge or eigenenergy basis.

scqubits.Transmon.exp_i_phi_operator([...])

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

scqubits.Transmon.cos_phi_operator([energy_esys])

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

scqubits.Transmon.sin_phi_operator([energy_esys])

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

Computation and visualization of matrix elements#

scqubits.Transmon.matrixelement_table(operator)

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

scqubits.Transmon.plot_matrixelements(operator)

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

scqubits.Transmon.get_matelements_vs_paramvals(...)

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

scqubits.Transmon.plot_matelem_vs_paramvals(...)

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

Estimation of coherence times#

scqubits.Transmon.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.Transmon.plot_t1_effective_vs_paramvals(...)

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

scqubits.Transmon.plot_t2_effective_vs_paramvals(...)

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

scqubits.Transmon.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.Transmon.t1_capacitive([i, j, ...])

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

scqubits.Transmon.t1_charge_impedance([i, ...])

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

scqubits.Transmon.t1_effective([...])

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

scqubits.Transmon.t2_effective([...])

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

scqubits.Transmon.tphi_1_over_f(A_noise, i, ...)

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

scqubits.Transmon.tphi_1_over_f_cc([...])

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