Skip to main content

Process

Struct Process 

Source
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: ProcessID

A unique identifier for the process (e.g. GASDRV)

§description: String

A 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: ProcessActivityLimitsMap

Limits on activity for each time slice (as a fraction of maximum)

§flows: ProcessFlowsMap

Maximum annual commodity flows for this process

§parameters: ProcessParameterMap

Additional 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: ActivityPerCapacity

Factor 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: ProcessInvestmentConstraintsMap

Investment 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

Source

pub fn active_for_year(&self, year: u32) -> bool

Whether the process can be commissioned in a given year

Source

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.

Source

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.

Source

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§

Source§

impl Clone for Process

Source§

fn clone(&self) -> Process

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Process

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Process

Source§

fn eq(&self, other: &Process) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Process

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.