pub struct Solution<'a> {
solution: Solution,
variables: VariableMap,
active_asset_var_idx: Range<usize>,
time_slice_info: &'a TimeSliceInfo,
constraint_keys: ConstraintKeys,
pub objective_value: Money,
}Expand description
The solution to the dispatch optimisation problem
Fields§
§solution: Solution§variables: VariableMap§active_asset_var_idx: Range<usize>§time_slice_info: &'a TimeSliceInfo§constraint_keys: ConstraintKeys§objective_value: MoneyThe objective value for the solution
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.
Sourcepub fn iter_activity(
&self,
) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, Activity)>
pub fn iter_activity( &self, ) -> impl Iterator<Item = (&AssetRef, &TimeSliceID, Activity)>
Activity for each active asset
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_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)> + use<'a, 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)> + use<'a, 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