qiskit-metal icon indicating copy to clipboard operation
qiskit-metal copied to clipboard

Added airbridges to `QGDSRenderer`

Open clarkmiyamoto opened this issue 1 year ago • 5 comments

What are the issues this pull addresses (issue numbers / links)?

Partially https://github.com/qiskit-community/qiskit-metal/issues/906

Did you add tests to cover your changes (yes/no)?

Yes

Did you update the documentation accordingly (yes/no)?

Yes

Did you read the CONTRIBUTING document (yes/no)?

Yes

Summary

Users can now add airbridges when exporting to GDS.

Screen Shot 2023-06-26 at 10 25 06 PM

And yes, this can support MIT LL airbridges but will require the user to design their own airbridge via QComponents. I'd upload the correct QComponent, but unfortunately, we're not allowed to share design guidelines.

Details and comments

In QGDSRenderer.export_to_gds, it now calls self._populate_airbridge. This mimics the structure of cheesing. Meaning we have a file make_airbridge.py which contains all the airbridge position extraction logic.

Limitations:

  • Only supports uniform airbridges. Meaning, all airbridges will have the same settings applied to them. Airbridges can't change shape as they progress along a CPW. I did leave space for people to append their custom logic in a comment
  • Current airbridge placement algorithm puts an airbridge at every corner, then determines how to space along the straight line between corners. Meaning it does NOT place multiple airbridges on a turn.

Things for the next person to add (I'll add issues for these)

  • If we have two CPWs next to each other, it'll stop rendering airbridges in that region of overlap. A current workaround is to use any of the Couplers.
  • Raise warning if airbridges are not inside chip size
  • Raise warning if airbridge overlaps CPW it's on.

clarkmiyamoto avatar Jun 27 '23 10:06 clarkmiyamoto

If docs check finishes properly, then ready for review!

Also apologies for the excess commits, my work computer is out of reach so I'm coding w/o an environment and then I pull changes via the work computer w/ qiskit metal environment to test.

clarkmiyamoto avatar Jun 27 '23 10:06 clarkmiyamoto

@priti-ashvin-shah-ibm @ThomasGM4 Finally got around to working on this, it was a busy last semester 😅. Thank you both for helping point me in the right direction for this.

clarkmiyamoto avatar Jun 27 '23 10:06 clarkmiyamoto

@zlatko-minev Hi just wanted to give you an update, no longer working on scq stuff atm. Just wanted to know if you were gonna PR this. If not I'll close to reduce clutter.

clarkmiyamoto avatar Sep 19 '23 02:09 clarkmiyamoto

Thank you, @clarkmiyamoto . Wondering what you are now up to. Let me fix a few things and look it over, I'd like to merge it, any chance you can make sure it looks ok with the latest other pulls?

zlatko-minev avatar Sep 26 '23 00:09 zlatko-minev

Just started grad school at NYU, gonna try out a few different fields (high energy, applied mathematics, complexity science, etc.) during my first year. And then I might return to QIS!

As for the code, it works inside the GDS Renderer and mirrors the structure for the cheesing code, so I think it's pretty well contained. Let me know if you see any potential issues and I can still help out as needed.

clarkmiyamoto avatar Oct 03 '23 15:10 clarkmiyamoto