FluxPulseGate_SmoothConstant#

class iqm.pulse.gates.cz.FluxPulseGate_SmoothConstant(parent, name, locus, calibration_data, builder)#

Bases: FluxPulseGate

Flux pulse gate implementation realized as a 3-part pulse sequence, consisting of |cosine rise|Constant|cosine fall|. Otherwise, works similar to FluxPulseGate.

Parameters:
  • flux_pulses – mapping from flux channel name to its flux pulse

  • rz – mapping from drive channel name to the virtual z rotation angle, in radians, that should be performed on it

  • parent (QuantumOp)

  • name (str)

  • locus (Locus)

  • calibration_data (OILCalibrationData)

  • builder (ScheduleBuilder)

Module: iqm.pulse.gates.cz

Attributes

coupler_wave

Flux pulse Waveform to be played in the coupler flux AWG.

parameters

Required calibration data, may be nested

qubit_wave

Flux pulse Waveform to be played in the qubit flux AWG.

root_parameters

Parameters shared by all FluxPulseGate classes.

symmetric

True iff the implementation is symmetric in its locus components.

id

Unique str identifier, needed for certain caching properties.

sub_implementations

Single-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.

Methods

coupler_wave: Constant | None = None#

Flux pulse Waveform to be played in the coupler flux AWG. Can be only Constant or None

qubit_wave: Constant | None = None#

Flux pulse Waveform to be played in the qubit flux AWG. Can be only Constant or None

parameters: NestedParams = {'coupler': {'amplitude': Parameter(name='', label='Coupler pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='Coupler pulse full width', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'rise_time': Parameter(name='', label='Coupler pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}, 'duration': Parameter(name='', label='Gate duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'qubit': {'amplitude': Parameter(name='', label='Qubit pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='Qubit pulse full width', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'rise_time': Parameter(name='', label='Qubit pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}, 'rz': {'*': Parameter(name='', label='Z rotation angle', unit='rad', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}}#

Required calibration data, may be nested

rise_wave#

Waveform, rise part of the 3-pulse sequence to be played with qubit and coupler gates.

alias of CosineRiseFlex

symmetric: bool = True#

True iff the implementation is symmetric in its locus components. Only meaningful if arity != 1, and the locus components are of the same type.

fall_wave#

Waveform, fall part of the 3-pulse sequence to be played with qubit and coupler gates.

alias of CosineFallFlex

root_parameters: dict[str, Parameter | Setting | dict] = {'coupler': {'amplitude': Parameter(name='', label='Coupler pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='Coupler pulse full width', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'rise_time': Parameter(name='', label='Coupler pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}, 'duration': Parameter(name='', label='Gate duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'qubit': {'amplitude': Parameter(name='', label='Qubit pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='Qubit pulse full width', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'rise_time': Parameter(name='', label='Qubit pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}, 'rz': {'*': Parameter(name='', label='Z rotation angle', unit='rad', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}}#

Parameters shared by all FluxPulseGate classes. Inheriting classes may override this if there’s a need for additional calibration parameters.