Skip to main content

AcOpfSolution

Struct AcOpfSolution 

Source
pub struct AcOpfSolution { /* private fields */ }
Expand description

The AC optimal power flow solution: the AC power flow results plus the optimized generator active and reactive dispatch and the objective value.

Implementations§

Source§

impl AcOpfSolution

Source

pub fn new( instance: Arc<AcOpfInstance>, termination: Termination, bus_voltage_magnitude: Vec<f64>, bus_voltage_angle: Vec<f64>, bus_active_injection: Vec<f64>, bus_reactive_injection: Vec<f64>, branch_from_active_flow: Vec<f64>, branch_from_reactive_flow: Vec<f64>, branch_to_active_flow: Vec<f64>, branch_to_reactive_flow: Vec<f64>, generator_active_power: Vec<f64>, generator_reactive_power: Vec<f64>, objective: f64, three_winding_transformer_terminal_power: Vec<ThreeWindingTransformerTerminalPower>, ) -> Result<Self, Error>

Assemble the results: the AC power flow columns, the optimized per generator dispatch (MW and MVAr, generator table order), and the objective value.

§Errors

A column whose length disagrees with the instance’s tables.

Source

pub fn instance(&self) -> &AcOpfInstance

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

Source

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

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, in objective units per MW and bus table order.

§Errors

A column whose length disagrees with the instance’s bus table.

Source

pub fn with_bus_reactive_power_marginals( self, marginals: Vec<f64>, ) -> Result<Self, Error>

Attach the derivative of the optimal objective with respect to added reactive demand, in objective units per MVAr and bus table order.

§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 apparent power limit multipliers, in objective units per MVA and branch table order. Increasing the shared rating by one MVA changes the local optimal objective by the negative sum of the from and to terminal multipliers.

Source

pub const fn objective(&self) -> f64

The optimized objective value.

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 bus_reactive_power_marginal(&self, bus: BusId) -> Option<f64>

Optimal objective derivative per added MVAr of reactive demand.

Source

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

From-terminal apparent power bound multiplier by branch identity.

Source

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

To-terminal apparent power bound multiplier by 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 bus_reactive_power_marginals(&self) -> Option<&[f64]>

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

Source

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

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

Source

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

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

Source

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

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

Source

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

Optimized reactive power of one generator, MVAr.

Source

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

Voltage magnitude at one bus, per unit.

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 bus_reactive_injection(&self, bus: BusId) -> Option<f64>

Net reactive injection at one bus, MVAr.

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_from_reactive_flow(&self, identity: &str) -> Option<f64>

Reactive flow into the branch at its from terminal, MVAr.

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 branch_to_reactive_flow(&self, identity: &str) -> Option<f64>

Reactive flow into the branch at its to terminal, MVAr.

Source

pub fn three_winding_transformer_terminal_powers( &self, ) -> &[ThreeWindingTransformerTerminalPower]

Three winding transformer terminal powers in transformer table order.

Source

pub fn bus_voltage_magnitudes(&self) -> &[f64]

The complete bus_voltage_magnitude column, in bus_order.

Source

pub fn bus_voltage_angles(&self) -> &[f64]

The complete bus_voltage_angle column, in bus_order.

Source

pub fn bus_active_injections(&self) -> &[f64]

The complete bus_active_injection column, in bus_order.

Source

pub fn bus_reactive_injections(&self) -> &[f64]

The complete bus_reactive_injection column, in bus_order.

Source

pub fn branch_from_active_flows(&self) -> &[f64]

The complete branch_from_active_flow column, in branch_order.

Source

pub fn branch_from_reactive_flows(&self) -> &[f64]

The complete branch_from_reactive_flow column, in branch_order.

Source

pub fn branch_to_active_flows(&self) -> &[f64]

The complete branch_to_active_flow column, in branch_order.

Source

pub fn branch_to_reactive_flows(&self) -> &[f64]

The complete branch_to_reactive_flow column, in branch_order.

Source

pub fn generator_active_powers(&self) -> &[f64]

The complete generator_active_power column, in generator_order.

Source

pub fn generator_reactive_powers(&self) -> &[f64]

The complete generator_reactive_power column, in generator_order.

Trait Implementations§

Source§

impl Clone for AcOpfSolution

Source§

fn clone(&self) -> AcOpfSolution

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 AcOpfSolution

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.