SQUAB
A Fast Benchmarking Software
for Surface Quantum Computing Architectures
In this page you can find a list of all the functions accessible
through our command-line interface.
- Tiling construction:
>>Tiling d lx ly
>>Grid lx ly
>>AddFace k v1 v2 ... vk
>>Translate l u v
>>CleanV
>>Hole f
>>HoleList k f1 f2 ... fk
>>HoleRect u v
>>HoleRectOpen u v
>>Open e
>>OpenList k e1 e2 ... ek
>>Close e
>>CloseList k e1 e2 ... ek
- Display tiling:
>>Print
>>Draw
>>DrawDual
>>DrawMin
>>DrawDualMin
- Load and save:
>>Save name
>>Load name
>>ListTilings
- Benchmarking:
>>Code
>>Report pmin pmax step numtrial
- Help and Quit:
>>Help
>>Quit
Documented list of the commands
- Tiling construction:
>>Tiling d lx ly
input: d = 3, 4 or 6, lx, ly = postive integers
output: create a d-regular tiling of size lx x ly
>>Grid lx ly
input: lx, ly = postive integers
output: Create a grid of vertices of size lx x ly
>>AddFace k v1 v2 ... vk
input: k = postive integer, v1, v2, ... vk = vertex indices
output: Create a face from this ordered list of vertices
>>Translate k u v
input: k = postive integer, u, v = real numbers
output: Replicate the tiling k times by translating it in
the direction (u,v)
>>CleanV
input: no input
output: Remove isolated vertices of the tiling
>>Hole f
input: f = a face index
output: Remove the face f from the tiling
>>HoleList k f1 f2 ... fk
input: k = postive integer, f1, f2, ... fk = face indices
output: Remove the k faces f1, f2, ... fk from the tiling
>>HoleRect u v
input: u, v = vertex indices
output: Remove all the face f inside the rectangle whose
opposite corners are u and v
>>HoleRectOpen u v
input: u, v = vertex indices
output: Remove all the face f and open all the edges inside the
rectangle whose opposite corners are u and v
>>Open e
input: e = an edge index
output: Open the edge e if it is a boundary
>>OpenList k e1 e2 ... ek
input: k = postive integer, e1, e2, ... ek = edge indices
output: Open the k edges e1, e2, ... ek if they are on the boundary
>>Close e
input: e = an edge index
output: Close the edge e
>>CloseList k e1 e2 ... ek
input: k = postive integer, e1, e2, ... ek = edge indices
output: Close the k edges e1, e2, ... ek
- Display tiling:
>>Print
input: no input
output: Print the tiling in the terminal
>>Draw
input: no input
output: Draw the tiling with indices
>>DrawDual
input: no input
output: Draw the tiling
(Executes CleanV to be sure that the dual is well defined)
>>DrawMin
input: no input
output: Draw the dual tiling with indices
(Executes CleanV to be sure that the dual is well defined)
>>DrawDualMin
input: no input
output: Draw the dual tiling
- Save and Load:
>>Save name
input: tiling name
output: Write the text files name_edges.txt, name_faces.txt,
name_open_egdes.txt and name_coord.txt if coordinates are
defined
>>Load name
input: tiling name
output: Load a tiling from its text files. Tiling create by another
source with te right format can be loaded in that way.
Coordinates are not necessary.
Use ListTilings before to see all the saved tilings
>>ListTilings
input: no input
output: List all the saved tilings in the folder saved_tilings
- Benchmarking:
>>Code
input: no input
output: Return the parameters of the surface code based
on the tiling
>>Report pmin pmax step numtrial
input:
pmin, pmax = real numbers such that 0 <= pmin <= pmax <= 1
step = real number in [0,1]
numtrial = non-negative integer
output: Generate a report on the performance of the code
in the folder reports by testing the performance
for erasure rate from pmin to pmax with step size
given by step. Up to numtrial decoding trials are ran for
each data point.