LRU_F0G1#

Module: iqm.pulse.gates.lru

class iqm.pulse.gates.lru.LRU_F0G1(parent, name, locus, calibration_data, builder)#

Bases: SinglePulseGate

Leakage 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

parameters

Required calibration data, may be nested

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

get_locus_mapping_name

Get the name of the locus mapping stored in ScheduleBuilder.ChipTopology for this implementation.

Parameters:
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.ChipTopology for this implementation.

By default, it is "<operation_name>.<implementation_name>". Inheriting classes may override this for different behaviour.

Parameters:
  • operation_name (str) – name of the quantum operation.

  • implementation_name (str) – name of the implementation

Returns:

name of the locus mapping

Return type:

str

Inheritance

Inheritance diagram of iqm.pulse.gates.lru.LRU_F0G1