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:

float

property n_zpf: float

Returns the zero-point fluctuation of the charge number.

Returns:

Zero-point fluctuation of the charge number.

Return type:

float

phi_osc()[source]

Returns the oscillator length for the LC oscillator composed of the inductance and capacitance.

Returns:

Oscillator length.

Return type:

float

n_operator()[source]

Returns the number operator for the qubit.

Returns:

The number operator for the qubit.

Return type:

ndarray

phase_operator()[source]
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

potential(phi)[source]

Calculate the potential energy as a function of phase.

Parameters:

phi (Union[float, np.ndarray]) – Phase value(s) at which to evaluate the potential.

Returns:

Potential energy value(s).

Return type:

Union[float, np.ndarray]

wavefunction(which=0, phi_grid=None, esys=None)[source]

Returns a wave function in the phi basis.

Parameters:
  • which (int, optional) – Index of desired wave function (default is 0).

  • phi_grid (np.ndarray, optional) – Custom grid for phi; if None, a default grid is used.

  • esys (tuple[ndarray, ndarray] | None)

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]