feat: add yaml classes for PORTS and CONNECTIONS-based STREAM_DISTRIBUTION - #1562
Closed
frodehk wants to merge 4 commits into
Closed
feat: add yaml classes for PORTS and CONNECTIONS-based STREAM_DISTRIBUTION#1562frodehk wants to merge 4 commits into
frodehk wants to merge 4 commits into
Conversation
frodehk
marked this pull request as draft
May 20, 2026 11:49
Contributor
Author
|
Will be handled in other pull requests, e.g. #1636 |
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.
Summary
Adds yaml classes for the upcoming CONNECTIONS-based STREAM_DISTRIBUTION structure, along with PORTS for declaring physical interstage connection points on compressor stages.
Why
The domain already supports multiple streams and pressures, but the YAML schema only allows a single inlet stream and a single outlet pressure per train. PORTS and CONNECTIONS make it possible to express setups with multiple inlets along the train and intermediate pressure targets.
Scope
Schema additions only. The new classes are defined but not used in any field on
YamlProcessSimulation. The existingstream_distributionschema remains in place so the mapper keeps working. Switching the field, removing the legacy classes, renamingYamlPortOverflowtoYamlOverflow, and migrating the mapper will follow in subsequent PRs.What's added
On
YamlCompressorStageProcessSystem:PORTS— optional mapping of port name → port specificationNew schema classes (defined, not yet wired up):
YamlPort,YamlPortType— declares an INLET port on a stageYamlRateDistributionEntry— port + rate fractionYamlPortOverflow— port-to-port overflow (temporary name to avoid collision with the legacyYamlOverflow)YamlIndividualStreamConnection— one stream routed to one portYamlCommonStreamConnection— one stream distributed across multiple portsYamlConnection— discriminated union of the two connection typesYamlStreamDistributionPriority— set of connections forming one complete configurationYAML example (illustrates the target structure)
Refs: equinor/ecalc-internal#1809
Type of Work
See here (internal): https://github.com/equinor/ecalc-internal/discussions/1044
Have you remembered and considered?
docs/drafts/next.draft.md)docs/docs/migration_guides/)BREAKING:in footer or!in headerWhat is this PR all about?
What else did you consider?
Between the lines?