Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open-source FEM solver for Qiskit Metal #12

Closed
AbeerVaishnav13 opened this issue Aug 12, 2022 · 9 comments
Closed

Open-source FEM solver for Qiskit Metal #12

AbeerVaishnav13 opened this issue Aug 12, 2022 · 9 comments

Comments

@AbeerVaishnav13
Copy link

AbeerVaishnav13 commented Aug 12, 2022

Description

Qiskit Metal is an open-source quantum-EDA tool, developed to design superconducting microwave quantum circuits with ease. Designing such hardware usually requires starting from a circuit schematic, which is converted to a corresponding Hamiltonian representation using the principles of circuit quantum electrodynamics (cQED), and then laid out on a physical chip as a circuit layout which then can be tuned to desired characteristics using a combination of classical results from EM simulations (done on a FEM solver), and quantum analyses. Qiskit Metal aims to automate this tedious process and make it easier than ever.

Presently, Qiskit Metal integrates with Ansys EDT -- a proprietary FEM solver and simulation tool. The high upfront costs, pose a huge bottleneck to enthusiasts and many other people in the open community, wanting to use Qiskit Metal for their research. This project aims to integrate an open-source FEM solver to enable performing EM simulations like -- Capacitance, Eigenmode, and Field calculation, type simulations through a fully open-source toolchain that can support multiple platforms and is accessible to all!

Deliverables

Expected to be completed

  • Completion of Capacitance analysis using ElmerFEM
  • Proper integration of QElmerRenderer with Qiskit Metal
  • Bug fixes in the recently added QGmshRenderer

Some extra deliverables (if time permits)

  • Eigenmode simulation in ElmerFEM
  • Eigenmode & Field calculation using FreeFEM (proof-of-concept only)
  • Integration with EPR analysis (proof-of-concept only)

Mentors details

  • Mentor 1
    • Name: Abeer Vaishnav
    • GitHub ID: @AbeerVaishnav13
    • What they do: Grad student, Duke University; IBMQ Summer 2022 Intern (Qiskit Metal)
  • Mentor 2
    • Name: Thomas G. McConkey
    • GitHub ID: @ThomasGM4
    • What they do: Sr. Microwave Engineer and Co-PI for Qiskit Metal @ IBM Quantum
  • Mentor 3
  • Mentor 4
    • Name: Patrick Obrien
    • GitHub ID: @obrienpja
    • What they do: Qiskit Metal Developer, IBM Quantum

Number of mentees

2

Type of mentees

  • Mentees
    • Required:
      • Background in programming using Python
      • Knowledge of EM theory and Maxwell's equations
      • Computational modeling and Finite Element Analyses (FEA)
    • Nice to have:
      • Basics of quantum mechanics (to understand the quantum analyses)
      • Experience with using Qiskit Metal
@GemmaDawson GemmaDawson moved this to Mentor Proposed Projects in QAMP Fall '22 Sep 2, 2022
@GemmaDawson GemmaDawson moved this from Mentor Proposed Projects to Mentee Proposed Projects in QAMP Fall '22 Sep 2, 2022
@GemmaDawson GemmaDawson moved this from Mentee Proposed Projects to Mentor Proposed Projects in QAMP Fall '22 Sep 2, 2022
@HuangJunye HuangJunye removed the status in QAMP Fall '22 Sep 2, 2022
@diemilio
Copy link

Hello @GemmaDawson. Tagging you for issue assignment. Thanks.

@priti-ashvin-shah-ibm
Copy link

@GemmaDawson

@ThomasGM4
Copy link

@GemmaDawson

@GemmaDawson
Copy link
Contributor

Please add your Checkpoint 1 presentation materials.

@diemilio
Copy link

qamp2022-checkpoint01-des.pdf

@GemmaDawson GemmaDawson moved this to Checkpoint 1 Submitted in QAMP Fall '22 Oct 13, 2022
@diemilio
Copy link

diemilio commented Nov 4, 2022

Checkpoint 2 update:

Up until checkpoint 1, we had defined the project scope and its deliverables. Since then, we have made great progress including the following items:

  1. Defined a multi-layer design to serve as a benchmark to debug during the development of the updated code. This included putting together the 3D geometry and performing the FEA simulation in COMSOL to have results to compare to.
  2. The next step was to generate this same geometry within Qiskit Metal. This required creating the layout using Components in combination of a stack layer file that defined the thickness, z coordinates and materials of each of the layers that composed the design. There were some complications along the way related to how the mesher (QGmshRenderer) treats overlapping geometries (it does not merge them), so certain shapes had to be adapted to simplify the design. This issue was opened in the qiskit-metal repo to report this bug.
  3. Next, the modification of the code started by first making sure the old design type (DesignPlanar) was replaced with the new class (MultiPlanar). All the necessary changes were made to guarantee the methods ran correctly, such as passing down the right options to other classes from which QElmerRenderer inherits from (such as QGmshRenderer).
  4. Once this was done, the section of the code that generates the netlist (i.e., groups geometries that are galvanic contact with each other) was adapted so that the FEA simulator (ElmerFEA) received the correct groups of bodies. The code now guarantees checks across each layer, and throughout adjacent layers so if there is multi-layer connectivity, nets are assigned properly.
  5. Lastly, code was modified to guarantee the right set of bodies and the right group of boundaries are correctly assigned to each of the nodes in the netlist in order to run the simulation using ElmerFEA.
  6. This last step seems to be working correctly, however we are currently facing an issue with the simulation, so for the past week we have spent most of our time debugging the different steps in the process by comparing the design generated through Qiskit Metal with a design directly generated within Gmsh. During this process, we uncovered another issue with Gmsh renderer, and reported it in the qiskit-metal repo to correct the problem.
  7. The next step will be to clean up the code and add fix some items that are currently “hardcoded” but that we want to make flexible for the user to modify. This will complete the first deliverable of this project.

Below is a visual representation of the progress made thus far.
qamp2022-checkpoint02

@AbeerVaishnav13
Copy link
Author

Great work @diemilio !! 🎉

@GemmaDawson GemmaDawson moved this from Checkpoint 1 Submitted to Checkpoint 2 Submitted in QAMP Fall '22 Nov 7, 2022
@diemilio
Copy link

Final presentation:
qamp2022-final.pptx

Submitted PR:
qiskit-community/qiskit-metal#882

@GemmaDawson GemmaDawson moved this from Checkpoint 2 Submitted to Final Showcase Submitted in QAMP Fall '22 Dec 19, 2022
@GemmaDawson
Copy link
Contributor

Congratulations on completing all the requirements for QAMP Fall 2022!! 🌟🌟🌟

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Final Showcase Submitted
Development

No branches or pull requests

6 participants