Skip to main content

powerio_prob/
lib.rs

1//! Operating points, problem instances, and solutions for power system
2//! calculation families.
3//!
4//! A problem instance is distinct from a source network, matrix projection,
5//! solver formulation, and solution. This crate stays matrix free: sparse
6//! operators and the DC OPF bundle writer derived from these instances live
7//! in `powerio-matrix`, which depends on this crate.
8
9mod formats;
10pub(crate) mod goc3;
11pub mod instance;
12pub mod operating;
13mod reference;
14pub mod solution;
15mod update;
16
17pub use powerio_tx::BranchSusceptanceFormula;
18
19pub mod diagnostics;
20pub mod error;
21pub use error::{Error, Result};
22/// Unsupported implementation details shared with the top level PowerIO
23/// facade.
24///
25/// These items can change without notice and are not part of the
26/// `powerio-prob` API. Applications should call `powerio::parse` and
27/// `powerio::emit`.
28#[doc(hidden)]
29pub mod __internal {
30    #[doc(hidden)]
31    pub use crate::formats::{
32        __decode_opfdata_solution, __decode_pypsa_sequence, __emit_goc3_output,
33        __parse_goc3_output_buffer, __parse_goc3_problem_buffer, PypsaSequence,
34    };
35}
36pub use instance::{
37    AcBusSpecification, AcOpfInstance, AcPfInstance, AcScucInstance, ActiveConstraints,
38    ActiveControlMode, ConstraintSelection, DcBusSpecification, DcOpfInstance, DcPfInstance,
39    LinDist3FlowApplicability, LinDist3FlowApplicabilityStatus, LinDist3FlowBuildOptions,
40    LinDist3FlowNode, LinDist3FlowOpfInstance, LinDist3FlowOrientedConductor,
41    LinDist3FlowReferencePolicy, LinDist3FlowReferenceProvenance, LinDist3FlowReferenceState,
42    LinDist3FlowReferenceVoltage, LinDist3FlowTopology, LinDist3FlowUnsupported, McAcOpfInstance,
43    McAcPfInstance, MulticonductorActiveConstraints, Objective, ObjectiveTerm,
44    PrescribedSourceVoltage, PrescribedTerminalPower, ScucActiveReserveZone,
45    ScucBranchSwitchingCost, ScucContingency, ScucDevice, ScucDeviceKind, ScucDevicePeriod,
46    ScucEnergyCostBlock, ScucEnergyRequirement, ScucInitialCommitment, ScucInputs, ScucRampLimits,
47    ScucReactiveCapability, ScucReactiveReserveZone, ScucReserveCosts, ScucReserveLimits,
48    ScucShunt, ScucStartupCostAdjustment, ScucStartupLimit, ScucTransformerControl,
49    ScucViolationCosts, ZeroImpedanceMerge, check_lindist3flow_applicability,
50    merge_zero_impedance_buses,
51};
52pub use operating::{
53    BalancedOperatingPointBuilder, BalancedOperatingPointFlag, BalancedOperatingPointQuantity,
54    MulticonductorOperatingPointBuilder, MulticonductorOperatingPointFlag,
55    MulticonductorOperatingPointQuantity, OperatingPoint, OperatingPointFlags,
56    OperatingPointValues,
57};
58pub use reference::ReferenceBuses;
59pub use solution::{
60    AcOpfSolution, AcPfSolution, AcScucSolution, DcOpfSolution, DcPfSolution, GeneratorDispatch,
61    LinDist3FlowOpfSolution, LinDist3FlowOpfValues, McAcOpfSolution, McAcPfSolution, Producer,
62    Residuals, SCUC_DEVICE_OUTPUT_SERIES, SCUC_NETWORK_OUTPUT_SERIES, ScucDeviceOutputs,
63    ScucNetworkOutputs, Termination, ThreeWindingTransformerTerminalActivePower,
64    ThreeWindingTransformerTerminalPower,
65};
66pub use update::{
67    ActivePower, ActivePowerUnit, ApparentPower, ApparentPowerUnit, BalancedCalculationInstance,
68    CalculationUpdate, LoadAllocation, NetworkUpdate, OperatingPointUpdate, ReactivePower,
69    ReactivePowerUnit, UpdateChange, UpdateReport, UpdatedField, apply_bus_load_active_power,
70    apply_updates,
71};