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

Super-network drawing scalability improvement #42

Closed
jasonlharvey opened this issue Apr 15, 2022 · 1 comment
Closed

Super-network drawing scalability improvement #42

jasonlharvey opened this issue Apr 15, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@jasonlharvey
Copy link
Contributor

We're finding that super-network drawings are not very scalable. Since we have to draw a super-port connecting every link between sub-networks, the drawing gets very large and sluggish when there are a lot of sub-networks and super-ports. We need an optional alternate method to draw the interfaces between sub-networks in a super-network drawing.

Here's the idea, but it may change:

  • Sub-network drawings can have zero or more optional new "Sub-Network Interface" container boxes inside them.
  • Each box defines an interface between the parent subnet and other subnets in a supernet.
  • Each box has 1 or more 'interface nodes' (reference/normal or ground nodes).
  • The subnet's links can connect regular ports to these interface nodes.
  • When creating a supernet diagram, optionally import only these interface boxes and omit the rest of the sub-network contents.
    • This reduces clutter in the SN drawing as only interfaces boxes are present.
    • Imported interface boxes remember which sub-network link ports connect to them.
  • In the supernet drawing, compatible interface boxes (same # interface nodes) from different subnets can be connected.
    • This ties the interface nodes form each box together, 1-to-1, in order (top left to bottom right, etc.)
  • 2 or more boxes can be connected, but to be compatible, all boxes must have the same # of nodes, and each node set across the boxes can only have one reference/normal node, and the rest must be Ground. This avoids conflict over which sub-net's node is used.
  • On export, use the info in the tied interface nodes about which link ports are connected to make the link connections in the subnets
  • Add this to the existing supexport.py, so the same script can support both old & new formats.
    • if a subnet has interface boxes, omit the rest of it, else import all its details like before
  • Remain backwards compatible with old super drawings.
  • The result of the new design is the super drawings only have the interface boxes in them, which can be collapsed, and only a few connections to each, making for a very clean, high-level drawing

It will look something like the attached picture. Normally the interface boxes will be collapsed, but you can open them up to see the nodes and check for node-compatible interfaces.
Scalable_SuperNet

@jasonlharvey
Copy link
Contributor Author

This is now in beta. Documented in the wiki here: https://github.com/nasa/gunns/wiki/Interfaces-Method-for-Super-Network-Drawings. Let me know if you have problems, questions, or ideas!

@jasonlharvey jasonlharvey added this to the Release v19.4 milestone Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant