Struct Solution

Source
pub struct Solution<'a> {
    solution: Solution,
    variables: VariableMap,
    active_asset_var_idx: Range<usize>,
    candidate_asset_var_idx: Range<usize>,
    time_slice_info: &'a TimeSliceInfo,
    constraint_keys: ConstraintKeys,
}
Expand description

The solution to the dispatch optimisation problem

Fields§

§solution: Solution§variables: VariableMap§active_asset_var_idx: Range<usize>§candidate_asset_var_idx: Range<usize>§time_slice_info: &'a TimeSliceInfo§constraint_keys: ConstraintKeys

Implementations§

Source§

impl Solution<'_>

Source

pub fn create_flow_map(&self) -> FlowMap

Create a map of commodity flows for each asset’s coeffs at every time slice.

Note that this only includes commodity flows which relate to assets, so not every commodity in the simulation will necessarily be represented.

Source

fn iter_activity_for_active( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, Activity)>

Activity for each active asset

Source

pub fn iter_reduced_costs_for_candidates( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>

Reduced costs for candidate assets

Source

pub fn iter_commodity_balance_duals( &self, ) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>

Keys and dual values for commodity balance constraints.

Source

pub fn iter_activity_duals( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>

Keys and dual values for activity constraints.

Source

fn zip_var_keys_with_output<'a, T: UnitType>( &'a self, variable_idx: &Range<usize>, output: &'a [f64], ) -> impl Iterator<Item = (&'a AssetRef, &'a TimeSliceID, T)>

Zip a subset of keys in the variable map with a subset of the given output variable.

§Arguments
  • variable_idx - The subset of variables to look at
  • output - The output variable of interest

Auto Trait Implementations§

§

impl<'a> Freeze for Solution<'a>

§

impl<'a> RefUnwindSafe for Solution<'a>

§

impl<'a> !Send for Solution<'a>

§

impl<'a> !Sync for Solution<'a>

§

impl<'a> Unpin for Solution<'a>

§

impl<'a> UnwindSafe for Solution<'a>

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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.