surface_sim.layouts.repetition_code#

repetition_code(stab_type, distance, logical_qubit_label='L0', init_point=(1, 1), init_data_qubit_id=1, init_zanc_qubit_id=1, init_xanc_qubit_id=1, init_ind=0, init_logical_ind=0, interaction_order='shallow')[source]#

Generates a repetition code layout.

Parameters:
stab_type

Stabilizer type for the repetition code: "x_type" or "z_type".

distance

The distance of the code.

logical_qubit_label

Label for the logical qubit, by default "L0".

init_point

Coordinates for the bottom left (i.e. southest west) data qubit. By default 1, so the label is "D1".

init_data_qubit_id

Index for the bottom left (i.e. southest west) data qubit. By default 1, so the label is "D1".

init_zanc_qubit_id

Index for the bottom left (i.e. southest west) Z-type ancilla qubit. By default 1, so the label is "Z1".

init_xanc_qubit_id

Index for the bottom left (i.e. southest west) X-type ancilla qubit. By default 1, so the label is "X1".

init_ind

Minimum index that is going to be associated to a qubit.

init_logical_ind

Minimum index that is going to be associated to a logical qubit.

interaction_order

There are two options for built-in interaction orders: "shallow" and "surface_code". The "shallow" one corresponds to two two-qubit-gate layers, while the "surface_code" one corresponds to the same schedule as the surface code layout (mimic what it is usually done in experiments). One can always specify the interaction order in the same format as for the rotated surface code layouts. By default "shallow".

Returns:
Layout

The layout of the code.