surface_sim.experiments.arbitrary_experiment.schedule_from_instructions#

schedule_from_instructions(instructions)[source]#

Builds a schedule from a list of instructions. In each block, layouts only participate in a single operation and QEC-like rounds are only performed to active layouts. Addling is automatically added to layouts not participating in a logical operation.

Parameters:
instructions

List of operations to be applied to a single qubit or pair of qubits. See Notes for more information.

Returns:
blocks

List of blocks from the schedule. Each block contains a set of logical operations for the active layouts. Each layout only performs a single logical operation in each block. If a layout is not performing any logical operation while others are (and it is not a QEC-like round), then idle_iterator is inserted with this layout. QEC-like rounds and logical operations cannot be mixed together.

Notes

The term QEC-like rounds refers to any LogOpCallable that is in surface_sim.util.circuit_operations.QEC_OP_TYPES.

Adding idle_iterator is needed to have Model.incoming_noise for a layout that is idling.

As an example, the code

is transformed into