Skip to content

QEC-pages/clifford-circuit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

clifford-circuit-simulator

Date: Jun 2018 - Feb 2019. Authors: Michael Woolls(UCR), Weilei Zeng(UCR)

A classical simulator of Clifford circuits, which generate errors in a depolorizing noise channel.

With the Gottesman–Knill theorem, one can simulate a Clifford circuit classically without the knowledge of its wave function or density matrix. A clifford group is the normalizer of the qubit Pauli group, which can be generated by CNOT, Hadamard and Phase gates.

Our simulator takes the circuit as input, divides all gates into consecutive timesteps, then add depolarizing errors in between different timesteps. Another layer of measurement/read-out errors can be added outside this program.(We may implement this in the future)

package used:

  • c++: Eigen -linear algebra
  • c++: itpp -linear algebra
  • qasm (not necessary) -visualization of quantum circuit, see its main page
  • TeX (not necessaary) -visualize the circuit in pdf format

How to use

  • main program
    • design the circuit (by hand)
    • write the circuit inthe format .qc
    • use generate_error.cpp to generate errors from this circuit

Input: .qc file describe the circuit

Output: .mtx (MatrixMarket) files saves the error and syndrome respectively. ( A matlab progam can be used to convert the result into .mat files, which would be 1000x faster for matlab programs to read)

  • visualize the circuit
    • write the circuit in the format .qasm; use qasm2pdf to convert the file into pdf.
    • use qasm2qc to convert the .qasm to .qc autumatically. (300 qubits in total, 200+ is for ancilla qubits)
    • use copier to copy some part of the circuit; useful for enlarge the size of the circuit.

Input: .qasm files decribe the circuit

Output: .pdf file to visualize the circuit, and .qc file describes the same circuit.