Barrier#

Module: iqm.pulse.gates.barrier

class iqm.pulse.gates.barrier.Barrier(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

GateImplementation for the n-qudit barrier metaoperation.

Returns a schedule with zero-duration Block metainstructions. When this is appended to another Schedule, it causes the affected channels to be padded with Wait instructions to the same length, which in turn imposes a definite temporal order for the operations on different sides of the barrier (the ones preceding it are always executed first).

Note

Assumes that all instructions involve either the drive, flux or probe channels of the locus QPU components.

Parameters:

Attributes

symmetric

True iff the implementation is symmetric in its locus components, meaning a permuted locus produces the same Schedule/TimeBox.

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

duration_in_seconds

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

symmetric: bool = True#

True iff the implementation is symmetric in its locus components, meaning a permuted locus produces the same Schedule/TimeBox. Only meaningful if self.parent.arity != 1, and the locus components are of the same type.

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

Inheritance

Inheritance diagram of iqm.pulse.gates.barrier.Barrier