I'm running simulations using Stim to get logical error rate vs. physical error rates of some quantum error correcting codes (QECC).
I looked into the documentation, but I'm confused about the meaning of "shots" and "rounds". I think I understand the meaning of "shots": repeat the state generation, add random noise at physical error rate, measure, decode, count logical errors. How would the "rounds" parameter enter the picture? Why would I need more than one round of measurement? (Assuming each round measures all stabilizers.)
Here a code sniplet of an example:
def Test(): num_shots = 1000 xs = [] ys = [] for noise in [0.1, 0.2, 0.3, 0.4, 0.5]: circuit = stim.Circuit.generated("surface_code:rotated_memory_z",distance=3,rounds=1,before_round_data_depolarization=noise) xs.append(noise) ys.append(count_logical_errors(circuit, num_shots) / num_shots) plt.plot(xs, ys) plt.semilogy() plt.xlabel("physical error rate") plt.ylabel("logical error rate") plt.show()