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<'_>
impl Solution<'_>
Sourcepub fn create_flow_map(&self) -> FlowMap
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.
Sourcefn iter_activity_for_active(
&self,
) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, Activity)>
fn iter_activity_for_active( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, Activity)>
Activity for each active asset
Sourcepub fn iter_reduced_costs_for_candidates(
&self,
) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>
pub fn iter_reduced_costs_for_candidates( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>
Reduced costs for candidate assets
Sourcepub fn iter_commodity_balance_duals(
&self,
) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
pub fn iter_commodity_balance_duals( &self, ) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
Keys and dual values for commodity balance constraints.
Sourcepub fn iter_activity_duals(
&self,
) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>
pub fn iter_activity_duals( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, MoneyPerActivity)>
Keys and dual values for activity constraints.
Sourcefn 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)>
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 atoutput
- 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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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