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

Add QElmerRenderer #882

Merged
merged 111 commits into from
Mar 14, 2023
Merged

Conversation

diemilio
Copy link
Collaborator

@diemilio diemilio commented Dec 6, 2022

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

Fixes #881

Summary

Adds ElmerFEM to available renderers in qiskit-metal.

Details

Submitting this as a draft PR. The following items need to be completed before merging:

  • Fix name of BiCGstabl Polynomial Degree parameter to avoid duplicate.
  • Fix net assignment issue generated when a given node is in contact with ground plane.
  • Add/update Docstrings to all functions/methods in elmer_renderer.py.
  • Add/update Docstrings to all functions/methods in elmer_runner.py.
  • Add error checking within QGmshRenderer to inform user if items in open_pins list don't exist.
  • Add warning message if no cap bodies found in design (ElmerFEM will error out).
  • Add unit tests for QElmerRenderer
  • Update Gmsh/ElmerFEM installation instruction, and place them in the appropriate directory.
  • Update ElmerFEM Tutorial to work with MultiPlanar class.
  • Add QElmerRenderer options to QAnalysis class

Additional Comments

  • The current version of ElmerFEM will only support capacitance extraction analysis. Next steps will include adding more analyses, such as eigenfrequency extraction.
  • The assign_nets function inside QElmerRenderer works properly but probably needs refactoring since it inefficiently scans through different geometries assign nets and it has grown so much it makes the code difficult to read.
  • It has been decided to leave out adding QElmerRenderer to QAnalysis as part of this PR. This has to be done later on when LOM2.0 gets integrated.

Abeer Vaishnav and others added 30 commits June 15, 2022 17:05
- Gradient based mesh size fields
- Functionality for user to define their own mesh size field function
- Used already present toolbox functions instead of making my own
- TODO: recombine this with Vector in draw/utility.py
- Changed the renderer to use the new 3D vector in `qiskit_metal/draw/utility.py`
- Used bad_fillet_idxs in `toolbox_python/utility_functions.py` to selectively fillet vertices
- Removed unused code
- Added helpful TODO comments
- Added physical group for each chip
- environment.yml
- requirements.txt
@diemilio diemilio marked this pull request as ready for review February 2, 2023 16:35
AbeerVaishnav13
AbeerVaishnav13 previously approved these changes Feb 2, 2023
Copy link
Collaborator

@priti-ashvin-shah-ibm priti-ashvin-shah-ibm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GREAT JOB to both @diemilio and @AbeerVaishnav13

@@ -222,6 +244,52 @@ def test_renderer_qansysrenderer_default_setup(self):
self.assertEqual(default_setup['q3d']['solution_order'], 'High')
self.assertEqual(default_setup['q3d']['solver_type'], 'Iterative')

def test_renderer_qelmer_renderer_default_setup(self):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding tests.

@priti-ashvin-shah-ibm
Copy link
Collaborator

Can you merge the latest from main into your branch for pull request?

Copy link
Collaborator

@priti-ashvin-shah-ibm priti-ashvin-shah-ibm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, great work!

Copy link
Collaborator

@priti-ashvin-shah-ibm priti-ashvin-shah-ibm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great Job.

Copy link
Collaborator

@obrienpja obrienpja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, excellent job!

Copy link
Collaborator

@ThomasGM4 ThomasGM4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@AbeerVaishnav13 AbeerVaishnav13 merged commit a8bc72d into qiskit-community:main Mar 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ElmerFEM to Renderers
5 participants