Reset_Wait#

class iqm.pulse.gates.reset.Reset_Wait(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Reset operation by relaxation (idling for a time comparable to the relaxation time of the component).

Adds a Wait pulse for all the (non-virtual) channels of the locus components. In addition, blocks all the probes associated with the locus and in case the locus is connected via couplers, blocks them as well. The operation is factorizable, so that the calibration data it uses (i.e. the wait duration in seconds) is defined for each component, and when acting on multiple components, the maximum of the associated wait durations will be applied.

Reset by relaxation is intended to be used in the circuit initialisation between shots / segments. It also can be called on specific qubits inside a segment, but as it works by waiting longer than the qubit relaxation time, the states of all the other qubits will likely have been destroyed as well by the time the reset has finished.

Module: iqm.pulse.gates.reset

Attributes

parameters

Required calibration data, may be nested

Methods

duration_in_seconds

Duration of the Schedule of the gate implementation (in seconds).

get_custom_locus_mapping

Supported loci: all components that have channels.

wait_box

TimeBox that contains Wait instructions for all non-virtual channels associated with self.locus.

Parameters:
parameters: NestedParams = {'duration': Parameter(name='', label='Wait duration', unit='s', data_type=<DataType.NUMBER: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None, _parent_name=None, _parent_label=None)}#

Required calibration data, may be nested

wait_box()#

TimeBox that contains Wait instructions for all non-virtual channels associated with self.locus.

Does not block any additional components beside the locus itself.

Return type:

TimeBox

_call()#

The GateImplementation-specific logic for implementing a quantum operation.

Inheriting classes may override this method if the default __call__() caching (based on the args & kwargs in the signature) is sufficient. Any additional caching may also be implemented inside this function if needed.

Return type:

TimeBox

duration_in_seconds()#

Duration of the Schedule of the gate implementation (in seconds).

Can be left unimplemented if the duration e.g. depends on the gate arguments. Subclasses can reimplement this method in case it makes sense in their context.

Return type:

float

classmethod get_custom_locus_mapping(chip_topology, component_to_channels)#

Supported loci: all components that have channels.

Parameters:
Return type:

dict[tuple[str, …] | frozenset[str], tuple[str, …]] | None