pub struct CommodityPrices(BTreeMap<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>);
Expand description
A map relating commodity ID + region + time slice to current price (endogenous)
Tuple Fields§
§0: BTreeMap<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>
Implementations§
Source§impl CommodityPrices
impl CommodityPrices
Sourcepub fn calculate(model: &Model, solution: &Solution<'_>, year: u32) -> Self
pub fn calculate(model: &Model, solution: &Solution<'_>, year: u32) -> Self
Calculate commodity prices based on the result of the dispatch optimisation and input data.
Note that it is possible that there will still be commodities without specified prices, if they were not included in the dispatch optimisation and no levies were specified by the user.
Sourcefn add_from_duals(&mut self, solution: &Solution<'_>)
fn add_from_duals(&mut self, solution: &Solution<'_>)
Add commodity prices using activity and commodity balance duals.
Commodity prices are calculated as the sum of the commodity balance duals and the highest activity dual for each commodity/timeslice.
§Arguments
solution
- The solution to the dispatch optimisation
Sourcefn add_from_levies(&mut self, model: &Model, year: u32)
fn add_from_levies(&mut self, model: &Model, year: u32)
Add prices based on levies/incentives.
If a commodity already has a price based on the previous dual-based calculation, we choose the higher of the two.
§Arguments
model
- The modelyear
- The milestone year of interest
Sourcepub fn insert(
&mut self,
commodity_id: &CommodityID,
region_id: &RegionID,
time_slice: &TimeSliceID,
price: MoneyPerFlow,
)
pub fn insert( &mut self, commodity_id: &CommodityID, region_id: &RegionID, time_slice: &TimeSliceID, price: MoneyPerFlow, )
Insert a price for the given commodity, region and time slice
Sourcepub fn iter(
&self,
) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
pub fn iter( &self, ) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
Iterate over the map.
§Returns
An iterator of tuples containing commodity ID, region ID, time slice and price.
Trait Implementations§
Source§impl Default for CommodityPrices
impl Default for CommodityPrices
Source§fn default() -> CommodityPrices
fn default() -> CommodityPrices
Auto Trait Implementations§
impl Freeze for CommodityPrices
impl RefUnwindSafe for CommodityPrices
impl !Send for CommodityPrices
impl !Sync for CommodityPrices
impl Unpin for CommodityPrices
impl UnwindSafe for CommodityPrices
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
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>
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>
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