Skip to main content

powerio_prob/instance/
mod.rs

1//! The public calculation instances.
2//!
3//! A problem instance is complete typed input for one problem family,
4//! distinct from the source network, a matrix projection, a solver
5//! formulation, and a solution. Every instance shares its reusable
6//! electrical network as a cheap owning handle — cloning an instance clones
7//! no network table — and exposes a borrowed `network()` accessor. Fields
8//! are private, so the sharing strategy can change without a public break.
9//!
10//! The instances are [`DcPfInstance`], [`AcPfInstance`],
11//! [`DcOpfInstance`], [`AcOpfInstance`], [`AcOtsInstance`],
12//! [`McAcPfInstance`], [`McAcOpfInstance`], [`LinDist3FlowOpfInstance`],
13//! [`LinDist3FlowPfInstance`], and [`AcScucInstance`]. Power flow instances carry
14//! partial boundary specifications; OPF instances carry typed
15//! [`Objective`] terms and active constraint selections by stable element
16//! identity, with the numerical limits staying on the network.
17
18pub(crate) mod balanced;
19mod constraints;
20mod lindist3flow;
21mod merge;
22mod multiconductor;
23mod objective;
24mod ots;
25mod scuc;
26pub mod scuc_inputs;
27
28pub use balanced::{
29    AcBusSpecification, AcOpfInstance, AcPfInstance, DcBusSpecification, DcOpfInstance,
30    DcPfInstance,
31};
32pub use constraints::{ActiveConstraints, ConstraintSelection, MulticonductorActiveConstraints};
33pub use lindist3flow::{
34    LinDist3FlowApplicability, LinDist3FlowApplicabilityStatus, LinDist3FlowBuildOptions,
35    LinDist3FlowNode, LinDist3FlowOpfInstance, LinDist3FlowOrientedConductor,
36    LinDist3FlowPfInstance, LinDist3FlowReferencePolicy, LinDist3FlowReferenceProvenance,
37    LinDist3FlowReferenceState, LinDist3FlowReferenceVoltage, LinDist3FlowTopology,
38    LinDist3FlowUnsupported, check_lindist3flow_applicability,
39};
40pub use merge::{ZeroImpedanceMerge, merge_zero_impedance_buses};
41pub use multiconductor::{
42    ActiveControlMode, McAcOpfInstance, McAcPfInstance, PrescribedSourceBoundary,
43    PrescribedSourceVoltage, PrescribedTerminalPower,
44};
45pub use objective::{Objective, ObjectiveTerm};
46pub use ots::{
47    AcOtsBranch, AcOtsInstance, AcOtsOptions, BranchCurrentLimit, BranchSelection,
48    BranchSwitchingCost, CurrentLimitPolicy, IslandingPolicy, SwitchingCost, TerminalCurrentBounds,
49};
50pub use powerio_dist::{
51    LinDist3FlowPreparationAction, LinDist3FlowPreparationActionKind, LinDist3FlowPreparationReport,
52};
53pub use scuc::AcScucInstance;
54pub use scuc_inputs::{
55    ScucActiveReserveZone, ScucBranchSwitchingCost, ScucContingency, ScucDevice, ScucDeviceKind,
56    ScucDevicePeriod, ScucEnergyCostBlock, ScucEnergyRequirement, ScucInitialCommitment,
57    ScucInputs, ScucRampLimits, ScucReactiveCapability, ScucReactiveReserveZone, ScucReserveCosts,
58    ScucReserveLimits, ScucShunt, ScucStartupCostAdjustment, ScucStartupLimit,
59    ScucTransformerControl, ScucViolationCosts,
60};