Repository navigation
Add partition docs - #622
abirchfield wants to merge 3 commits into
Conversation
nkoukpaizan
left a comment
There was a problem hiding this comment.
The ideas in the specifications overall look good to me. A few comments about wording and what's included in this PR.
- I would keep the two cases in
examples/out of this PR. The figures are already inGridKit/Model/PhasorDynamics/Partitionand nicely rendered in the README. And for now, I wouldn't include*partition.json filesfor larger systems as inWECC240.partition.json. - I would also remove
WECC240.pngfor now. The notional diagrams are sufficient to illustrate the specifications. If/when we implement WECC240, we can revisit the figure. @lukelowry if you want to improve it in the meantime, I recommend making it publication-ready (larger fonts for buses, bolder lines, etc).
| This example shows how multi-level hierarchical partitions can be implemented | ||
| with partition groups. | ||
|
|
||
| File name: `deep.partition.json` |
There was a problem hiding this comment.
deep.partition.json is missing from this PR, but is on lukel/partition-dev. I would only keep the inlined json code for this PR.
This comment was marked as duplicate.
This comment was marked as duplicate.
pelesh
left a comment
There was a problem hiding this comment.
This is a very good starting point.
I would limit the scope of this PR just to addressing #619 and specifying JSON input file format for hierarchical modeling. I would focus here on a JSON specs for uniquely defining (arbitrary) subsystems within a system model. Some of the documentation is implementation specific but I don't think we need to go in that detail here.
| The concept of "Partition" is used in phasor dynamics in GridKit to refer | ||
| to dividing up a system model into smaller parts | ||
| **for the purpose of parallel simulation** and other | ||
| solver acceleration techniques. | ||
| Dividing up a system for _modeling convenience_ (like having physically | ||
| meaningful areas corresponding to particular utilities, | ||
| containerized subcomponents, template aggregate models | ||
| for multi-instantiation, etc.) | ||
| is a fundamentally different goal. It is not | ||
| appropriate to use divisions driven by modeling for solver acceleration. |
There was a problem hiding this comment.
| The concept of "Partition" is used in phasor dynamics in GridKit to refer | |
| to dividing up a system model into smaller parts | |
| **for the purpose of parallel simulation** and other | |
| solver acceleration techniques. | |
| Dividing up a system for _modeling convenience_ (like having physically | |
| meaningful areas corresponding to particular utilities, | |
| containerized subcomponents, template aggregate models | |
| for multi-instantiation, etc.) | |
| is a fundamentally different goal. It is not | |
| appropriate to use divisions driven by modeling for solver acceleration. | |
| A partition of a phasor dynamics system model specifies a division of the model into smaller parts. Partitioning may be done to facilitate parallel simulation, for modeling convenience, or for some other reason. This document is only concerned with the manner in which a partition scheme is specified. |
i think this better introduces the document
| In the future it is envisioned that signals may also be part of the | ||
| partition definition, allowing connected components to be in separate | ||
| partitions. For now, only buses can divide partitions. |
There was a problem hiding this comment.
it would be better to move the comments relating to future work later in the document, in a separate section, so that we can focus on the current iteration of the format (and later, the implementation) at the start.
There was a problem hiding this comment.
In the current version, this is the last item before the examples, which I think is fine.
There was a problem hiding this comment.
there were several future work comments, not just this one
096b937 to
836b3bc
Compare
|
Thanks everyone for helpful input here and in the meeting yesterday! I think these changes address the core consensus.
|
nkoukpaizan
left a comment
There was a problem hiding this comment.
I resolved most of the comments from the previous reviews. There are still a few outstanding items. @abirchfield Will be good to merge after the remaining points are addressed.
- Please use @superwhiskers' suggestion for the introduction, keeping the file format general.
- Please remove the changes in
examples/and the related references in the README. - Please remove WECC240 from this PR. We'll address this later.
| This example shows how a multi-level hierarchical structure can be implemented | ||
| with partitions. | ||
|
|
||
| File name: `deep.partition.json` |
There was a problem hiding this comment.
| File name: `deep.partition.json` |
Co-authored-by: Nicholson Koukpaizan <72402802+nkoukpaizan@users.noreply.github.com>
Description
Adding documentation for JSON format for Partitions. See the README for detailed description and justification
Proposed changes
Add README for partitions, along with examples for TenGen and WECC240. Implementation out-of-scope, but see
lukel/partitioned-case-dev branch for a working prototype.
Checklist
N/A - no new code