Josephson junction array (JJA)

Models an array of Josephson junctions as a metamaterial, computing plasma frequencies, resonance modes, dispersion relations, and Kerr nonlinearities.

class HybridSuperQubits.jja.JosephsonJunctionArray(Lj, Cj, Cg, N)[source]

Bases: object

Parameters:
__init__(Lj, Cj, Cg, N)[source]

Initialize the Josephson Junction Array with the given parameters.

Parameters: Lj (float): Inductance of the junctions in Henries. Cj (float): Capacitance of the junctions in Farads. Cg (float): Capacitance to ground in Farads. N (int): Number of junctions in the array.

Parameters:
property plasma_frequency: float

Calculate the plasma frequency of the Josephson Junction Array.

Returns: float: Plasma frequency in GHz.

property C_ratio: float

Calculate the capacitance ratio Cg/Cj.

Returns: float: Capacitance ratio.

resonance_frequencies()[source]

Calculate the resonance frequencies in Hz of the Josephson Junction Array.

Returns:

np.ndarray

Resonance frequencies in Hz.

Return type:

ndarray

group_velocity()[source]

Calculate the group velocity of the Josephson Junction Array.

Returns: np.ndarray: Group velocity in GHz for each mode.

Return type:

float

kerr_matrix()[source]

Compute the Kerr matrix K_{kk’} for the Josephson Junction Array using the analytical formula. Units in GHz.

This implementation is based on Eq. (14) from: Krupko et al., “Kerr nonlinearity in a superconducting Josephson metamaterial”.

Returns:

A (N, N) matrix of Kerr coefficients.

Return type:

np.ndarray

static analytical_mode_frequencies(f_p, c_ratio, N, k=None)[source]

Static helper method to calculate resonance frequencies from parameters.

Parameters:

f_pfloat

Plasma frequency in Hz.

c_ratiofloat

Capacitance ratio (Cg/Cj).

Nint

Number of junctions in the array.

knp.ndarray, optional

Indices of the modes to calculate. If None, all modes from 1 to N are calculated.

Returns:

np.ndarray

Resonance frequencies in Hz.

Parameters:
Return type:

ndarray

static fit_from_measurements(measured_frequencies, N, mode_indices=None, initial_params=None, param_bounds=None, fixed_params=None)[source]

Fit JJA parameters to measured resonance frequencies.

Parameters:

measured_frequenciesnp.ndarray

Experimentally measured resonance frequencies in GHz.

Nint

Number of junctions in the array.

mode_indicesList[int], optional

Indices of the modes corresponding to the measured frequencies. If None, assumes consecutive modes starting from 1.

initial_paramsDict[str, float], optional

Initial guess for parameters. Can include ‘f_p’ (plasma frequency in GHz) and ‘C_ratio’ (Cg/Cj ratio). If None, reasonable defaults will be used.

param_boundsDict[str, Tuple[float, float]], optional

Bounds for parameters as (min, max) tuples. Can include ‘f_p’ and ‘C_ratio’.

fixed_paramsDict[str, float], optional

Fixed parameters during fitting. Can include ‘Cj’ to fix the junction capacitance, which allows converting fitted parameters back to Lj and Cg.

Returns:

Dict[str, Any]

Dict with detailed results.

Parameters:
Return type:

dict[str, Any]