LRU_F0G1#
Module: iqm.pulse.gates.lru
- class iqm.pulse.gates.lru.LRU_F0G1(parent, name, locus, calibration_data, builder)#
Bases:
SinglePulseGateLeakage reduction unit implementation driving the \(|f0\rangle \leftrightarrow |g1\rangle\) transition.
This gate implementation removes qubit leakage (population of the \(|2\rangle\) state) by driving at the frequency of the \(|f0\rangle \leftrightarrow |g1\rangle\) transition which causes Rabi oscillation between those two states. The excited readout resonator quickly decays to its ground state, thus eventually causing the \(|2\rangle\) state population of the qubit to move to the \(|0\rangle\) state (basis here: \(|\text{qubit}, \text{readout resonator}\rangle\)).
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: NestedParams = {'amplitude': Parameter(name='', label='F0G1 pulse amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'duration': Parameter(name='', label='F0G1 pulse duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'full_width': Parameter(name='', label='F0G1 pulse width', 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=''), 'phase_increment': Setting(parameter=Parameter(name='', label='F0G1 pulse phase increment', unit='', 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
