pub struct Process {
pub id: ProcessID,
pub description: String,
pub years: RangeInclusive<u32>,
pub activity_limits: ProcessActivityLimitsMap,
pub flows: ProcessFlowsMap,
pub parameters: ProcessParameterMap,
pub regions: IndexSet<RegionID>,
pub primary_output: Option<CommodityID>,
pub capacity_to_activity: ActivityPerCapacity,
pub investment_constraints: ProcessInvestmentConstraintsMap,
pub tranche_size: Option<Capacity>,
}Expand description
Represents a process within the simulation
Fields§
§id: ProcessIDA unique identifier for the process (e.g. GASDRV)
description: StringA human-readable description for the process (e.g. dry gas extraction)
years: RangeInclusive<u32>The years in which this process is available for investment.
activity_limits: ProcessActivityLimitsMapLimits on activity for each time slice (as a fraction of maximum)
flows: ProcessFlowsMapMaximum annual commodity flows for this process
parameters: ProcessParameterMapAdditional parameters for this process
regions: IndexSet<RegionID>The regions in which this process can operate
primary_output: Option<CommodityID>The primary output for this process, if any
capacity_to_activity: ActivityPerCapacityFactor for calculating the maximum consumption/production over a year.
Used for converting one unit of capacity to maximum energy of asset per year. For example,
if capacity is measured in GW and energy is measured in PJ, the capacity_to_activity for the
process is 31.536 because 1 GW of capacity can produce 31.536 PJ energy output in a year.
investment_constraints: ProcessInvestmentConstraintsMapInvestment constraints for this process
tranche_size: Option<Capacity>Capacity of each tranche for investments in this process, if any.
Candidate assets are created with one tranche of this size, and MUSE2 may select multiple tranches over successive investment rounds. For user-provided assets, this value determines how their total capacity is represented as equal-capacity tranches; the number of tranches is rounded up when necessary.
Implementations§
Source§impl Process
impl Process
Sourcepub fn active_for_year(&self, year: u32) -> bool
pub fn active_for_year(&self, year: u32) -> bool
Whether the process can be commissioned in a given year
Sourcefn agent_limit(
&self,
region_id: &RegionID,
commission_year: u32,
commodity_portion: Dimensionless,
get_limit: fn(&ProcessInvestmentConstraint) -> Option<Capacity>,
) -> Option<Capacity>
fn agent_limit( &self, region_id: &RegionID, commission_year: u32, commodity_portion: Dimensionless, get_limit: fn(&ProcessInvestmentConstraint) -> Option<Capacity>, ) -> Option<Capacity>
Calculate an agent’s share of any limit for this process in a region and year based on commodity portion.
Sourcepub fn agent_addition_limit(
&self,
region_id: &RegionID,
commission_year: u32,
commodity_portion: Dimensionless,
) -> Option<Capacity>
pub fn agent_addition_limit( &self, region_id: &RegionID, commission_year: u32, commodity_portion: Dimensionless, ) -> Option<Capacity>
Calculate an agent’s share of the addition limit for this process in a region and year based on commodity portion.
Sourcepub fn agent_total_limit(
&self,
region_id: &RegionID,
commission_year: u32,
commodity_portion: Dimensionless,
) -> Option<Capacity>
pub fn agent_total_limit( &self, region_id: &RegionID, commission_year: u32, commodity_portion: Dimensionless, ) -> Option<Capacity>
Calculate an agent’s share of the total limit for this process in a region and year based on commodity portion.
Trait Implementations§
impl StructuralPartialEq for Process
Auto Trait Implementations§
impl Freeze for Process
impl RefUnwindSafe for Process
impl Send for Process
impl Sync for Process
impl Unpin for Process
impl UnsafeUnpin for Process
impl UnwindSafe for Process
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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