Josephson junction

class qucat.J(node_minus, node_plus, *args, use_E=False, use_I=False)[source]

A class representing a junction

Parameters:
  • node_minus (integer) – Index corresponding to one node of junction

  • node_minus – Index corresponding to the other node of the junction

  • args (<float> or <str> or <float>,<str>) – Other arguments should be a float which by default corresponds to the Josephson inductance of the junction, a string corresponding to the name of that value (ex: “L_J”), or both. If only a label is provided, a value for this junction should be passed as a keyword argument in subsequent function calls (ex: L_J = 10e-9). This is the best way to proceed if one wants to sweep the value of this junction. Indeed, the most computationally expensive part of the analysis is performed upon initializing the circuit, subsequently changing the value of a component and re-calculating a quantity such as the frequency or anharmonicity can be performed much faster.

  • use_E (Boolean) – If set to True, the junction will be parametrized by its Josephson energy, given in units of Hertz, rather than its Josephson inductance

  • use_I (Boolean) – If set to True, the junction will be parametrized by its critical current, given in units of Ampere, rather than its Josephson inductance

anharmonicity(mode, **kwargs)[source]

Returns the contribution of this junction to the anharmonicity of a given normal mode.

Returned in units of Hertz, not angular frequency.

Parameters:
  • kwargs – Values for un-specified circuit components, ex: L=1e-9.

  • mode (integer) – where 0 designates the lowest frequency mode, and the others are arranged in order of increasing frequency

Returns:

contribution of this junction to the anharmonicity of a given normal mode

Return type:

float

Notes

The quantity returned is the anharmonicity of the mode m if this junction were the only junction present in the circuit (i.e. if all the others were replaced by linear inductors).

The total anharmonicity of a mode (in first order perturbation theory) is obtained by summing these contribution over all modes.

For more details, see https://arxiv.org/pdf/1908.10342.pdf

zpf(mode, quantity, **kwargs)

Returns contribution of a mode to the zero-point fluctuations of a quantity for this component.

The quantity can be current (in units of Ampere), voltage (in Volts), charge (in electron charge), or flux (in units of the reduced flux quantum, \(\hbar/2e\)).

Parameters:
  • mode (integer) – Determine what mode to consider, where 0 designates the lowest frequency mode, and the others are arranged in order of increasing frequency

  • quantity (string) – One of ‘current’, ‘flux’, ‘charge’, ‘voltage’

  • kwargs – Values for un-specified circuit components, ex: L=1e-9.

Returns:

contribution of the mode to the zero-point fluctuations of the quantity

Return type:

float

Notes

This quantity is calculated by multiplying the voltage transfer function \(T_{rc}\) (between a reference component \(r\) and the annotated component \(c\) ), with \(X_{zpf,m,r}\), the zero-point fluctuations of \(\hat{X}\) at the reference component.

Note that resistors make the transfer function \(T_{rc}\), and hence this quantity, complex.

For more detail on the underlying theory, see https://arxiv.org/pdf/1908.10342.pdf.