Skip to content

Add method for verifying port connectivity#225

Open
gpeairs wants to merge 15 commits into
mainfrom
gp/port-connectivity
Open

Add method for verifying port connectivity#225
gpeairs wants to merge 15 commits into
mainfrom
gp/port-connectivity

Conversation

@gpeairs

@gpeairs gpeairs commented May 19, 2026

Copy link
Copy Markdown
Member

Adds SolidModels.check_port_connectivity, which takes a SolidModel and names of physical groups and returns a Dict classifying 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_components across 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 to getAdjacencies, 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 expensive isInside call.) 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.

@codecov

codecov Bot commented May 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.75281% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/solidmodels/postrender.jl 97.53% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@gpeairs gpeairs force-pushed the gp/port-connectivity branch 3 times, most recently from 1047a9b to 043c9a4 Compare June 11, 2026 17:54
gpeairs added 15 commits June 15, 2026 09:17
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
@gpeairs gpeairs force-pushed the gp/port-connectivity branch from c2fd260 to ea9045d Compare June 15, 2026 16:19
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.

1 participant