Reset_F0G1#
Module: iqm.pulse.gates.reset
- class iqm.pulse.gates.reset.Reset_F0G1(parent, name, locus, calibration_data, builder)#
Bases:
SinglePulseGateReset by driving the \(|f0\rangle \leftrightarrow |g1\rangle\) transition.
This gate implementation resets the qubit by driving the \(|f0\rangle \leftrightarrow |g1\rangle\) transition (basis here: \(|\text{qubit}, \text{readout resonator}\rangle\)) and the \(|e\rangle \leftrightarrow |f\rangle\) transition simultaneously. The principle is the same as for the
lrugate (seeLRU_F0G1), except here we additionally drive the \(|e\rangle \leftrightarrow |f\rangle\) to also reset the \(|e\rangle\) state, not just the \(|f\rangle\) state. The reset happens due to quick dissipation in the resonator. This operation is therefore non-unitary.The gate is implemented via a :class:
MultiplexedIQPulse, combining two modulated pulses which are supposed to drive each of the above mentioned transitions.See [1] for reference of an experiment where such a pulse was used.
Attributes
Required calibration data, may be nested
idUnique str identifier, needed for certain caching properties.
sub_implementationsSingle-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.
Methods
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopologyfor this implementation.- Parameters:
parent (QuantumOp)
name (str)
locus (Locus)
calibration_data (OILCalibrationData)
builder (ScheduleBuilder)
- parameters: dict[str, Parameter | Setting | dict] = {'duration': Parameter(name='', label='Multiplexed pulse duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'ef_pulse': {'amplitude_i': Parameter(name='', label='EF pulse channel I amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'amplitude_q': Parameter(name='', label='EF pulse channel Q amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='EF pulse full width', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'modulation_frequency': Setting(parameter=Parameter(name='', label='EF pulse modulation frequency', unit='Hz', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=0.0, read_only=False, path=''), 'offset': Setting(parameter=Parameter(name='', label='EF pulse offset from the F0G1 pulse', unit='s', data_type=<DataType.INT: 5>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=0.0, read_only=False, path=''), 'rise_time': Parameter(name='', label='EF pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}, 'f0g1_pulse': {'amplitude': Parameter(name='', label='F0G1 pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='F0G1 pulse duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'modulation_frequency': Setting(parameter=Parameter(name='', label='F0G1 pulse modulation frequency', unit='Hz', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=0.0, read_only=False, path=''), 'rise_time': Parameter(name='', label='F0G1 pulse rise time', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}}#
Required calibration data, may be nested
- classmethod get_locus_mapping_name(operation_name, implementation_name)#
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopologyfor this implementation.By default, it is
"<operation_name>.<implementation_name>". Inheriting classes may override this for different behaviour.
Inheritance
