Andreev

Andreev pair qubit: pure Andreev bound states in a superconducting weak link, discretized in the charge basis.

class HybridSuperQubits.andreev.Andreev(Ec, Gamma, delta_Gamma, er, phase, ng, n_cut, Delta=40)[source]

Bases: QubitBase

PARAM_LABELS: dict[str, str] = {'Ec': '$E_C$', 'Gamma': '$\\Gamma$', 'delta_Gamma': '$\\delta \\Gamma$', 'er': '$\\epsilon_r$', 'ng': '$n_g$', 'phase': '$\\Phi_{ext} / \\Phi_0$'}
OPERATOR_LABELS: dict[str, str] = {'d_hamiltonian_d_deltaGamma': '\\partial \\hat{H} / \\partial \\delta \\Gamma', 'd_hamiltonian_d_er': '\\partial \\hat{H} / \\partial \\epsilon_r', 'd_hamiltonian_d_ng': '\\partial \\hat{H} / \\partial n_g', 'n_operator': '\\hat{n}'}
__init__(Ec, Gamma, delta_Gamma, er, phase, ng, n_cut, Delta=40)[source]

Initializes the Ferbo class with the given parameters.

Parameters:
  • Ec (float) – Charging energy.

  • Gamma (float) – Coupling strength.

  • delta_Gamma (float) – Coupling strength difference.

  • er (float) – Energy relaxation rate.

  • phase (float) – External magnetic phase.

  • dimension (int) – Dimension of the Hilbert space.

  • ng (float) – Charge offset.

  • n_cut (int) – Maximum number of charge states.

  • Delta (float) – Superconducting gap.

n_operator()[source]

Returns the charge number operator adjusted for half-charge translations.

Returns:

The charge number operator.

Return type:

np.ndarray

jrl_potential()[source]

Returns the Josephson Resonance Level potential in the half-charge basis.

Returns:

The Josephson Resonance Level potential.

Return type:

np.ndarray

hamiltonian()[source]

Returns the Hamiltonian of the system.

Returns:

The Hamiltonian of the system.

Return type:

np.ndarray

d_hamiltonian_d_ng()[source]

Returns the derivative of the Hamiltonian with respect to the number of charge offset.

Returns:

The derivative of the Hamiltonian with respect to the number of charge offset.

Return type:

np.ndarray

d_hamiltonian_d_phase()[source]

Returns the derivative of the Hamiltonian with respect to the external magnetic phase.

Returns:

The derivative of the Hamiltonian with respect to the external magnetic phase.

Return type:

np.ndarray

d_hamiltonian_d_er()[source]

Returns the derivative of the Hamiltonian with respect to the energy relaxation rate.

Returns:

The derivative of the Hamiltonian with respect to the energy relaxation rate.

Return type:

Qobj

d_hamiltonian_d_deltaGamma()[source]

Returns the derivative of the Hamiltonian with respect to the coupling strength difference.

Returns:

The derivative of the Hamiltonian with respect to the coupling strength difference.

Return type:

Qobj

numberbasis_wavefunction(which=0, esys=None)[source]

Returns a wave function in the number basis.

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

  • esys (Tuple[np.ndarray, np.ndarray], optional) – Precomputed eigenvalues and eigenvectors (default is None).

Returns:

Wave function data containing basis labels, amplitudes, and energy.

Return type:

Dict[str, Any]

wavefunction(which=0, phi_grid=None, esys=None, basis='default')[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.

  • basis (Literal["default", "abs"], optional) – Basis in which to return the wave function (‘default’ or ‘abs’) (default is ‘default’).

  • esys (tuple[ndarray, ndarray])

Returns:

Wave function data containing basis labels, amplitudes, and energy.

Return type:

Dict[str, Any]

potential(phi)[source]

Calculates the potential energy for given values of phi.

Parameters:

phi (Union[float, np.ndarray]) – The phase values at which to calculate the potential.

Returns:

The potential energy values.

Return type:

np.ndarray

plot_wavefunction(which=0, phi_grid=None, esys=None, scaling=None, basis='default', **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.

  • basis (Literal["default", "abs"], optional) – Basis in which to return the wavefunction (‘default’ or ‘abs’) (default is ‘default’).

  • **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]