Struct CommodityPrices

Source
pub struct CommodityPrices(IndexMap<(CommodityID, RegionID, TimeSliceID), f64>);
Expand description

A map relating commodity ID + region + time slice to current price (endogenous)

Tuple Fields§

§0: IndexMap<(CommodityID, RegionID, TimeSliceID), f64>

Implementations§

Source§

impl CommodityPrices

Source

pub fn from_model_and_solution( model: &Model, solution: &Solution<'_>, assets: &AssetPool, ) -> Self

Calculate commodity prices based on the result of the dispatch optimisation.

Missing prices will be calculated directly from the input data

Source

fn add_from_solution( &mut self, solution: &Solution<'_>, assets: &AssetPool, ) -> HashSet<(CommodityID, RegionID)>

Add commodity prices for which there are values in the solution

Commodity prices are calculated as the sum of the commodity balance duals and the highest capacity dual for each commodity/timeslice.

§Arguments
  • solution - The solution to the dispatch optimisation
  • assets - The asset pool
§Returns

The set of commodities for which prices were added.

Source

fn add_remaining<'a, I>( &mut self, commodity_regions: I, time_slice_info: &TimeSliceInfo, )
where I: Iterator<Item = &'a (CommodityID, RegionID)>,

Add prices for any commodity not updated by the dispatch step.

§Arguments
  • commodity_ids - IDs of commodities to update
  • time_slice_info - Information about time slices
Source

pub fn insert( &mut self, commodity_id: &CommodityID, region_id: &RegionID, time_slice: &TimeSliceID, price: f64, )

Insert a price for the given commodity, time slice and region

Source

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

Iterate over the map.

§Returns

An iterator of tuples containing commodity ID, time slice and price.

Trait Implementations§

Source§

impl Default for CommodityPrices

Source§

fn default() -> CommodityPrices

Returns the “default value” for a type. 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> 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.