FluxQubit¶
The flux qubit [Orlando1999] is described by the Hamiltonian
where \(i,j \in \{1,2\}, E_\text{C}=\tfrac{e^2}{2}C^{-1}\) and
\(C_{Ji}\) refers to the capacitance of the \(i^\text{th}\) junction and \(C_{gi}\) refers to the capacitance to ground of the \(i^\text{th}\) island. The Hamiltonian above uses a mixed-basis notation (phase variables for the Josephson terms, charge variables for the charging energy). For numerical diagonalization, the FluxQubit class works entirely in the charge basis for both degrees of freedom. The user must specify a charge-number cutoff ncut, chosen large enough for convergence.
An instance of the flux qubit is initialized as follows. Here, the third Josephson junction is taken to be smaller than the other two by a factor \(\alpha\), the standard junction-asymmetry parameter for the three-junction flux qubit:
EJ = 35.0
alpha = 0.6
fluxqubit = scqubits.FluxQubit(EJ1 = EJ,
EJ2 = EJ,
EJ3 = alpha*EJ,
ECJ1 = 1.0,
ECJ2 = 1.0,
ECJ3 = 1.0/alpha,
ECg1 = 50.0,
ECg2 = 50.0,
ng1 = 0.0,
ng2 = 0.0,
flux = 0.5,
ncut = 10)
From within a Jupyter notebook, a flux qubit instance can alternatively be created with:
fluxqubit = scqubits.FluxQubit.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 and the potential¶
|
Return a flux qubit wave function in \(\phi_1\), \(\phi2\) basis |
|
Plots 2d phase-basis wave function. |
Draw contour plot of the potential energy. |
Implemented operators¶
The following operators are implemented for use in matrix element calculations.
|
Returns the charge number operator conjugate to \(\phi_1\) in the charge? or eigenenergy basis. |
|
Returns the charge number operator conjugate to \(\phi_2\) in the charge? or eigenenergy basis. |
Returns operator \(e^{i\phi_1}\) in the charge or eigenenergy basis. |
|
Returns operator \(e^{i\phi_2}\) in the charge or eigenenergy basis. |
|
Returns operator \(\cos \phi_1\) in the charge or eigenenergy basis. |
|
Returns operator \(\cos \phi_2\) in the charge or eigenenergy basis. |
|
Returns operator \(\sin \phi_1\) in the charge or eigenenergy basis. |
|
Returns operator \(\sin \phi_2\) in the charge or eigenenergy basis. |
Computation and visualization of matrix elements¶
|
Returns table of matrix elements for operator with respect to the eigenstates of the qubit. |
|
Plots matrix elements for operator, given as a string referring to a class method that returns an operator matrix. |
Calculates matrix elements for a varying system parameter, given an array of parameter values. |
|
Generates a simple plot of a set of eigenvalues as a function of one parameter. |
Estimation of coherence times¶
Show plots of coherence for various channels supported by the qubit as they vary as a function of a changing parameter. |
|
Plot effective \(T_1\) coherence time (rate) as a function of changing parameter. |
|
Plot effective \(T_2\) coherence time (rate) as a function of changing parameter. |
|
|
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. |
Calculate the effective \(T_1\) time (or rate). |
|
Calculate the effective \(T_2\) time (or rate). |
|
|
Calculate the 1/f dephasing time (or rate) due to arbitrary noise source. |
Calculate the 1/f dephasing time (or rate) due to critical-current noise from all three Josephson junctions \(EJ1\), \(EJ2\) and \(EJ3\). |