pub struct DcOpfSolution { /* private fields */ }Expand description
The DC optimal power flow solution: the DC power flow results plus the optimized generator active dispatch, the objective value, and the optional economic outputs an optimizing producer can attach.
Implementations§
Source§impl DcOpfSolution
impl DcOpfSolution
Sourcepub fn new(
instance: Arc<DcOpfInstance>,
termination: Termination,
bus_voltage_angle: Vec<f64>,
bus_active_injection: Vec<f64>,
branch_from_active_flow: Vec<f64>,
branch_to_active_flow: Vec<f64>,
generator_active_power: Vec<f64>,
objective: f64,
three_winding_transformer_terminal_active_power: Vec<ThreeWindingTransformerTerminalActivePower>,
) -> Result<Self, Error>
pub fn new( instance: Arc<DcOpfInstance>, termination: Termination, bus_voltage_angle: Vec<f64>, bus_active_injection: Vec<f64>, branch_from_active_flow: Vec<f64>, branch_to_active_flow: Vec<f64>, generator_active_power: Vec<f64>, objective: f64, three_winding_transformer_terminal_active_power: Vec<ThreeWindingTransformerTerminalActivePower>, ) -> Result<Self, Error>
Assemble the results: the DC power flow columns, the optimized per generator active dispatch (MW, generator table order), and the objective value.
§Errors
A column whose length disagrees with the instance’s tables.
Sourcepub fn instance(&self) -> &DcOpfInstance
pub fn instance(&self) -> &DcOpfInstance
The immutable instance this solution solves. Borrowed; never a copy.
The shared instance owner, for another solution of the same problem.
Sourcepub fn network(&self) -> &BalancedNetwork
pub fn network(&self) -> &BalancedNetwork
The network the solved instance calculates on.
Sourcepub fn branch_order(&self) -> Vec<String>
pub fn branch_order(&self) -> Vec<String>
Stable branch identities in bulk column order.
Sourcepub fn generator_order(&self) -> Vec<String>
pub fn generator_order(&self) -> Vec<String>
Stable generator identities in bulk column order.
Sourcepub fn termination(&self) -> &Termination
pub fn termination(&self) -> &Termination
How the producing calculation ended.
Sourcepub fn with_producer(self, producer: impl Into<String>) -> Self
pub fn with_producer(self, producer: impl Into<String>) -> Self
Record the producer identity.
Sourcepub fn with_residuals(self, residuals: Residuals) -> Self
pub fn with_residuals(self, residuals: Residuals) -> Self
Record the numerical residuals.
Sourcepub fn branch_identity_order(&self) -> impl Iterator<Item = String> + '_
pub fn branch_identity_order(&self) -> impl Iterator<Item = String> + '_
The branch identities the flow columns follow, in table order.
Sourcepub fn with_bus_active_power_marginals(
self,
marginals: Vec<f64>,
) -> Result<Self, Error>
pub fn with_bus_active_power_marginals( self, marginals: Vec<f64>, ) -> Result<Self, Error>
Attach the derivative of the optimal objective with respect to added active demand at each bus, in objective units per MW and bus table order. A network generator cost objective gives the usual active power locational marginal price; a different objective does not imply money.
§Errors
A column whose length disagrees with the instance’s bus table.
Sourcepub fn with_branch_thermal_limit_multipliers(
self,
from: Vec<f64>,
to: Vec<f64>,
) -> Result<Self, Error>
pub fn with_branch_thermal_limit_multipliers( self, from: Vec<f64>, to: Vec<f64>, ) -> Result<Self, Error>
Attach the two nonnegative KKT multipliers for every branch thermal
bound, in objective units per MW and branch table order. from is the
multiplier on flow <= rating; to is the multiplier on
-flow <= rating. Increasing one symmetric rating by one MW changes
the local optimal objective by the negative sum of the two values. A
branch absent from the DC calculation carries zero in both columns.
§Errors
A column whose length disagrees with the instance’s branch table.
Sourcepub fn generator_active_power(&self, identity: &str) -> Option<f64>
pub fn generator_active_power(&self, identity: &str) -> Option<f64>
Optimized active power of one generator, MW, by stable identity.
Sourcepub fn bus_active_power_marginal(&self, bus: BusId) -> Option<f64>
pub fn bus_active_power_marginal(&self, bus: BusId) -> Option<f64>
Optimal objective derivative per added MW of active demand at one bus.
Sourcepub fn branch_from_limit_multiplier(&self, identity: &str) -> Option<f64>
pub fn branch_from_limit_multiplier(&self, identity: &str) -> Option<f64>
From-side thermal bound multiplier by stable branch identity.
Sourcepub fn branch_to_limit_multiplier(&self, identity: &str) -> Option<f64>
pub fn branch_to_limit_multiplier(&self, identity: &str) -> Option<f64>
To-side thermal bound multiplier by stable branch identity.
Sourcepub fn bus_active_power_marginals(&self) -> Option<&[f64]>
pub fn bus_active_power_marginals(&self) -> Option<&[f64]>
All active demand marginals in bus table order, when attached.
Sourcepub fn branch_from_limit_multipliers(&self) -> Option<&[f64]>
pub fn branch_from_limit_multipliers(&self) -> Option<&[f64]>
All from-side thermal bound multipliers in branch table order.
Sourcepub fn branch_to_limit_multipliers(&self) -> Option<&[f64]>
pub fn branch_to_limit_multipliers(&self) -> Option<&[f64]>
All to-side thermal bound multipliers in branch table order.
Sourcepub fn bus_voltage_angle(&self, bus: BusId) -> Option<f64>
pub fn bus_voltage_angle(&self, bus: BusId) -> Option<f64>
Voltage angle at one bus, degrees.
Sourcepub fn bus_active_injection(&self, bus: BusId) -> Option<f64>
pub fn bus_active_injection(&self, bus: BusId) -> Option<f64>
Net active injection at one bus, MW.
Sourcepub fn branch_from_active_flow(&self, identity: &str) -> Option<f64>
pub fn branch_from_active_flow(&self, identity: &str) -> Option<f64>
Active flow into the branch at its from terminal, MW.
Sourcepub fn branch_to_active_flow(&self, identity: &str) -> Option<f64>
pub fn branch_to_active_flow(&self, identity: &str) -> Option<f64>
Active flow into the branch at its to terminal, MW.
Sourcepub fn three_winding_transformer_terminal_active_powers(
&self,
) -> &[ThreeWindingTransformerTerminalActivePower]
pub fn three_winding_transformer_terminal_active_powers( &self, ) -> &[ThreeWindingTransformerTerminalActivePower]
Three winding transformer terminal active powers in transformer table order.
Trait Implementations§
Source§impl Clone for DcOpfSolution
impl Clone for DcOpfSolution
Source§fn clone(&self) -> DcOpfSolution
fn clone(&self) -> DcOpfSolution
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more