LightningQ is a blueprint for design and manufacturing of Optical Quantum Computers.
In order to build the GDS files yourself, you need Nazca, Ipython and Pycliper Python 3 packages. When those are installed, follow the following steps:
git clone https://github.com/AleksandarKostovic/LightningQ
cd LightningQ
make
- If you have layout viewer like Klayout, do
klayout nazca_export.gds
For layout viewer it is reccomended to use Klayout.
If you wish to see only a a plot image of the design(which you can save as PNG image), you can just replace export_gds()
function with export_plt()
and type make again.
If you would like to contribute to the project, please start a pull request with your improvements. I would be interested to see the changes.
Here, in the existing code you can build a system for four qubits, however, you can do it as much as you like, where you could for example have 5, 6, 7 or more. Its up to you.
For adding more qubits, simply add these lines before nd.export_gds()
function:
qubit.put(0, -2080)
As Nazca uses X and Y axes to define position for items, you can add Qubit by just adding 520 to the -2080
number, with each qubit added. So you end up with -2600
for next position. As long as you keep adding 520 to the negatie number, number of Qubits will rise(you have to call a qubit.put function of course, every time you want to add a Qubit). You can of course add a qubit above the first one, as the design is flexible, but you must keep the 520 distance in order to avoid electrical damages to the circuit, as pins that are controlling Phase Shifters must be kept away from wave guides. For more info about numbering system in Nazca, please consult this excellent online manual.
Please see doc
directory, where you will find a paper that explains how the idea came to be and how it works.