Gatemonium
Gatemonium qubit: a gate-tunable weak link shunted by an inductance, supporting multiple transmission channels.
- class HybridSuperQubits.gatemonium.Gatemonium(Ec, El, Ej, T, phase, dimension, flux_grouping='L', Delta=44)[source]
Bases:
QubitBase- Parameters:
flux_grouping (Literal['L', 'ABS'])
- PARAM_LABELS: dict[str, str] = {'Delta': '$\\Delta$', 'Ec': '$E_C$', 'Ej': '$E_J$', 'El': '$E_L$', 'T': '$T$', 'phase': '$\\Phi_{ext} / \\Phi_0$'}
- OPERATOR_LABELS: dict[str, str] = {'d_hamiltonian_d_Ej': '\\partial \\hat{H} / \\partial E_J', 'd_hamiltonian_d_ng': '\\partial \\hat{H} / \\partial n_g', 'd_hamiltonian_d_phase': '\\partial \\hat{H} / \\partial \\phi_{{ext}}', 'n_operator': '\\hat{n}', 'phase_operator': '\\hat{\\phi}'}
- __init__(Ec, El, Ej, T, phase, dimension, flux_grouping='L', Delta=44)[source]
Initializes the Gatemonium class with the given parameters.
- Parameters:
Ec (float) – Charging energy.
El (float) – Inductive energy.
Ej (float) – Josephson energy.
T (Union[float, List[float], np.ndarray]) – Transmission coefficient(s). Can be a single value or a list/array for multiple channels.
phase (float) – External phase.
dimension (int) – Hilbert space dimension.
flux_grouping (Literal["L", "ABS"], optional) – Grouping of the external flux, either ‘L’ or ‘ABS’ (default is ‘L’).
Delta (float, optional) – Superconducting gap. Default is 44 (for Aluminum).
- property phase_zpf: float
Returns the zero-point fluctuation of the phase.
- Returns:
Zero-point fluctuation of the phase.
- Return type:
- property n_zpf: float
Returns the zero-point fluctuation of the charge number.
- Returns:
Zero-point fluctuation of the charge number.
- Return type:
- phi_osc()[source]
Returns the oscillator length for the LC oscillator composed of the inductance and capacitance.
- Returns:
Oscillator length.
- Return type:
- n_operator()[source]
Returns the number operator for the qubit.
- Returns:
The number operator for the qubit.
- Return type:
ndarray
- junction_potential()[source]
Calculate the total junction potential operator, including both the ABS potential and the standard Josephson potential.
This method returns the operator form (matrix representation) of the junction potential for use in the Hamiltonian. For the scalar energy function, see the potential() method.
The ABS potential is calculated using Fourier coefficients from the ABS energy. The Josephson potential is the standard -Ej*cos(phi) term.
- Returns:
Combined junction potential matrix in the phase basis.
- Return type:
np.ndarray
- hamiltonian()[source]
Calculate the Hamiltonian of the gatemonium qubit.
The Hamiltonian includes: - Kinetic term (4*Ec*n²) - Inductive term (0.5*El*φ²) - Junction potential term (including both ABS and Josephson contributions)
- Returns:
The Hamiltonian matrix.
- Return type:
np.ndarray
- d_hamiltonian_d_phase()[source]
Calculate the derivative of the Hamiltonian with respect to the external phase.
- Returns:
Derivative of the Hamiltonian with respect to the external phase.
- Return type:
np.ndarray
- d_hamiltonian_d_Ej()[source]
Calculate the derivative of the Hamiltonian with respect to Ej.
- Returns:
The derivative matrix.
- Return type:
np.ndarray
- wavefunction(which=0, phi_grid=None, esys=None)[source]
Returns a wave function in the phi basis.
- Parameters:
- Returns:
Wave function data containing basis labels, amplitudes, and energy.
- Return type:
Dict[str, Any]
- plot_wavefunction(which=0, phi_grid=None, esys=None, scaling=None, **kwargs)[source]
Plot the wave function in the phi basis.
- Parameters:
which (Union[int, Iterable[int]], optional) – Index or indices of desired wave function(s) (default is 0).
phi_grid (np.ndarray, optional) – Custom grid for phi; if None, a default grid is used.
esys (Tuple[np.ndarray, np.ndarray], optional) – Precomputed eigenvalues and eigenvectors.
**kwargs –
Additional arguments for plotting. Can include: - fig_ax: Tuple[plt.Figure, plt.Axes], optional
Figure and axes to use for plotting. If not provided, a new figure and axes are created.
scaling (float | None)
- Returns:
The figure and axes of the plot.
- Return type:
Tuple[plt.Figure, plt.Axes]