Skip to content

Commit

Permalink
feat: Initial commit of a mutual exclusivity node. (#198)
Browse files Browse the repository at this point in the history
This is the initial support for using binary variables to apply a mutual
exclusivity constraint. I.e. flow is allow through up to N nodes
at a time. Aggregated node is refactored to allow
support for sets of nodes. These are typically created when a
compound node (e.g. PiecewiseLink) is added to an AggregatedNode.
The compound node creates multiple "core" nodes, and these should
all be constrained by the AggregatedNode's factors or exclusivity.

The same consideration applies to the virtual storage nodes.

To do this there is a new method on Node in the schema to retrieve
the core node indices which that node has added to the core model.
For now this is a static implementation, but there are some nodes
which the user may to configure how this is done. E.g. should a
LossLink be constrained on its net or gross flow.

Renames aggregated node `Factors` to `Relationship`.

This starts to resolve issue #187.
  • Loading branch information
jetuk authored Sep 23, 2024
1 parent 6f93043 commit aeba898
Show file tree
Hide file tree
Showing 33 changed files with 1,710 additions and 276 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ opt-level = 3 # fast and small wasm


[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
serde = { version = "1", features = ["derive", ] }
serde_json = "1.0"
thiserror = "1.0.25"
num = "0.4.0"
Expand Down
Loading

0 comments on commit aeba898

Please sign in to comment.