qibocal.protocols.two_qubit_interaction.chevron package#

Submodules#

qibocal.protocols.two_qubit_interaction.chevron.chevron module#

SWAP experiment for two qubit gates, chevron plot.

class qibocal.protocols.two_qubit_interaction.chevron.chevron.ChevronParameters(amplitude_min_factor: float, amplitude_max_factor: float, amplitude_step_factor: float, duration_min: float, duration_max: float, duration_step: float, dt: Optional[int] = 0, parking: bool = True)[source]#

Bases: Parameters

CzFluxTime runcard inputs.

amplitude_min_factor: float#

Amplitude minimum.

amplitude_max_factor: float#

Amplitude maximum.

amplitude_step_factor: float#

Amplitude step.

duration_min: float#

Duration minimum.

duration_max: float#

Duration maximum.

duration_step: float#

Duration step.

dt: Optional[int] = 0#

Time delay between flux pulses and readout.

parking: bool = True#

Wether to park non interacting qubits or not.

property amplitude_range#
property duration_range#
class qibocal.protocols.two_qubit_interaction.chevron.chevron.ChevronResults(amplitude: dict[Tuple[Union[str, int], Union[str, int]], float], duration: dict[Tuple[Union[str, int], Union[str, int]], int])[source]#

Bases: Results

CzFluxTime outputs when fitting will be done.

amplitude: dict[Tuple[Union[str, int], Union[str, int]], float]#

CZ angle.

duration: dict[Tuple[Union[str, int], Union[str, int]], int]#

Virtual Z phase correction.

qibocal.protocols.two_qubit_interaction.chevron.chevron.ChevronType = dtype([('amp', '<f8'), ('length', '<f8'), ('prob_high', '<f8'), ('prob_low', '<f8')])#

Custom dtype for Chevron.

class qibocal.protocols.two_qubit_interaction.chevron.chevron.ChevronData(native_amplitude: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, sweetspot: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, data: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], numpy.ndarray[typing.Any, numpy.dtype[dtype([('amp', '<f8'), ('length', '<f8'), ('prob_high', '<f8'), ('prob_low', '<f8')])]]] = <factory>)[source]#

Bases: Data

Chevron acquisition outputs.

native_amplitude: dict[Tuple[Union[str, int], Union[str, int]], float]#

CZ platform amplitude for qubit pair.

sweetspot: dict[Tuple[Union[str, int], Union[str, int]], float]#

Sweetspot value for high frequency qubit.

data: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], numpy.ndarray[typing.Any, numpy.dtype[dtype([('amp', '<f8'), ('length', '<f8'), ('prob_high', '<f8'), ('prob_low', '<f8')])]]]#
register_qubit(low_qubit, high_qubit, length, amp, prob_low, prob_high)[source]#

Store output for single qubit.

amplitudes(pair)[source]#

Unique pair amplitudes

durations(pair)[source]#

Unique pair durations.

low_frequency(pair)[source]#
high_frequency(pair)[source]#
qibocal.protocols.two_qubit_interaction.chevron.chevron.chevron = Routine(acquisition=<function _aquisition>, fit=<function _fit>, report=<function _plot>, update=<function _update>, two_qubit_gates=True)#

Chevron routine.

qibocal.protocols.two_qubit_interaction.chevron.chevron_signal module#

SWAP experiment for two qubit gates, chevron plot.

class qibocal.protocols.two_qubit_interaction.chevron.chevron_signal.ChevronSignalParameters(amplitude_min_factor: float, amplitude_max_factor: float, amplitude_step_factor: float, duration_min: float, duration_max: float, duration_step: float, dt: Optional[int] = 0, parking: bool = True)[source]#

Bases: ChevronParameters

ChevronSignal runcard inputs.

class qibocal.protocols.two_qubit_interaction.chevron.chevron_signal.ChevronSignalResults(amplitude: dict[Tuple[Union[str, int], Union[str, int]], float], duration: dict[Tuple[Union[str, int], Union[str, int]], int])[source]#

Bases: ChevronResults

ChevronSignal outputs when fitting will be done.

qibocal.protocols.two_qubit_interaction.chevron.chevron_signal.ChevronSignalType = dtype([('amp', '<f8'), ('length', '<f8'), ('signal_high', '<f8'), ('signal_low', '<f8')])#

Custom dtype for Chevron.

class qibocal.protocols.two_qubit_interaction.chevron.chevron_signal.ChevronSignalData(native_amplitude: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, sweetspot: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, data: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], numpy.ndarray[typing.Any, numpy.dtype[dtype([('amp', '<f8'), ('length', '<f8'), ('signal_high', '<f8'), ('signal_low', '<f8')])]]] = <factory>)[source]#

Bases: ChevronData

Chevron acquisition outputs.

data: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], numpy.ndarray[typing.Any, numpy.dtype[dtype([('amp', '<f8'), ('length', '<f8'), ('signal_high', '<f8'), ('signal_low', '<f8')])]]]#
register_qubit(low_qubit, high_qubit, length, amp, signal_low, signal_high)[source]#

Store output for single qubit.

low_frequency(pair)[source]#
high_frequency(pair)[source]#
qibocal.protocols.two_qubit_interaction.chevron.chevron_signal.chevron_signal = Routine(acquisition=<function _aquisition>, fit=<function _fit>, report=<function _plot>, update=<function _update>, two_qubit_gates=True)#

Chevron routine.

qibocal.protocols.two_qubit_interaction.chevron.utils module#

qibocal.protocols.two_qubit_interaction.chevron.utils.COUPLER_PULSE_START = 0#

Start of coupler pulse.

qibocal.protocols.two_qubit_interaction.chevron.utils.COUPLER_PULSE_DURATION = 100#

Duration of coupler pulse.

qibocal.protocols.two_qubit_interaction.chevron.utils.chevron_sequence(platform: Platform, pair: Tuple[Union[str, int], Union[str, int]], duration_max: int, parking: bool = False, dt: int = 0)[source]#

Chevron pulse sequence.

qibocal.protocols.two_qubit_interaction.chevron.utils.chevron_fit(x, omega, phase, amplitude, offset)[source]#