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, native: str = 'CZ')[source]#
Bases:
Parameters
CzFluxTime runcard inputs.
- 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], native: str = 'CZ')[source]#
Bases:
Results
CzFluxTime outputs when fitting will be done.
- 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>, native: str = 'CZ', 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>, label: ~typing.Optional[str] = None)[source]#
Bases:
Data
Chevron acquisition outputs.
- native_amplitude: dict[Tuple[Union[str, int], Union[str, int]], float]#
CZ platform amplitude for qubit pair.
- _to_npz(path: Path, filename: str)#
Helper function to use np.savez while converting keys into strings.
- property pairs#
Access qubit pairs ordered alphanumerically from data structure.
- property qubits#
Access qubits from data structure.
- 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')])]]]#
- qibocal.protocols.two_qubit_interaction.chevron.chevron._aquisition(params: ChevronParameters, platform: Platform, targets: list[Tuple[Union[str, int], Union[str, int]]]) ChevronData [source]#
Perform an CZ experiment between pairs of qubits by changing its frequency.
- Parameters:
platform – Platform to use.
params – Experiment parameters.
targets (list) – List of pairs to use sequentially.
- Returns:
Acquisition data.
- Return type:
- qibocal.protocols.two_qubit_interaction.chevron.chevron._fit(data: ChevronData) ChevronResults [source]#
- qibocal.protocols.two_qubit_interaction.chevron.chevron._plot(data: ChevronData, fit: ChevronResults, target: Tuple[Union[str, int], Union[str, int]])[source]#
Plot the experiment result for a single pair.
- qibocal.protocols.two_qubit_interaction.chevron.chevron._update(results: ChevronResults, platform: Platform, target: Tuple[Union[str, int], Union[str, int]])[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, native: str = 'CZ')[source]#
Bases:
ChevronParameters
ChevronSignal runcard inputs.
- property amplitude_range#
- property duration_range#
- 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], native: str = 'CZ')[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>, native: str = 'CZ', 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>, label: ~typing.Optional[str] = None)[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.
- _to_npz(path: Path, filename: str)#
Helper function to use np.savez while converting keys into strings.
- amplitudes(pair)#
Unique pair amplitudes.
- durations(pair)#
Unique pair durations.
- property pairs#
Access qubit pairs ordered alphanumerically from data structure.
- property qubits#
Access qubits from data structure.
- qibocal.protocols.two_qubit_interaction.chevron.chevron_signal._aquisition(params: ChevronSignalParameters, platform: Platform, targets: list[Tuple[Union[str, int], Union[str, int]]]) ChevronSignalData [source]#
Perform an iSWAP/CZ experiment between pairs of qubits by changing its frequency.
- Parameters:
params – Experiment parameters.
platform – Platform to use.
targets (list) – List of pairs to use sequentially.
- Returns:
Acquisition data.
- Return type:
- 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.