Struct Solution

Source
pub struct Solution<'a> {
    solution: Solution,
    variables: VariableMap,
    time_slice_info: &'a TimeSliceInfo,
    commodity_balance_constraint_keys: Vec<(CommodityID, RegionID, TimeSliceSelection)>,
    capacity_constraint_keys: Vec<(AssetID, TimeSliceID)>,
}
Expand description

The solution to the dispatch optimisation problem

Fields§

§solution: Solution§variables: VariableMap§time_slice_info: &'a TimeSliceInfo§commodity_balance_constraint_keys: Vec<(CommodityID, RegionID, TimeSliceSelection)>§capacity_constraint_keys: Vec<(AssetID, TimeSliceID)>

Implementations§

Source§

impl Solution<'_>

Source

pub fn iter_commodity_flows_for_assets( &self, ) -> impl Iterator<Item = (AssetID, &CommodityID, &TimeSliceID, f64)>

Iterate over the newly calculated commodity flows for assets.

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

§Returns

An iterator of tuples containing an asset ID, commodity, time slice and flow.

Source

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

Keys and dual values for commodity balance constraints.

Source

pub fn iter_capacity_duals( &self, ) -> impl Iterator<Item = (AssetID, &TimeSliceID, f64)>

Keys and dual values for capacity constraints.

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.