QEC: Extend qtcodes
amirebrahimi opened this issue · 11 comments
Description
The purpose of this project is to take the great work done on qtcodes and extend it to:
- Add support for rectangular geometry
- Build topological circuits using qubits of varying code types and sizes
- Allow for specifying the overall topology of many logical qubits
As a stretch goal, we'd like to:
- Demonstrate magic state distillation
- Implement support for twist-based lattice surgery
Mentor/s
James Wootton
Participants
Amir Ebrahimi
Jeffrey Gong
Shantanu Jha
Deliverable
Improvements to the qtcodes project.
@Phionx would you like to work with @amirebrahimi under the mentorship project to extend your qtcodes project? @quantumjim Would you like to be a mentor if this is an extension of qtcodes?
Sure! The more collaborators on qtcodes
the better :)
Feel free to explore https://github.com/yaleqc/qtcodes/issues for potential ideas or open issues with new ideas!
My last project was based on designing a surface code for an asymmetric error channel that could correct 2 Z errors and single X errors. I would love to work on this project if it is on similar lines. @amirebrahimi
I am still exploring qtcodes
, but I would love to contribute if you ever wish to implement https://arxiv.org/abs/1808.03927 @quantumjim
@Phionx @amirebrahimi Can you please upload your presentation here by the end of today? Thank you!
@HuangJunye - Here's an updated version
#30 QEC Extend qtcodes.pdf
Checkpoint 2:
We have completed extending the library to have rectangular surface code encoding/decoding with yaleqc/qtcodes#58
We have a PR in-flight (yaleqc/qtcodes#53) for allowing different logical qubit types to be used in a circuit together.
Additionally, we removed a previous dependency on pydot for qtcodes and now use matplotlib drawing via retworkx (yaleqc/qtcodes#57)
Here's the "final final":
#30 QEC_ Extend qtcodes (Final Report).pdf
@amirebrahimi Can you please link the PRs you have done during QAMP here? A quick search showed 6 PRs on the qtcodes repo, but it would be good to have your confirmation: https://github.com/yaleqc/qtcodes/pulls?q=is%3Apr+is%3Aclosed+author%3Aamirebrahimi
Sure thing, @HuangJunye.
yaleqc/qtcodes#51 (fixed some tutorial issues)
yaleqc/qtcodes#57 (removed pydot dependency)
yaleqc/qtcodes#58 (added rectangular surface code geometry support)
yaleqc/qtcodes#69 (refactored repetition qubit to be an XXZZ surface code and also added a phase-flip protected version)
yaleqc/qtcodes#72 (consolidated various tests throughout the project to use common code)