Skip to main content

DcOpfSolution

Struct DcOpfSolution 

Source
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

Source

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.

Source

pub fn instance(&self) -> &DcOpfInstance

The immutable instance this solution solves. Borrowed; never a copy.

Source

pub fn shared_instance(&self) -> Arc<DcOpfInstance>

The shared instance owner, for another solution of the same problem.

Source

pub fn network(&self) -> &BalancedNetwork

The network the solved instance calculates on.

Source

pub fn bus_order(&self) -> Vec<BusId>

Bus IDs in the column order every bulk accessor uses.

Source

pub fn branch_order(&self) -> Vec<String>

Stable branch identities in bulk column order.

Source

pub fn generator_order(&self) -> Vec<String>

Stable generator identities in bulk column order.

Source

pub fn termination(&self) -> &Termination

How the producing calculation ended.

Source

pub fn residuals(&self) -> &Residuals

The reported numerical residuals.

Source

pub fn producer(&self) -> Option<&str>

The producer or solver identity, when recorded.

Source

pub fn with_producer(self, producer: impl Into<String>) -> Self

Record the producer identity.

Source

pub fn with_residuals(self, residuals: Residuals) -> Self

Record the numerical residuals.

Source

pub fn branch_identity_order(&self) -> impl Iterator<Item = String> + '_

The branch identities the flow columns follow, in table order.

Source

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.

Source

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.

Source

pub const fn objective(&self) -> f64

The optimized objective value.

Source

pub fn generator_active_power(&self, identity: &str) -> Option<f64>

Optimized active power of one generator, MW, by stable identity.

Source

pub fn bus_active_power_marginal(&self, bus: BusId) -> Option<f64>

Optimal objective derivative per added MW of active demand at one bus.

Source

pub fn branch_from_limit_multiplier(&self, identity: &str) -> Option<f64>

From-side thermal bound multiplier by stable branch identity.

Source

pub fn branch_to_limit_multiplier(&self, identity: &str) -> Option<f64>

To-side thermal bound multiplier by stable branch identity.

Source

pub fn bus_active_power_marginals(&self) -> Option<&[f64]>

All active demand marginals in bus table order, when attached.

Source

pub fn branch_from_limit_multipliers(&self) -> Option<&[f64]>

All from-side thermal bound multipliers in branch table order.

Source

pub fn branch_to_limit_multipliers(&self) -> Option<&[f64]>

All to-side thermal bound multipliers in branch table order.

Source

pub fn bus_voltage_angle(&self, bus: BusId) -> Option<f64>

Voltage angle at one bus, degrees.

Source

pub fn bus_active_injection(&self, bus: BusId) -> Option<f64>

Net active injection at one bus, MW.

Source

pub fn branch_from_active_flow(&self, identity: &str) -> Option<f64>

Active flow into the branch at its from terminal, MW.

Source

pub fn branch_to_active_flow(&self, identity: &str) -> Option<f64>

Active flow into the branch at its to terminal, MW.

Source

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

Source§

fn clone(&self) -> DcOpfSolution

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DcOpfSolution

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.