Add method for verifying port connectivity#225
Open
gpeairs wants to merge 15 commits into
Open
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
1047a9b to
043c9a4
Compare
Wraps the public `connected_components` from PR #190 to classify lumped ports as `:open`, `:short`, or `:floating` depending on how many disconnected metal components they bridge. Three-valued `Dict{String, Symbol}` return from `check_port_connectivity`. Also fixes connected_components(dim, tags) n==1 shape inconsistency. Classify one-boundary-touching-metal ports as floating Remove is_port_open and redundant tests Run formatter Don't export connected_components or check_port_connectivity
c2fd260 to
ea9045d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
SolidModels.check_port_connectivity, which takes a SolidModel and names of physical groups and returns aDictclassifying port groups as:open(connects to two distinct metal connected components),:short(connects to a single metal connected component at two boundaries),:floating(zero or one boundaries connect to metal at all) , or:missing. Demonstrated with QPU17 SolidModel, verifying that flux ports are shorted and charge/readout ports are open.Also fixes an issue where connections were not tracked by
connected_componentsacross 1D edges embedded in the interior of 2D surfaces (like with staple air bridges), since there is no adjacency between those 1D and 2D entities according togetAdjacencies, even though they are meshed conformally. Unfortunately, this blows up the time from < 1 second to ~ 2 minutes in the QPU17 example (with ~1000 bridges) where it needs to check whether such stray edges lie inside entities whose bounding box contains the edge. (8 stray edge entities per bridge, but only the 2 bridge "feet" should pass any bounding box containment check and require the expensiveisInsidecall.) This information could possible be obtained faster from the mesh, but 2D meshing itself takes about as long. The most practical way to speed this up is probably to add polygons at the feet of the bridge and turn this check back off.