Fault-tolerant hyperbolic Floquet quantum error correcting codes
arXiv: https://arxiv.org/abs/2309.10033
contact: [email protected]
Includes colored adjacency matrices (edges) of the lattices that honeycomb and hyperbolic Floquet codes are based on. Each lattice folder has three "*_adj_mat.txt" files for the colored (green, blue, red) edges, as well plaquettes.txt for octagonal/hexagonal plaquette data and nontriv_loops.txt for noncontractible loops of the lattices.
Includes two slightly different scripts that calculate "any logical operator" error rates for hyperbolic and honeycomb codes. The target code's name should be specified with its "num_sites" (number of physical qubits) and a path to a folder that includes necessary lattice information for that code (from "Lattices" folder).
The main function to calculate the logical error rate is "calc_recovery". Calling this function needs setting probabilities of various physical errors of different error models:
- p_depol: unbiased single-qubit depolarization error rate per round
- p_depol2: unbiased double-qubit depolarization error rate per check measurement
- p_mess: measurement error rate (per round)
- p_em3: EM3 model (from Gidney's paper) error rate
"calc_recovery" will calculate logical error rate for the given physical error rates until either the logarithmic error bar of the logical error rate is less than min_errorbar or the number of error scenarios exceeds max_num_shots.
The depth of the syndrome lattice should be specified by setting "num_steps" (number of rounds). At least 3 or 4 (depending on having measurement errors in the error model) rounds at the end of the circiut need to be perfect (errorless). This is set by "num_final_steps". Total number of erroneous rounds is "num_steps - num_final_steps".
By setting "save_errors=True", calc_recovery will also save the error scenario, decoder's suggested correction, and the result of decoding (flip or not) on two logical operators in "/error_files/". These files can be used to check the decoding proceudre.
Needs "/error_files/" generated by "calc_recovery" function. 1100 samples are included for "H64" code in its respective folder in "Lattices/". These error files can be generated for other hyperbolic lattices using "calc_recovery". The script then generates a stim circuit that simulates the error scenario, including initialization of two logical operators, Floquet measurement checks, Pauli and measuremnet errors, and decoder's correction. By running the deterministic cictuit and comparing the result for two logical operators to our prediction, we make sure that our understanding of the decoding is complete, and the calculated logical rates are correct. This check has been done for all hyperbolic distance-maximizing codes.
[[16, 4, 2]]
[[64, 10, 4]]
[[144, 20, 6]]
[400, 52, 8]]
[[2160, 272, 10]]
[[256, 34, 4]]
[[336, 44, 6]]
[512, 66, 8]]
[[672, 86, 8]]
[[720, 92, 8]]
[[1024, 130, 8]]
[[1296, 164, 6]]
[[1344, 170, 8]]
[[2048, 258, 8]]
[[2688, 338, 8]]
[[2880, 362, 8]]
[[3888, 488, 6]]
[[4096, 514, 8]]
[[4896, 614, 10]]
[[5376, 674, 8]]
[[5616, 704, 6]]
[[5760, 722, 10]]
[[6072, 761, 10]]
[[7800, 977, 10]]
[[8192, 1026, 8]]
[[8640, 1082, 10]]