Enable `Branch` to receive voltage and send current over signals
@PhilipFackler is already working on this.
Since Aug 20, 2026.
- Dominant language
- C++
- Stars
- 27
- Forks
- 11
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 23
Description
Summary
We need a way to communicate voltage and current between a branch and something other than a bus.
Rationale
For co-simulation we want to communicate voltage and current between two instances of GridKit over a "network". Presently, the Branch class reads/writes these directly as owned by a BusBase, so we need to devise an alternate means of access.
Description
The "best" way to do this is somewhat open-ended. Here are my ideas (in no particular order):
- A new type (inherits from
BusBase) that would substitute for one of the buses on the branch- implementation of
Branchdoes not change - new class enables external access through signal nodes
- implementation of
- A new branch type (inherits from
Component) that uses signals instead of buses- "true" bus would be connected through
BusToSignalAdapter - duplicates
Branchbehavior
- "true" bus would be connected through
- Modify existing
Branchtype to be able to use signals- Add some logic to prioritize using signals if they are connected. If not, use the bus pointer as before.
In all of these cases the external communication is happening (from the system's perspective) through signal nodes. This is reflecting my expectation of the design the co-simulation will develop into...in which *.case.json files will remain useful as they are now (declaring signals that can be used externally) and adding (either in the case file or a new co-simulation configuration file) the ability to specify which signals are used for network communication.
Additional information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.