pub struct CapAndTradeDispatch {
pub solver: EpsilonConstraintSolver,
pub emission_cap: f64,
pub allowance_price: f64,
}Expand description
Dispatch under a cap-and-trade emission market.
Excess emissions require purchasing allowances at allowance_price;
shortfalls generate revenue (negative allowance_cost).
Fields§
§solver: EpsilonConstraintSolver§emission_cap: f64Hourly emission cap (tons/h)
allowance_price: f64Allowance price ($/ton)
Implementations§
Source§impl CapAndTradeDispatch
impl CapAndTradeDispatch
Sourcepub fn new(
generators: Vec<EedGenerator>,
emission_cap: f64,
allowance_price: f64,
) -> Self
pub fn new( generators: Vec<EedGenerator>, emission_cap: f64, allowance_price: f64, ) -> Self
Create a new cap-and-trade dispatcher.
Sourcepub fn dispatch(&self, load_mw: f64) -> Result<(EedDispatch, f64), OxiGridError>
pub fn dispatch(&self, load_mw: f64) -> Result<(EedDispatch, f64), OxiGridError>
Dispatch under cap-and-trade rules.
Returns (dispatch, allowance_cost_or_revenue).
Positive allowance_cost means the system must purchase allowances;
negative means surplus allowances are sold as revenue.
Trait Implementations§
Source§impl Clone for CapAndTradeDispatch
impl Clone for CapAndTradeDispatch
Source§fn clone(&self) -> CapAndTradeDispatch
fn clone(&self) -> CapAndTradeDispatch
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CapAndTradeDispatch
impl RefUnwindSafe for CapAndTradeDispatch
impl Send for CapAndTradeDispatch
impl Sync for CapAndTradeDispatch
impl Unpin for CapAndTradeDispatch
impl UnsafeUnpin for CapAndTradeDispatch
impl UnwindSafe for CapAndTradeDispatch
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> 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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.