Fuel Price

E4ST.FuelPriceType
FuelPrice(;file) <: Modification

FuelPrice is a Modification allowing users to specify fuel prices for different fuels by region. If multiple steps and quantities are given, the fuel price for a given region will be computed endogenously.

To adjust price by hour or year, see AdjustHourly or AdjustYearly.

source
E4ST.modify_setup_data!Method
modify_setup_data!(mod::FuelPrice, config, data)

Zero out the fuel_price column of the gen table, as it will get overwritten later by this Modification. This is to avoid double-counting the fuel cost.

source
E4ST.modify_model!Method
modify_model!(mod::FuelPrice, config, data, model)
  • Make data[:fuel_markets] to keep track of each of the fuel markets
  • Add variable fuel_sold[fuel_price_idx, yr_idx, hr_idx]: total fuel sold at each price step for each time interval
  • Add expression fuel_used[fuel_market_idx, yr_idx, hr_idx]: total fuel used by generators for each market region for each time interval
  • Add expression fuel_price_obj[fuel_market_idx, yr_idx, hr_idx]: total cost of the fuel, added to the objective.
  • Add constraint cons_fuel_sold[fuel_price_idx, yr_idx]: constrain the total fuel_sold in each year to be ≤ yearly quantity
  • Add constraint cons_fuel_bal[fuel_market_idx, yr_idx, hr_idx]: constrain the amount of fuel sold in each market region to equal the amount of fuel used in each market region.
source
E4ST.modify_results!Method
modify_results!(mod::FuelPrice, config, data)
  • Calculate the clearing price for each market region for each fuel type.
    • Equal to the shadow price of cons_fuel_sold for the cheapest fuel price step in the region plus the cheapest fuel price
    • Add it to fuel_markets.clearing_price column
    • Update gen.fuel_price column to use the clearing price (multiplied by the heat_rate column)
source
E4ST.summarize_tableMethod
summarize_table(::Val{:fuel_price})
column_namedata_typeunitrequireddescription
genfuelStringE4ST.NAtrueThe type of fuel that the price applies for. i.e. ng or coal
areaStringE4ST.NAtrueThe area that the price applies for i.e. country. Leave blank if grid-wide
subareaStringE4ST.NAtrueThe subarea that the price applies for i.e. narnia. Leave blank if grid-wide
filter_StringE4ST.NAfalseI.e. filter1, filter2, etc. Other filter conditions that the price applies for, see parse_comparison for ideas
priceFloat64E4ST.DollarsPerMMBtutrueThe price of 1 MMBtu of fuel
quantityFloat64E4ST.MMBtutrueThe number of MMBtu of the fuel available at the price in each year. Set to Inf for unlimited.
source