Name | Alias | Description |
---|---|---|
comm | \(c,cp,ce,cn\) | commodity |
region | \(r,rp,re,rn\) | region |
year | \(y,yp,ye,yn\) | year |
slice | \(s,sp,se,sn\) | time slices |
sup | \(s1,s1p,s1e,s1n\) | supply |
dem | \(d,dp,de,dn\) | demand |
tech | \(t,tp,te,tn\) | technology |
stg | \(st1,st1p,st1e,st1n\) | storage |
trade | \(t1,t1p,t1e,t1n\) | trade between regions |
expp | \(e,ep,ee,en\) | export to the rest of the world (ROW) |
imp | \(i,ip,ie,in\) | import from the ROW |
group | \(g,gp,ge,gn\) | group of input or output commodities in technology |
weather | \(wth1,wth1p,wth1e,wth1n\) | weather |
2 Model
Pdf version of the model mathematical framework can be found here.
2.1 Sets
2.2 Parameters
Name | Alias | Description |
---|---|---|
pYearFraction(year) | \(pYearFraction_{y}\) | fraction of sum of sampled slices in year – experimental |
pTechOlife(tech, region) | \(pTechOlife_{t,r}\) | Operational life of technologies |
pTechCinp2ginp(tech, comm, region, year, slice) | \(pTechCinp2ginp_{t,c,r,y,s}\) | Commodity input to group input |
pTechGinp2use(tech, group, region, year, slice) | \(pTechGinp2use_{t,g,r,y,s}\) | Group input into use |
pTechCinp2use(tech, comm, region, year, slice) | \(pTechCinp2use_{t,c,r,y,s}\) | Commodity input to use |
pTechUse2cact(tech, comm, region, year, slice) | \(pTechUse2cact_{t,c,r,y,s}\) | Use to commodity activity |
pTechCact2cout(tech, comm, region, year, slice) | \(pTechCact2cout_{t,c,r,y,s}\) | Commodity activity to commodity output |
pTechEmisComm(tech, comm) | \(pTechEmisComm_{t,c}\) | Combustion factor for input commodity (from 0 to 1) |
pTechAct2AInp(tech, comm, region, year, slice) | \(pTechAct2AInp_{t,c,r,y,s}\) | Activity to aux-commodity input |
pTechCap2AInp(tech, comm, region, year, slice) | \(pTechCap2AInp_{t,c,r,y,s}\) | Capacity to aux-commodity input |
pTechNCap2AInp(tech, comm, region, year, slice) | \(pTechNCap2AInp_{t,c,r,y,s}\) | New capacity to aux-commodity input |
pTechCinp2AInp(tech, comm, comm, region, year, slice) | \(pTechCinp2AInp_{t,c,c,r,y,s}\) | Commodity input to aux-commodity input |
pTechCout2AInp(tech, comm, comm, region, year, slice) | \(pTechCout2AInp_{t,c,c,r,y,s}\) | Commodity output to aux-commodity input |
pTechAct2AOut(tech, comm, region, year, slice) | \(pTechAct2AOut_{t,c,r,y,s}\) | Activity to aux-commodity output |
pTechCap2AOut(tech, comm, region, year, slice) | \(pTechCap2AOut_{t,c,r,y,s}\) | Capacity to aux-commodity output |
pTechNCap2AOut(tech, comm, region, year, slice) | \(pTechNCap2AOut_{t,c,r,y,s}\) | New capacity to aux-commodity output |
pTechCinp2AOut(tech, comm, comm, region, year, slice) | \(pTechCinp2AOut_{t,c,c,r,y,s}\) | Commodity to aux-commodity output |
pTechCout2AOut(tech, comm, comm, region, year, slice) | \(pTechCout2AOut_{t,c,c,r,y,s}\) | Commodity-output to aux-commodity input |
pTechFixom(tech, region, year) | \(pTechFixom_{t,r,y}\) | Fixed Operating and maintenance (O\ |
pTechVarom(tech, region, year, slice) | \(pTechVarom_{t,r,y,s}\) | Variable O\ |
pTechInvcost(tech, region, year) | \(pTechInvcost_{t,r,y}\) | Investment costs (per unit of capacity) |
pTechEac(tech, region, year) | \(pTechEac_{t,r,y}\) | Equivalent annual (investment) cost |
pTechRetCost(tech, region, year) | \(pTechRetCost_{t,r,y}\) | Early retirement costs |
pTechShareLo(tech, comm, region, year, slice) | \(pTechShareLo_{t,c,r,y,s}\) | Lower bound of the share of the commodity in total group input or output |
pTechShareUp(tech, comm, region, year, slice) | \(pTechShareUp_{t,c,r,y,s}\) | Upper bound of the share of the commodity in total group input or output |
pTechAfLo(tech, region, year, slice) | \(pTechAfLo_{t,r,y,s}\) | Lower bound on availability factor by slices |
pTechAfUp(tech, region, year, slice) | \(pTechAfUp_{t,r,y,s}\) | Upper bound on availability factor by slices |
pTechRampUp(tech, region, year, slice) | \(pTechRampUp_{t,r,y,s}\) | Ramp Up on availability factor |
pTechRampDown(tech, region, year, slice) | \(pTechRampDown_{t,r,y,s}\) | Ramp Down on availability |
pTechAfsLo(tech, region, year, slice) | \(pTechAfsLo_{t,r,y,s}\) | Lower bound on availability factor by groups of slices |
pTechAfsUp(tech, region, year, slice) | \(pTechAfsUp_{t,r,y,s}\) | Upper bound on availability factor by groups of slices |
pTechAfcLo(tech, comm, region, year, slice) | \(pTechAfcLo_{t,c,r,y,s}\) | Lower bound for commodity output |
pTechAfcUp(tech, comm, region, year, slice) | \(pTechAfcUp_{t,c,r,y,s}\) | Upper bound for commodity output |
pTechStock(tech, region, year) | \(pTechStock_{t,r,y}\) | Technology capacity stock |
pTechCapUp(tech, region, year) | \(pTechCapUp_{t,r,y}\) | Upper bound on technology capacity |
pTechCapLo(tech, region, year) | \(pTechCapLo_{t,r,y}\) | Lower bound on technology capacity |
pTechNewCapUp(tech, region, year) | \(pTechNewCapUp_{t,r,y}\) | Upper bound on new technology capacity |
pTechNewCapLo(tech, region, year) | \(pTechNewCapLo_{t,r,y}\) | Lower bound on new technology capacity |
pTechRetUp(tech, region, year) | \(pTechRetUp_{t,r,y}\) | Upper bound on early retirement |
pTechRetLo(tech, region, year) | \(pTechRetLo_{t,r,y}\) | Lower bound on early retirement |
pTechCap2act(tech) | \(pTechCap2act_{t}\) | Technology capacity units to activity units conversion factor |
pTechCvarom(tech, comm, region, year, slice) | \(pTechCvarom_{t,c,r,y,s}\) | Commodity-specific variable costs (per unit of commodity input or output) |
pTechAvarom(tech, comm, region, year, slice) | \(pTechAvarom_{t,c,r,y,s}\) | Auxilary Commodity-specific variable costs (per unit of commodity input or output) |
pDiscount(region, year) | \(pDiscount_{r,y}\) | Discount rate (can be region and year specific) |
pDiscountFactor(region, year) | \(pDiscountFactor_{r,y}\) | Discount factor (cumulative) |
pDiscountFactorMileStone(region, year) | \(pDiscountFactorMileStone_{r,y}\) | Discount factor (cumulative) sum for MileStone |
pSupCost(sup, comm, region, year, slice) | \(pSupCost_{s1,c,r,y,s}\) | Costs of supply (price per unit) |
pSupAvaUp(sup, comm, region, year, slice) | \(pSupAvaUp_{s1,c,r,y,s}\) | Upper bound for supply |
pSupAvaLo(sup, comm, region, year, slice) | \(pSupAvaLo_{s1,c,r,y,s}\) | Lower bound for supply |
pSupReserveUp(sup, comm, region) | \(pSupReserveUp_{s1,c,r}\) | Upper constraint on cumulative supply |
pSupReserveLo(sup, comm, region) | \(pSupReserveLo_{s1,c,r}\) | Lower constraint on cumulative supply |
pDemand(dem, comm, region, year, slice) | \(pDemand_{d,c,r,y,s}\) | Exogenous demand |
pEmissionFactor(comm, comm) | \(pEmissionFactor_{c,c}\) | Emission factor |
pDummyImportCost(comm, region, year, slice) | \(pDummyImportCost_{c,r,y,s}\) | Dummy costs parameters (for debugging) |
pDummyExportCost(comm, region, year, slice) | \(pDummyExportCost_{c,r,y,s}\) | Dummy costs parameters (for debuging) |
pTaxCostInp(comm, region, year, slice) | \(pTaxCostInp_{c,r,y,s}\) | Commodity taxes for input |
pTaxCostOut(comm, region, year, slice) | \(pTaxCostOut_{c,r,y,s}\) | Commodity taxes for output |
pTaxCostBal(comm, region, year, slice) | \(pTaxCostBal_{c,r,y,s}\) | Commodity taxes for balance |
pSubCostInp(comm, region, year, slice) | \(pSubCostInp_{c,r,y,s}\) | Commodity subsidies for input |
pSubCostOut(comm, region, year, slice) | \(pSubCostOut_{c,r,y,s}\) | Commodity subsidies for output |
pSubCostBal(comm, region, year, slice) | \(pSubCostBal_{c,r,y,s}\) | Commodity subsidies for balance |
pAggregateFactor(comm, comm) | \(pAggregateFactor_{c,c}\) | Aggregation factor of commodities |
pPeriodLen(year) | \(pPeriodLen_{y}\) | Length of milestone-year-period |
pSliceShare(slice) | \(pSliceShare_{s}\) | Slice share in year |
pSliceWeight(slice) | \(pSliceWeight_{s}\) | Slice weight |
ordYear(year) | \(ordYear_{y}\) | ord year (used in GLPK-MathProg) |
cardYear(year) | \(cardYear_{y}\) | card year (used in GLPK-MathProg) |
pStorageInpEff(stg, comm, region, year, slice) | \(pStorageInpEff_{st1,c,r,y,s}\) | Storage input efficiency |
pStorageOutEff(stg, comm, region, year, slice) | \(pStorageOutEff_{st1,c,r,y,s}\) | Storage output efficiency |
pStorageStgEff(stg, comm, region, year, slice) | \(pStorageStgEff_{st1,c,r,y,s}\) | Storage time-efficiency (annual) |
pStorageStock(stg, region, year) | \(pStorageStock_{st1,r,y}\) | Storage capacity stock |
pStorageCapUp(stg, region, year) | \(pStorageCapUp_{st1,r,y}\) | Upper bound on storage capacity |
pStorageCapLo(stg, region, year) | \(pStorageCapLo_{st1,r,y}\) | Lower bound on storage capacity |
pStorageNewCapUp(stg, region, year) | \(pStorageNewCapUp_{st1,r,y}\) | Upper bound on new storage capacity |
pStorageNewCapLo(stg, region, year) | \(pStorageNewCapLo_{st1,r,y}\) | Lower bound on new storage capacity |
pStorageRetUp(stg, region, year) | \(pStorageRetUp_{st1,r,y}\) | Upper bound on early retirement |
pStorageRetLo(stg, region, year) | \(pStorageRetLo_{st1,r,y}\) | Lower bound on early retirement |
pStorageOlife(stg, region) | \(pStorageOlife_{st1,r}\) | Storage operational life |
pStorageCostStore(stg, region, year, slice) | \(pStorageCostStore_{st1,r,y,s}\) | Storing costs per stored amount (annual) |
pStorageCostInp(stg, region, year, slice) | \(pStorageCostInp_{st1,r,y,s}\) | Storage input costs |
pStorageCostOut(stg, region, year, slice) | \(pStorageCostOut_{st1,r,y,s}\) | Storage output costs |
pStorageFixom(stg, region, year) | \(pStorageFixom_{st1,r,y}\) | Storage fixed O\ |
pStorageInvcost(stg, region, year) | \(pStorageInvcost_{st1,r,y}\) | Storage investment costs |
pStorageEac(stg, region, year) | \(pStorageEac_{st1,r,y}\) | Storage equivalent annual costs |
pStorageRetCost(stg, region, year) | \(pStorageRetCost_{st1,r,y}\) | Storage early retirement costs |
pStorageCap2stg(stg) | \(pStorageCap2stg_{st1}\) | Storage (dis)charging capacity to accumulating capacity (to be renamed to duration) |
pStorageAfLo(stg, region, year, slice) | \(pStorageAfLo_{st1,r,y,s}\) | Storage availability factor lower bound (minimum charging level) |
pStorageAfUp(stg, region, year, slice) | \(pStorageAfUp_{st1,r,y,s}\) | Storage availability factor upper bound (maximum charging level) |
pStorageCinpUp(stg, comm, region, year, slice) | \(pStorageCinpUp_{st1,c,r,y,s}\) | Storage input upper bound |
pStorageCinpLo(stg, comm, region, year, slice) | \(pStorageCinpLo_{st1,c,r,y,s}\) | Storage input lower bound |
pStorageCoutUp(stg, comm, region, year, slice) | \(pStorageCoutUp_{st1,c,r,y,s}\) | Storage output upper bound |
pStorageCoutLo(stg, comm, region, year, slice) | \(pStorageCoutLo_{st1,c,r,y,s}\) | Storage output lower bound |
pStorageNCap2Stg(stg, comm, region, year, slice) | \(pStorageNCap2Stg_{st1,c,r,y,s}\) | Initial storage charge level for new investment |
pStorageCharge(stg, comm, region, year, slice) | \(pStorageCharge_{st1,c,r,y,s}\) | Initial storage charge level for stock |
pStorageStg2AInp(stg, comm, region, year, slice) | \(pStorageStg2AInp_{st1,c,r,y,s}\) | Storage level to auxilary input |
pStorageStg2AOut(stg, comm, region, year, slice) | \(pStorageStg2AOut_{st1,c,r,y,s}\) | Storage level output |
pStorageCinp2AInp(stg, comm, region, year, slice) | \(pStorageCinp2AInp_{st1,c,r,y,s}\) | Storage input to auxilary input |
pStorageCinp2AOut(stg, comm, region, year, slice) | \(pStorageCinp2AOut_{st1,c,r,y,s}\) | Storage input to auxilary output |
pStorageCout2AInp(stg, comm, region, year, slice) | \(pStorageCout2AInp_{st1,c,r,y,s}\) | Storage output to auxilary input |
pStorageCout2AOut(stg, comm, region, year, slice) | \(pStorageCout2AOut_{st1,c,r,y,s}\) | Storage output to auxilary output |
pStorageCap2AInp(stg, comm, region, year, slice) | \(pStorageCap2AInp_{st1,c,r,y,s}\) | Storage capacity to auxilary input |
pStorageCap2AOut(stg, comm, region, year, slice) | \(pStorageCap2AOut_{st1,c,r,y,s}\) | Storage capacity to auxilary output |
pStorageNCap2AInp(stg, comm, region, year, slice) | \(pStorageNCap2AInp_{st1,c,r,y,s}\) | Storage new capacity to auxilary input |
pStorageNCap2AOut(stg, comm, region, year, slice) | \(pStorageNCap2AOut_{st1,c,r,y,s}\) | Storage new capacity to auxilary output |
pTradeIrEff(trade, region, region, year, slice) | \(pTradeIrEff_{t1,r,r,y,s}\) | Inter-regional trade efficiency |
pTradeIrUp(trade, region, region, year, slice) | \(pTradeIrUp_{t1,r,r,y,s}\) | Upper bound on trade flow |
pTradeIrLo(trade, region, region, year, slice) | \(pTradeIrLo_{t1,r,r,y,s}\) | Lower bound on trade flow |
pTradeIrCost(trade, region, region, year, slice) | \(pTradeIrCost_{t1,r,r,y,s}\) | Costs of trade flow |
pTradeIrMarkup(trade, region, region, year, slice) | \(pTradeIrMarkup_{t1,r,r,y,s}\) | Markup of trade flow |
pTradeIrCsrc2Ainp(trade, comm, region, region, year, slice) | \(pTradeIrCsrc2Ainp_{t1,c,r,r,y,s}\) | Auxiliary input commodity in source region |
pTradeIrCsrc2Aout(trade, comm, region, region, year, slice) | \(pTradeIrCsrc2Aout_{t1,c,r,r,y,s}\) | Auxiliary output commodity in source region |
pTradeIrCdst2Ainp(trade, comm, region, region, year, slice) | \(pTradeIrCdst2Ainp_{t1,c,r,r,y,s}\) | Auxiliary input commodity in destination region |
pTradeIrCdst2Aout(trade, comm, region, region, year, slice) | \(pTradeIrCdst2Aout_{t1,c,r,r,y,s}\) | Auxiliary output commodity in destination region |
pExportRowRes(expp) | \(pExportRowRes_{e}\) | Upper bound on cumulative export to ROW |
pExportRowUp(expp, region, year, slice) | \(pExportRowUp_{e,r,y,s}\) | Upper bound on export to ROW |
pExportRowLo(expp, region, year, slice) | \(pExportRowLo_{e,r,y,s}\) | Lower bound on export to ROW |
pExportRowPrice(expp, region, year, slice) | \(pExportRowPrice_{e,r,y,s}\) | Export prices to ROW |
pImportRowRes(imp) | \(pImportRowRes_{i}\) | Upper bound on cumulative import to ROW |
pImportRowUp(imp, region, year, slice) | \(pImportRowUp_{i,r,y,s}\) | Upper bount on import from ROW |
pImportRowLo(imp, region, year, slice) | \(pImportRowLo_{i,r,y,s}\) | Lower bound on import from ROW |
pImportRowPrice(imp, region, year, slice) | \(pImportRowPrice_{i,r,y,s}\) | Import prices from ROW |
pTradeStock(trade, year) | \(pTradeStock_{t1,y}\) | Existing capacity |
pTradeCapUp(trade, year) | \(pTradeCapUp_{t1,y}\) | Upper bound on trade capacity |
pTradeCapLo(trade, year) | \(pTradeCapLo_{t1,y}\) | Lower bound on trade capacity |
pTradeNewCapUp(trade, year) | \(pTradeNewCapUp_{t1,y}\) | Upper bound on new trade capacity |
pTradeNewCapLo(trade, year) | \(pTradeNewCapLo_{t1,y}\) | Lower bound on new trade capacity |
pTradeRetUp(trade, year) | \(pTradeRetUp_{t1,y}\) | Upper bound on early retirement |
pTradeRetLo(trade, year) | \(pTradeRetLo_{t1,y}\) | Lower bound on early retirement |
pTradeOlife(trade) | \(pTradeOlife_{t1}\) | Operational life |
pTradeInvcost(trade, region, year) | \(pTradeInvcost_{t1,r,y}\) | Overnight investment costs |
pTradeEac(trade, region, year) | \(pTradeEac_{t1,r,y}\) | Equivalent annual costs |
pTradeRetCost(trade, region, year) | \(pTradeRetCost_{t1,r,y}\) | Early retirement costs |
pTradeFixom(trade, year) | \(pTradeFixom_{t1,y}\) | Fixed O\ |
pTradeVarom(trade, region, region, year, slice) | \(pTradeVarom_{t1,r,r,y,s}\) | Variable O\ |
pTradeCap2Act(trade) | \(pTradeCap2Act_{t1}\) | Capacity to activity factor |
pWeather(weather, region, year, slice) | \(pWeather_{wth1,r,y,s}\) | weather factors |
pSupWeatherUp(weather, sup) | \(pSupWeatherUp_{wth1,s1}\) | weather factor for supply upper value (ava.up) |
pSupWeatherLo(weather, sup) | \(pSupWeatherLo_{wth1,s1}\) | weather factor for supply lower value (ava.lo) |
pTechWeatherAfLo(weather, tech) | \(pTechWeatherAfLo_{wth1,t}\) | weather factor for technology availability lower value (af.lo) |
pTechWeatherAfUp(weather, tech) | \(pTechWeatherAfUp_{wth1,t}\) | weather factor for technology availability upper value (af.up) |
pTechWeatherAfsLo(weather, tech) | \(pTechWeatherAfsLo_{wth1,t}\) | weather factor for technology availability lower value (af.lo) |
pTechWeatherAfsUp(weather, tech) | \(pTechWeatherAfsUp_{wth1,t}\) | weather factor for technology availability upper value (afs.lo) |
pTechWeatherAfcLo(weather, tech, comm) | \(pTechWeatherAfcLo_{wth1,t,c}\) | weather factor for technology availability lower value (afs.lo) |
pTechWeatherAfcUp(weather, tech, comm) | \(pTechWeatherAfcUp_{wth1,t,c}\) | weather factor for commodity availability upper value (afc.lo) |
pStorageWeatherAfLo(weather, stg) | \(pStorageWeatherAfLo_{wth1,st1}\) | weather factor for storage availability lower value (af.lo) |
pStorageWeatherAfUp(weather, stg) | \(pStorageWeatherAfUp_{wth1,st1}\) | weather factor for storage availability upper value (af.up) |
pStorageWeatherCinpUp(weather, stg) | \(pStorageWeatherCinpUp_{wth1,st1}\) | weather factor for storage commodity input upper value (cinp.up) |
pStorageWeatherCinpLo(weather, stg) | \(pStorageWeatherCinpLo_{wth1,st1}\) | weather factor for storage commodity input lower value (cinp.lo) |
pStorageWeatherCoutUp(weather, stg) | \(pStorageWeatherCoutUp_{wth1,st1}\) | weather factor for storage commodity output upper value (cout.up) |
pStorageWeatherCoutLo(weather, stg) | \(pStorageWeatherCoutLo_{wth1,st1}\) | weather factor for storage commodity output lower value (cout.lo) |
pLECLoACT(region) | \(pLECLoACT_{r}\) | levelized costs interim parameter |
2.3 Variables
Name | Alias | Description |
---|---|---|
vTechInv(tech, region, year) | \({\bf vTechInv}_{t,r,y}\) | Overnight investment costs |
vTechEac(tech, region, year) | \({\bf vTechEac}_{t,r,y}\) | Annualized investment costs |
vTechOMCost(tech, region, year) | \({\bf vTechOMCost}_{t,r,y}\) | Sum of all operational costs is equal vTechFixom + vTechVarom (AVarom + CVarom + ActVarom) |
vSupCost(sup, region, year) | \({\bf vSupCost}_{s1,r,y}\) | Supply costs (weighted) |
vEmsFuelTot(comm, region, year, slice) | \({\bf vEmsFuelTot}_{c,r,y,s}\) | Total emissions from fuels combustion (technologies) (weighted) |
vBalance(comm, region, year, slice) | \({\bf vBalance}_{c,r,y,s}\) | Net commodity balance (all sources) (weighted) |
vTotalCost(region, year) | \({\bf vTotalCost}_{r,y}\) | Regional annual total costs (weighted) |
vObjective | \({\bf vObjective}\) | Objective costs |
vTaxCost(comm, region, year) | \({\bf vTaxCost}_{c,r,y}\) | Total tax levies (tax costs) |
vSubsCost(comm, region, year) | \({\bf vSubsCost}_{c,r,y}\) | Total subsidies (substracted from costs) |
vAggOutTot(comm, region, year, slice) | \({\bf vAggOutTot}_{c,r,y,s}\) | Aggregated commodity output (weighted) |
vStorageOMCost(stg, region, year) | \({\bf vStorageOMCost}_{st1,r,y}\) | Storage O\ |
vTradeCost(region, year) | \({\bf vTradeCost}_{r,y}\) | Total trade costs (weighted) |
vTradeRowCost(region, year) | \({\bf vTradeRowCost}_{r,y}\) | Trade with ROW costs (weighted) |
vTradeIrCost(region, year) | \({\bf vTradeIrCost}_{r,y}\) | Interregional trade costs (weighted) |
Name | Alias | Description |
---|---|---|
vTechNewCap(tech, region, year) | \({\bf vTechNewCap}_{t,r,y}\) | New capacity |
vTechRetiredStockCum(tech, region, year) | \({\bf vTechRetiredStockCum}_{t,r,y}\) | Early retired stock |
vTechRetiredStock(tech, region, year) | \({\bf vTechRetiredStock}_{t,r,y}\) | Early retired stock |
vTechRetiredNewCap(tech, region, year, year) | \({\bf vTechRetiredNewCap}_{t,r,y,y}\) | Early retired new capacity |
vTechCap(tech, region, year) | \({\bf vTechCap}_{t,r,y}\) | Total capacity of the technology |
vTechAct(tech, region, year, slice) | \({\bf vTechAct}_{t,r,y,s}\) | Activity level of technology |
vTechInp(tech, comm, region, year, slice) | \({\bf vTechInp}_{t,c,r,y,s}\) | Input level |
vTechOut(tech, comm, region, year, slice) | \({\bf vTechOut}_{t,c,r,y,s}\) | Commodity output from technology - tech timeframe |
vTechAInp(tech, comm, region, year, slice) | \({\bf vTechAInp}_{t,c,r,y,s}\) | Auxiliary commodity input |
vTechAOut(tech, comm, region, year, slice) | \({\bf vTechAOut}_{t,c,r,y,s}\) | Auxiliary commodity output |
vSupOut(sup, comm, region, year, slice) | \({\bf vSupOut}_{s1,c,r,y,s}\) | Output of supply |
vSupReserve(sup, comm, region) | \({\bf vSupReserve}_{s1,c,r}\) | Cumulative supply (weighted) |
vDemInp(comm, region, year, slice) | \({\bf vDemInp}_{c,r,y,s}\) | Input to demand |
vOutTot(comm, region, year, slice) | \({\bf vOutTot}_{c,r,y,s}\) | Total commodity output (all processes) (weighted) |
vInpTot(comm, region, year, slice) | \({\bf vInpTot}_{c,r,y,s}\) | Total commodity input (all processes) (weighted) |
vInp2Lo(comm, region, year, slice, slice) | \({\bf vInp2Lo}_{c,r,y,s,s}\) | Desagregation of slices for input parent to (grand)child |
vOut2Lo(comm, region, year, slice, slice) | \({\bf vOut2Lo}_{c,r,y,s,s}\) | Desagregation of slices for output parent to (grand)child |
vSupOutTot(comm, region, year, slice) | \({\bf vSupOutTot}_{c,r,y,s}\) | Total commodity supply (weighted) |
vTechInpTot(comm, region, year, slice) | \({\bf vTechInpTot}_{c,r,y,s}\) | Total commodity (main \ |
vTechOutTot(comm, region, year, slice) | \({\bf vTechOutTot}_{c,r,y,s}\) | Total commodity (main \ |
vStorageInpTot(comm, region, year, slice) | \({\bf vStorageInpTot}_{c,r,y,s}\) | Total commodity (main \ |
vStorageOutTot(comm, region, year, slice) | \({\bf vStorageOutTot}_{c,r,y,s}\) | Total commodity (main \ |
vStorageAInp(stg, comm, region, year, slice) | \({\bf vStorageAInp}_{st1,c,r,y,s}\) | Aux-commodity input to storage |
vStorageAOut(stg, comm, region, year, slice) | \({\bf vStorageAOut}_{st1,c,r,y,s}\) | Aux-commodity input from storage |
vDummyImport(comm, region, year, slice) | \({\bf vDummyImport}_{c,r,y,s}\) | Dummy import (for debugging) |
vDummyExport(comm, region, year, slice) | \({\bf vDummyExport}_{c,r,y,s}\) | Dummy export (for debugging) |
vStorageInp(stg, comm, region, year, slice) | \({\bf vStorageInp}_{st1,c,r,y,s}\) | Storage input |
vStorageOut(stg, comm, region, year, slice) | \({\bf vStorageOut}_{st1,c,r,y,s}\) | Storage output |
vStorageStore(stg, comm, region, year, slice) | \({\bf vStorageStore}_{st1,c,r,y,s}\) | Storage level |
vStorageInv(stg, region, year) | \({\bf vStorageInv}_{st1,r,y}\) | Storage investments |
vStorageEac(stg, region, year) | \({\bf vStorageEac}_{st1,r,y}\) | Storage EAC investments |
vStorageCap(stg, region, year) | \({\bf vStorageCap}_{st1,r,y}\) | Storage capacity |
vStorageNewCap(stg, region, year) | \({\bf vStorageNewCap}_{st1,r,y}\) | Storage new capacity |
vImportTot(comm, region, year, slice) | \({\bf vImportTot}_{c,r,y,s}\) | Total regional import (Ir + ROW) (weighted) |
vExportTot(comm, region, year, slice) | \({\bf vExportTot}_{c,r,y,s}\) | Total regional export (Ir + ROW) (weighted) |
vTradeIr(trade, comm, region, region, year, slice) | \({\bf vTradeIr}_{t1,c,r,r,y,s}\) | Total physical trade flows between regions |
vTradeIrAInp(trade, comm, region, year, slice) | \({\bf vTradeIrAInp}_{t1,c,r,y,s}\) | Trade auxilari input |
vTradeIrAInpTot(comm, region, year, slice) | \({\bf vTradeIrAInpTot}_{c,r,y,s}\) | Trade total auxilari input (weighted) |
vTradeIrAOut(trade, comm, region, year, slice) | \({\bf vTradeIrAOut}_{t1,c,r,y,s}\) | Trade auxilari output |
vTradeIrAOutTot(comm, region, year, slice) | \({\bf vTradeIrAOutTot}_{c,r,y,s}\) | Trade auxilari output total (weighted) |
vExportRowCum(expp, comm) | \({\bf vExportRowCum}_{e,c}\) | Cumulative export to ROW |
vExportRow(expp, comm, region, year, slice) | \({\bf vExportRow}_{e,c,r,y,s}\) | Export to ROW |
vImportRowCum(imp, comm) | \({\bf vImportRowCum}_{i,c}\) | Cumulative import from ROW |
vImportRow(imp, comm, region, year, slice) | \({\bf vImportRow}_{i,c,r,y,s}\) | Import from ROW |
vTradeCap(trade, year) | \({\bf vTradeCap}_{t1,y}\) | Trade capacity |
vTradeInv(trade, region, year) | \({\bf vTradeInv}_{t1,r,y}\) | Investment in trade capacity (overnight) |
vTradeEac(trade, region, year) | \({\bf vTradeEac}_{t1,r,y}\) | Investment in trade capacity (EAC) |
vTradeNewCap(trade, year) | \({\bf vTradeNewCap}_{t1,y}\) | New trade capacity |
vTotalUserCosts(region, year) | \({\bf vTotalUserCosts}_{r,y}\) | Total additional costs (set by user) |
2.4 Equations
2.4.0.1 eqTechSng2Sng
: Technology input to output
\[ {\bf vTechInp}_{t,c,r,y,s}*pTechCinp2use_{t,c,r,y,s} = \frac{{\bf vTechOut}_{t,cp,r,y,s}}{pTechUse2cact_{t,cp,r,y,s}*pTechCact2cout_{t,cp,r,y,s}}\] |
2.4.0.2 eqTechGrp2Sng
: Technology group input to output
\[ pTechGinp2use_{t,g,r,y,s}*\sum_{c}{\left({\bf vTechInp}_{t,c,r,y,s}*pTechCinp2ginp_{t,c,r,y,s}\right)} = \frac{{\bf vTechOut}_{t,cp,r,y,s}}{pTechUse2cact_{t,cp,r,y,s}*pTechCact2cout_{t,cp,r,y,s}}\] |
2.4.0.3 eqTechSng2Grp
: Technology input to group output
\[ {\bf vTechInp}_{t,c,r,y,s}*pTechCinp2use_{t,c,r,y,s} = \sum_{cp}{\left(\frac{{\bf vTechOut}_{t,cp,r,y,s}}{pTechUse2cact_{t,cp,r,y,s}*pTechCact2cout_{t,cp,r,y,s}}\right)}\] |
2.4.0.4 eqTechGrp2Grp
: Technology group input to group output
\[ pTechGinp2use_{t,g,r,y,s}*\sum_{c}{\left({\bf vTechInp}_{t,c,r,y,s}*pTechCinp2ginp_{t,c,r,y,s}\right)} = \sum_{cp}{\left(\frac{{\bf vTechOut}_{t,cp,r,y,s}}{pTechUse2cact_{t,cp,r,y,s}*pTechCact2cout_{t,cp,r,y,s}}\right)}\] |
2.4.0.9 eqTechAInp
: Technology auxiliary commodity input
\[ {\bf vTechAInp}_{t,c,r,y,s} = \left({\bf vTechAct}_{t,r,y,s}*pTechAct2AInp_{t,c,r,y,s}\right)+\left(\frac{{\bf vTechCap}_{t,r,y}*pTechCap2AInp_{t,c,r,y,s}}{pTechCap2act_{t}}\right)+\left({\bf vTechNewCap}_{t,r,y}*pTechNCap2AInp_{t,c,r,y,s}\right)+\sum_{cp}{\left(pTechCinp2AInp_{t,c,cp,r,y,s}*{\bf vTechInp}_{t,cp,r,y,s}\right)}+\sum_{cp}{\left(pTechCout2AInp_{t,c,cp,r,y,s}*{\bf vTechOut}_{t,cp,r,y,s}\right)}\] |
2.4.0.10 eqTechAOut
: Technology auxiliary commodity output
\[ {\bf vTechAOut}_{t,c,r,y,s} = \left({\bf vTechAct}_{t,r,y,s}*pTechAct2AOut_{t,c,r,y,s}\right)+\left(\frac{{\bf vTechCap}_{t,r,y}*pTechCap2AOut_{t,c,r,y,s}}{pTechCap2act_{t}}\right)+\left({\bf vTechNewCap}_{t,r,y}*pTechNCap2AOut_{t,c,r,y,s}\right)+\sum_{cp}{\left(pTechCinp2AOut_{t,c,cp,r,y,s}*{\bf vTechInp}_{t,cp,r,y,s}\right)}+\sum_{cp}{\left(pTechCout2AOut_{t,c,cp,r,y,s}*{\bf vTechOut}_{t,cp,r,y,s}\right)}\] |
2.4.0.11 eqTechAfLo
: Technology availability factor lower bound
\[ pTechAfLo_{t,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfLo_{wth1,t}*pWeather_{wth1,r,y,s}\right)} \le {\bf vTechAct}_{t,r,y,s}\] |
2.4.0.12 eqTechAfUp
: Technology availability factor upper bound
\[ {\bf vTechAct}_{t,r,y,s} \le pTechAfUp_{t,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfUp_{wth1,t}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.13 eqTechAfsLo
: Technology availability factor for sum of slices lower bound
\[ pTechAfsLo_{t,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfsLo_{wth1,t}*pWeather_{wth1,r,y,s}\right)} \le \sum_{sp}{\left({\bf vTechAct}_{t,r,y,sp}\right)}\] |
2.4.0.14 eqTechAfsUp
: Technology availability factor for sum of slices upper bound
\[ \sum_{sp}{\left({\bf vTechAct}_{t,r,y,sp}\right)} \le pTechAfsUp_{t,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfsUp_{wth1,t}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.15 eqTechRampUp
: Technology ramp up
\[ \frac{{\bf vTechAct}_{t,r,y,s}}{pSliceShare_{s}}-\frac{{\bf vTechAct}_{t,r,y,sp}}{pSliceShare_{sp}} \le \frac{pSliceShare_{s}*pTechCap2act_{t}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}}{pTechRampUp_{t,r,y,s}}\] |
2.4.0.16 eqTechRampDown
: Technology ramp down
\[ \frac{{\bf vTechAct}_{t,r,y,sp}}{pSliceShare_{sp}}-\frac{{\bf vTechAct}_{t,r,y,s}}{pSliceShare_{s}} \le \frac{pSliceShare_{s}*pTechCap2act_{t}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}}{pTechRampDown_{t,r,y,s}}\] |
2.4.0.17 eqTechActSng
: Technology activity to commodity output
\[ {\bf vTechAct}_{t,r,y,s} = \frac{{\bf vTechOut}_{t,c,r,y,s}}{pTechCact2cout_{t,c,r,y,s}}\] |
2.4.0.18 eqTechActGrp
: Technology activity to group output
\[ {\bf vTechAct}_{t,r,y,s} = \sum_{c}{\left(\frac{{\bf vTechOut}_{t,c,r,y,s}}{pTechCact2cout_{t,c,r,y,s}}\right)}\] |
2.4.0.19 eqTechAfcOutLo
: Technology commodity availability factor lower bound
\[ pTechCact2cout_{t,c,r,y,s}*pTechAfcLo_{t,c,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfcLo_{wth1,t,c}*pWeather_{wth1,r,y,s}\right)} \le {\bf vTechOut}_{t,c,r,y,s}\] |
2.4.0.20 eqTechAfcOutUp
: Technology commodity availability factor upper bound
\[ {\bf vTechOut}_{t,c,r,y,s} \le pTechCact2cout_{t,c,r,y,s}*pTechAfcUp_{t,c,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*\prod_{wth1}{\left(pTechWeatherAfcUp_{wth1,t,c}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.21 eqTechAfcInpLo
: Technology commodity availability factor lower bound
\[ pTechAfcLo_{t,c,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfcLo_{wth1,t,c}*pWeather_{wth1,r,y,s}\right)} \le {\bf vTechInp}_{t,c,r,y,s}\] |
2.4.0.22 eqTechAfcInpUp
: Technology commodity availability factor upper bound
\[ {\bf vTechInp}_{t,c,r,y,s} \le pTechAfcUp_{t,c,r,y,s}*pTechCap2act_{t}*{\bf vTechCap}_{t,r,y}*pSliceShare_{s}*\prod_{wth1}{\left(pTechWeatherAfcUp_{wth1,t,c}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.23 eqTechCap
: Technology capacity
\[ {\bf vTechCap}_{t,r,y} = pTechStock_{t,r,y}-{\bf vTechRetiredStockCum}_{t,r,y}+\sum_{yp}{\left(pPeriodLen_{yp}*\left({\bf vTechNewCap}_{t,r,yp}-\sum_{ye}{\left({\bf vTechRetiredNewCap}_{t,r,yp,ye}\right)}\right)\right)}\] |
2.4.0.24 eqTechCapLo
: Technology capacity lower bound
\[ {\bf vTechCap}_{t,r,y} \ge pTechCapLo_{t,r,y}\] |
2.4.0.25 eqTechCapUp
: Technology capacity upper bound
\[ {\bf vTechCap}_{t,r,y} \le pTechCapUp_{t,r,y}\] |
2.4.0.26 eqTechNewCapLo
: __
\[ {\bf vTechNewCap}_{t,r,y} \ge pTechNewCapLo_{t,r,y}\] |
2.4.0.27 eqTechNewCapUp
: __
\[ {\bf vTechNewCap}_{t,r,y} \le pTechNewCapUp_{t,r,y}\] |
2.4.0.28 eqTechRetiredNewCap
: Retirement of new capacity
\[ \sum_{yp}{\left({\bf vTechRetiredNewCap}_{t,r,y,yp}\right)} \le {\bf vTechNewCap}_{t,r,y}\] |
2.4.0.29 eqTechRetiredStockCum
: Retirement of stock cumulative
\[ {\bf vTechRetiredStockCum}_{t,r,y} \le pTechStock_{t,r,y}\] |
2.4.0.30 eqTechRetiredStock
: Retirement of stock
\[ {\bf vTechRetiredStock}_{t,r,y} = {\bf vTechRetiredStockCum}_{t,r,y}-\sum_{yp}{\left({\bf vTechRetiredStockCum}_{t,r,yp}\right)}\] |
2.4.0.31 eqTechEac
: Technology Equivalent Annual Cost (EAC)
\[ {\bf vTechEac}_{t,r,y} = \sum_{yp}{\left(pTechEac_{t,r,yp}*pPeriodLen_{yp}*\left({\bf vTechNewCap}_{t,r,yp}-\sum_{ye}{\left({\bf vTechRetiredNewCap}_{t,r,yp,ye}\right)}\right)\right)}\] |
2.4.0.32 eqTechInv
: Technology overnight investment costs
\[ {\bf vTechInv}_{t,r,y} = pTechInvcost_{t,r,y}*{\bf vTechNewCap}_{t,r,y}\] |
2.4.0.33 eqTechOMCost
: Technology O&M costs (weighted)
\[ {\bf vTechOMCost}_{t,r,y} = pTechFixom_{t,r,y}*{\bf vTechCap}_{t,r,y}+\sum_{s}{\left(pTechVarom_{t,r,y,s}*pSliceWeight_{s}*{\bf vTechAct}_{t,r,y,s}\right)}+\sum_{s}{\left(\sum_{c}{\left(pTechCvarom_{t,c,r,y,s}*pSliceWeight_{s}*{\bf vTechInp}_{t,c,r,y,s}\right)}\right)}+\sum_{s}{\left(\sum_{c}{\left(pTechCvarom_{t,c,r,y,s}*pSliceWeight_{s}*{\bf vTechOut}_{t,c,r,y,s}\right)}\right)}+\sum_{s}{\left(\sum_{c}{\left(pTechAvarom_{t,c,r,y,s}*pSliceWeight_{s}*{\bf vTechAOut}_{t,c,r,y,s}\right)}\right)}+\sum_{s}{\left(\sum_{c}{\left(pTechAvarom_{t,c,r,y,s}*pSliceWeight_{s}*{\bf vTechAInp}_{t,c,r,y,s}\right)}\right)}\] |
2.4.0.34 eqSupAvaUp
: Supply availability upper bound
\[ {\bf vSupOut}_{s1,c,r,y,s} \le pSupAvaUp_{s1,c,r,y,s}*\prod_{wth1}{\left(pSupWeatherUp_{wth1,s1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.35 eqSupAvaLo
: Supply availability lower bound
\[ {\bf vSupOut}_{s1,c,r,y,s} \ge pSupAvaLo_{s1,c,r,y,s}*\prod_{wth1}{\left(pSupWeatherLo_{wth1,s1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.36 eqSupReserve
: Cumulative supply (use of reserve)
\[ {\bf vSupReserve}_{s1,c,r} = \sum_{y,s}{\left(pPeriodLen_{y}*pSliceWeight_{s}*{\bf vSupOut}_{s1,c,r,y,s}\right)}\] |
2.4.0.37 eqSupReserveUp
: Cumulative supply upper constraint
\[ {\bf vSupReserve}_{s1,c,r} \le pSupReserveUp_{s1,c,r}\] |
2.4.0.38 eqSupReserveLo
: Cumulative supply lower constraint
\[ {\bf vSupReserve}_{s1,c,r} \ge pSupReserveLo_{s1,c,r}\] |
2.4.0.39 eqSupCost
: Supply costs
\[ {\bf vSupCost}_{s1,r,y} = \sum_{c,s}{\left(pSupCost_{s1,c,r,y,s}*pSliceWeight_{s}*{\bf vSupOut}_{s1,c,r,y,s}\right)}\] |
2.4.0.40 eqDemInp
: Demand equation
\[ {\bf vDemInp}_{c,r,y,s} = \sum_{d}{\left(pDemand_{d,c,r,y,s}\right)}\] |
2.4.0.41 eqAggOutTot
: Aggregating-commodity output (weighted)
\[ {\bf vAggOutTot}_{c,r,y,s} = \sum_{cp}{\left(pAggregateFactor_{c,cp}*\sum_{sp}{\left({\bf vOutTot}_{cp,r,y,sp}\right)}\right)}\] |
2.4.0.42 eqEmsFuelTot
: Total emissions from commodity consumption (weighted)
\[ {\bf vEmsFuelTot}_{c,r,y,s} = \sum_{cp}{\left(pEmissionFactor_{c,cp}*\sum_{t}{\left(pTechEmisComm_{t,cp}*\sum_{sp}{\left({\bf vTechInp}_{t,cp,r,y,sp}\right)}\right)}\right)}*pSliceWeight_{s}\] |
2.4.0.43 eqStorageAInp
: Storage level
\[ {\bf vStorageAInp}_{st1,c,r,y,s} = \sum_{cp}{\left(pStorageStg2AInp_{st1,c,r,y,s}*{\bf vStorageStore}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCinp2AInp_{st1,c,r,y,s}*{\bf vStorageInp}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCout2AInp_{st1,c,r,y,s}*{\bf vStorageOut}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCap2AInp_{st1,c,r,y,s}*{\bf vStorageCap}_{st1,r,y}\right)}+\sum_{cp}{\left(pStorageNCap2AInp_{st1,c,r,y,s}*{\bf vStorageNewCap}_{st1,r,y}\right)}\] |
2.4.0.44 eqStorageAOut
: Storage availability factor lower
\[ {\bf vStorageAOut}_{st1,c,r,y,s} = \sum_{cp}{\left(pStorageStg2AOut_{st1,c,r,y,s}*{\bf vStorageStore}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCinp2AOut_{st1,c,r,y,s}*{\bf vStorageInp}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCout2AOut_{st1,c,r,y,s}*{\bf vStorageOut}_{st1,cp,r,y,s}\right)}+\sum_{cp}{\left(pStorageCap2AOut_{st1,c,r,y,s}*{\bf vStorageCap}_{st1,r,y}\right)}+\sum_{cp}{\left(pStorageNCap2AOut_{st1,c,r,y,s}*{\bf vStorageNewCap}_{st1,r,y}\right)}\] |
2.4.0.45 eqStorageStore
: Storage availability factor upper
\[ {\bf vStorageStore}_{st1,c,r,y,s} = pStorageCharge_{st1,c,r,y,s}+\left(pStorageNCap2Stg_{st1,c,r,y,s}*{\bf vStorageNewCap}_{st1,r,y}\right)+pStorageInpEff_{st1,c,r,y,sp}*{\bf vStorageInp}_{st1,c,r,y,sp}+\left({pStorageStgEff_{st1,c,r,y,s}}^{pSliceShare_{s}}\right)*{\bf vStorageStore}_{st1,c,r,y,sp}-\frac{{\bf vStorageOut}_{st1,c,r,y,sp}}{pStorageOutEff_{st1,c,r,y,sp}}\] |
2.4.0.46 eqStorageAfLo
: Storage output vs level
\[ {\bf vStorageStore}_{st1,c,r,y,s} \ge pStorageAfLo_{st1,r,y,s}*pStorageCap2stg_{st1}*{\bf vStorageCap}_{st1,r,y}*\prod_{wth1}{\left(pStorageWeatherAfLo_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.47 eqStorageAfUp
: Storage aux-commodity input
\[ {\bf vStorageStore}_{st1,c,r,y,s} \le pStorageAfUp_{st1,r,y,s}*pStorageCap2stg_{st1}*{\bf vStorageCap}_{st1,r,y}*\prod_{wth1}{\left(pStorageWeatherAfUp_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.48 eqStorageClear
: Storage aux-commodity output
\[ \frac{{\bf vStorageOut}_{st1,c,r,y,s}}{pStorageOutEff_{st1,c,r,y,s}} \le {\bf vStorageStore}_{st1,c,r,y,s}\] |
2.4.0.49 eqStorageInpUp
: Storage input upper constraint
\[ {\bf vStorageInp}_{st1,c,r,y,s} \le {\bf vStorageCap}_{st1,r,y}*pStorageCinpUp_{st1,c,r,y,s}*\prod_{wth1}{\left(pStorageWeatherCinpUp_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.50 eqStorageInpLo
: Storage input lower constraint
\[ {\bf vStorageInp}_{st1,c,r,y,s} \ge {\bf vStorageCap}_{st1,r,y}*pStorageCinpLo_{st1,c,r,y,s}*\prod_{wth1}{\left(pStorageWeatherCinpLo_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.51 eqStorageOutUp
: Storage output upper constraint
\[ {\bf vStorageOut}_{st1,c,r,y,s} \le {\bf vStorageCap}_{st1,r,y}*pStorageCoutUp_{st1,c,r,y,s}*\prod_{wth1}{\left(pStorageWeatherCoutUp_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.52 eqStorageOutLo
: Storage output lower constraint
\[ {\bf vStorageOut}_{st1,c,r,y,s} \ge {\bf vStorageCap}_{st1,r,y}*pStorageCoutLo_{st1,c,r,y,s}*\prod_{wth1}{\left(pStorageWeatherCoutLo_{wth1,st1}*pWeather_{wth1,r,y,s}\right)}\] |
2.4.0.53 eqStorageCap
: Storage capacity
\[ {\bf vStorageCap}_{st1,r,y} = pStorageStock_{st1,r,y}+\sum_{yp}{\left(pPeriodLen_{yp}*{\bf vStorageNewCap}_{st1,r,yp}\right)}\] |
2.4.0.54 eqStorageCapLo
: Storage capacity lower bound
\[ {\bf vStorageCap}_{st1,r,y} \ge pStorageCapLo_{st1,r,y}\] |
2.4.0.55 eqStorageCapUp
: Storage capacity upper bound
\[ {\bf vStorageCap}_{st1,r,y} \le pStorageCapUp_{st1,r,y}\] |
2.4.0.56 eqStorageNewCapLo
: Storage new capacity lower bound
\[ {\bf vStorageNewCap}_{st1,r,y} \ge pStorageNewCapLo_{st1,r,y}\] |
2.4.0.57 eqStorageNewCapUp
: Storage new capacity upper bound
\[ {\bf vStorageNewCap}_{st1,r,y} \le pStorageNewCapUp_{st1,r,y}\] |
2.4.0.58 eqStorageInv
: Storage overnight investment costs
\[ {\bf vStorageInv}_{st1,r,y} = pStorageInvcost_{st1,r,y}*{\bf vStorageNewCap}_{st1,r,y}\] |
2.4.0.59 eqStorageEac
: Storage equivalent annual cost
\[ {\bf vStorageEac}_{st1,r,y} = \sum_{yp}{\left(pStorageEac_{st1,r,yp}*pPeriodLen_{yp}*{\bf vStorageNewCap}_{st1,r,yp}\right)}\] |
2.4.0.60 eqStorageCost
: Storage total costs
\[ {\bf vStorageOMCost}_{st1,r,y} = pStorageFixom_{st1,r,y}*{\bf vStorageCap}_{st1,r,y}+\sum_{c}{\left(\sum_{s}{\left(pStorageCostInp_{st1,r,y,s}*pSliceWeight_{s}*{\bf vStorageInp}_{st1,c,r,y,s}\right)}+\sum_{s}{\left(pStorageCostOut_{st1,r,y,s}*pSliceWeight_{s}*{\bf vStorageOut}_{st1,c,r,y,s}\right)}+\sum_{s}{\left(pStorageCostStore_{st1,r,y,s}*pSliceWeight_{s}*{\bf vStorageStore}_{st1,c,r,y,s}\right)}\right)}\] |
2.4.0.61 eqImportTot
: Import equation (Ir & ROW)
\[ {\bf vImportTot}_{c,dst,y,s} = \sum_{t1}{\left(\sum_{src}{\left(pTradeIrEff_{t1,src,dst,y,s}*{\bf vTradeIr}_{t1,c,src,dst,y,s}\right)}\right)}*pSliceWeight_{s}+\sum_{i}{\left({\bf vImportRow}_{i,c,dst,y,s}\right)}*pSliceWeight_{s}\] |
2.4.0.62 eqExportTot
: Export equation (Ir & ROW)
\[ {\bf vExportTot}_{c,src,y,s} = \sum_{t1}{\left(\sum_{dst}{\left({\bf vTradeIr}_{t1,c,src,dst,y,s}\right)}\right)}*pSliceWeight_{s}+\sum_{e}{\left({\bf vExportRow}_{e,c,src,y,s}\right)}*pSliceWeight_{s}\] |
2.4.0.63 eqTradeFlowUp
: Trade upper bound
\[ {\bf vTradeIr}_{t1,c,src,dst,y,s} \le pTradeIrUp_{t1,src,dst,y,s}\] |
2.4.0.64 eqTradeFlowLo
: Trade lower bound
\[ {\bf vTradeIr}_{t1,c,src,dst,y,s} \ge pTradeIrLo_{t1,src,dst,y,s}\] |
2.4.0.65 eqCostTrade
: Total trade costs
\[ {\bf vTradeCost}_{r,y} = {\bf vTradeRowCost}_{r,y}+{\bf vTradeIrCost}_{r,y}\] |
2.4.0.66 eqCostRowTrade
: Costs of trade with the Rest of the World (ROW)
\[ {\bf vTradeRowCost}_{r,y} = \sum_{i,c,s}{\left(pImportRowPrice_{i,r,y,s}*pSliceWeight_{s}*{\bf vImportRow}_{i,c,r,y,s}\right)}-\sum_{e,c,s}{\left(pExportRowPrice_{e,r,y,s}*pSliceWeight_{s}*{\bf vExportRow}_{e,c,r,y,s}\right)}\] |
2.4.0.67 eqCostIrTrade
: Costs of import
\[ {\bf vTradeIrCost}_{r,y} = \sum_{t1}{\left(pTradeFixom_{t1,y}*pTradeStock_{t1,y}\right)}+\sum_{t1}{\left(pTradeFixom_{t1,y}*\left({\bf vTradeCap}_{t1,y}-pTradeStock_{t1,y}\right)\right)}+\sum_{t1}{\left({\bf vTradeEac}_{t1,r,y}\right)}+\sum_{t1,src}{\left(\sum_{c}{\left(\sum_{s}{\left(\left(pTradeIrCost_{t1,src,r,y,s}+pTradeIrMarkup_{t1,src,r,y,s}\right)*{\bf vTradeIr}_{t1,c,src,r,y,s}*pSliceWeight_{s}\right)}\right)}\right)}-\sum_{t1,dst}{\left(\sum_{c}{\left(\sum_{s}{\left(\left(pTradeIrCost_{t1,r,dst,y,s}+pTradeIrMarkup_{t1,r,dst,y,s}\right)*{\bf vTradeIr}_{t1,c,r,dst,y,s}*pSliceWeight_{s}\right)}\right)}\right)}\] |
2.4.0.68 eqExportRowUp
: Export to ROW upper constraint
\[ {\bf vExportRow}_{e,c,r,y,s} \le pExportRowUp_{e,r,y,s}\] |
2.4.0.69 eqExportRowLo
: Export to ROW lower constraint
\[ {\bf vExportRow}_{e,c,r,y,s} \ge pExportRowLo_{e,r,y,s}\] |
2.4.0.70 eqExportRowCum
: Cumulative export to ROW
\[ {\bf vExportRowCum}_{e,c} = \sum_{r,y,s}{\left(pPeriodLen_{y}*pSliceWeight_{s}*{\bf vExportRow}_{e,c,r,y,s}\right)}\] |
2.4.0.71 eqExportRowResUp
: Cumulative export to ROW upper constraint
\[ {\bf vExportRowCum}_{e,c} \le pExportRowRes_{e}\] |
2.4.0.72 eqImportRowUp
: Import from ROW upper constraint
\[ {\bf vImportRow}_{i,c,r,y,s} \le pImportRowUp_{i,r,y,s}\] |
2.4.0.73 eqImportRowLo
: Import of ROW lower constraint
\[ {\bf vImportRow}_{i,c,r,y,s} \ge pImportRowLo_{i,r,y,s}\] |
2.4.0.74 eqImportRowCum
: Cumulative import from ROW
\[ {\bf vImportRowCum}_{i,c} = \sum_{r,y,s}{\left(pPeriodLen_{y}*pSliceWeight_{s}*{\bf vImportRow}_{i,c,r,y,s}\right)}\] |
2.4.0.75 eqImportRowResUp
: Cumulative import from ROW upper constraint
\[ {\bf vImportRowCum}_{i,c} \le pImportRowRes_{i}\] |
2.4.0.76 eqTradeCapFlow
: Trade capacity
\[ pSliceShare_{s}*pTradeCap2Act_{t1}*{\bf vTradeCap}_{t1,y} \ge \sum_{src,dst}{\left({\bf vTradeIr}_{t1,c,src,dst,y,s}\right)}\] |
2.4.0.77 eqTradeCap
: Trade capacity lower bound
\[ {\bf vTradeCap}_{t1,y} = pTradeStock_{t1,y}+\sum_{yp}{\left(pPeriodLen_{yp}*{\bf vTradeNewCap}_{t1,yp}\right)}\] |
2.4.0.78 eqTradeCapLo
: Trade capacity upper bound
\[ {\bf vTradeCap}_{t1,y} \ge pTradeCapLo_{t1,y}\] |
2.4.0.79 eqTradeCapUp
: Trade new capacity lower bound
\[ {\bf vTradeCap}_{t1,y} \le pTradeCapUp_{t1,y}\] |
2.4.0.80 eqTradeNewCapLo
: Trade new capacity upper bound
\[ {\bf vTradeNewCap}_{t1,y} \ge pTradeNewCapLo_{t1,y}\] |
2.4.0.81 eqTradeNewCapUp
: Trade overnight investment costs
\[ {\bf vTradeNewCap}_{t1,y} \le pTradeNewCapUp_{t1,y}\] |
2.4.0.82 eqTradeInv
: Trade equivalent annual costs
\[ {\bf vTradeInv}_{t1,r,y} = pTradeInvcost_{t1,r,y}*{\bf vTradeNewCap}_{t1,y}\] |
2.4.0.83 eqTradeEac
: Trade capacity to activity
\[ {\bf vTradeEac}_{t1,r,y} = \sum_{yp}{\left(pTradeEac_{t1,r,yp}*pPeriodLen_{yp}*{\bf vTradeNewCap}_{t1,yp}\right)}\] |
2.4.0.84 eqTradeIrAInp
: Trade auxiliary commodity input
\[ {\bf vTradeIrAInp}_{t1,c,r,y,s} = \sum_{dst}{\left(pTradeIrCsrc2Ainp_{t1,c,r,dst,y,s}*\sum_{cp}{\left({\bf vTradeIr}_{t1,cp,r,dst,y,s}\right)}\right)}+\sum_{src}{\left(pTradeIrCdst2Ainp_{t1,c,src,r,y,s}*\sum_{cp}{\left({\bf vTradeIr}_{t1,cp,src,r,y,s}\right)}\right)}\] |
2.4.0.85 eqTradeIrAOut
: Trade auxiliary commodity output
\[ {\bf vTradeIrAOut}_{t1,c,r,y,s} = \sum_{dst}{\left(pTradeIrCsrc2Aout_{t1,c,r,dst,y,s}*\sum_{cp}{\left({\bf vTradeIr}_{t1,cp,r,dst,y,s}\right)}\right)}+\sum_{src}{\left(pTradeIrCdst2Aout_{t1,c,src,r,y,s}*\sum_{cp}{\left({\bf vTradeIr}_{t1,cp,src,r,y,s}\right)}\right)}\] |
2.4.0.86 eqTradeIrAInpTot
: Trade auxiliary commodity input
\[ {\bf vTradeIrAInpTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{t1,sp}{\left({\bf vTradeIrAInp}_{t1,c,r,y,sp}\right)}\] |
2.4.0.87 eqTradeIrAOutTot
: Trade auxiliary commodity output
\[ {\bf vTradeIrAOutTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{t1,sp}{\left({\bf vTradeIrAOut}_{t1,c,r,y,sp}\right)}\] |
2.4.0.88 eqBalLo
: commodity balance <= 0 (e.g. upper limit - deficit is allowed)
\[ {\bf vBalance}_{c,r,y,s} \ge 0\] |
2.4.0.89 eqBalUp
: commodity balance >= 0 (e.g. lower limit - excess is allower)
\[ {\bf vBalance}_{c,r,y,s} \le 0\] |
2.4.0.90 eqBalFx
: commodity balance >= 0 (no excess nor deficit is allowed)
\[ {\bf vBalance}_{c,r,y,s} = 0\] |
2.4.0.91 eqBal
: Commodity balance definition
\[ {\bf vBalance}_{c,r,y,s} = {\bf vOutTot}_{c,r,y,s}-{\bf vInpTot}_{c,r,y,s}\] |
2.4.0.92 eqOutTot
: Total commodity output
\[ {\bf vOutTot}_{c,r,y,s} = pSliceWeight_{s}*{\bf vDummyImport}_{c,r,y,s}+{\bf vSupOutTot}_{c,r,y,s}+{\bf vEmsFuelTot}_{c,r,y,s}+{\bf vAggOutTot}_{c,r,y,s}+{\bf vTechOutTot}_{c,r,y,s}+{\bf vStorageOutTot}_{c,r,y,s}+{\bf vImportTot}_{c,r,y,s}+{\bf vTradeIrAOutTot}_{c,r,y,s}+pSliceWeight_{s}*\sum_{sp}{\left({\bf vOut2Lo}_{c,r,y,sp,s}\right)}\] |
2.4.0.93 eqOut2Lo
: Total commodity input
\[ \sum_{sp}{\left({\bf vOut2Lo}_{c,r,y,s,sp}\right)} = {\bf vSupOutTot}_{c,r,y,s}+{\bf vEmsFuelTot}_{c,r,y,s}+{\bf vAggOutTot}_{c,r,y,s}+{\bf vTechOutTot}_{c,r,y,s}+{\bf vStorageOutTot}_{c,r,y,s}+{\bf vImportTot}_{c,r,y,s}+{\bf vTradeIrAOutTot}_{c,r,y,s}\] |
2.4.0.94 eqInpTot
: From commodity slice to lo level
\[ {\bf vInpTot}_{c,r,y,s} = pSliceWeight_{s}*{\bf vDemInp}_{c,r,y,s}+pSliceWeight_{s}*{\bf vDummyExport}_{c,r,y,s}+{\bf vTechInpTot}_{c,r,y,s}+{\bf vStorageInpTot}_{c,r,y,s}+{\bf vExportTot}_{c,r,y,s}+{\bf vTradeIrAInpTot}_{c,r,y,s}+pSliceWeight_{s}*\sum_{sp}{\left({\bf vInp2Lo}_{c,r,y,sp,s}\right)}\] |
2.4.0.95 eqInp2Lo
: From commodity slice to lo level
\[ \sum_{sp}{\left({\bf vInp2Lo}_{c,r,y,s,sp}\right)} = {\bf vTechInpTot}_{c,r,y,s}+{\bf vStorageInpTot}_{c,r,y,s}+{\bf vExportTot}_{c,r,y,s}+{\bf vTradeIrAInpTot}_{c,r,y,s}\] |
2.4.0.96 eqSupOutTot
: Supply total output
\[ {\bf vSupOutTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{s1}{\left({\bf vSupOut}_{s1,c,r,y,s}\right)}\] |
2.4.0.97 eqTechInpTot
: Technology total input
\[ {\bf vTechInpTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{t}{\left({\bf vTechInp}_{t,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{t}{\left(\sum_{sp}{\left({\bf vTechInp}_{t,c,r,y,sp}\right)}\right)}+pSliceWeight_{s}*\sum_{t}{\left({\bf vTechAInp}_{t,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{t}{\left(\sum_{sp}{\left({\bf vTechAInp}_{t,c,r,y,sp}\right)}\right)}\] |
2.4.0.98 eqTechOutTot
: Technology total output
\[ {\bf vTechOutTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{t}{\left({\bf vTechOut}_{t,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{t}{\left(\sum_{sp}{\left({\bf vTechOut}_{t,c,r,y,sp}\right)}\right)}+pSliceWeight_{s}*\sum_{t}{\left({\bf vTechAOut}_{t,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{t}{\left(\sum_{sp}{\left({\bf vTechAOut}_{t,c,r,y,sp}\right)}\right)}\] |
2.4.0.99 eqStorageInpTot
: Storage total input
\[ {\bf vStorageInpTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{st1}{\left({\bf vStorageInp}_{st1,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{st1}{\left({\bf vStorageAInp}_{st1,c,r,y,s}\right)}\] |
2.4.0.100 eqStorageOutTot
: Storage total output
\[ {\bf vStorageOutTot}_{c,r,y,s} = pSliceWeight_{s}*\sum_{st1}{\left({\bf vStorageOut}_{st1,c,r,y,s}\right)}+pSliceWeight_{s}*\sum_{st1}{\left({\bf vStorageAOut}_{st1,c,r,y,s}\right)}\] |
2.4.0.101 eqCost
: Total costs (weighted)
\[ {\bf vTotalCost}_{r,y} = \sum_{t}{\left({\bf vTechEac}_{t,r,y}\right)}+\sum_{t}{\left(pTechRetCost_{t,r,y}*\left({\bf vTechRetiredStock}_{t,r,y}+\sum_{yp}{\left({\bf vTechRetiredNewCap}_{t,r,yp,y}\right)}\right)\right)}+\sum_{t,yp}{\left(pTechRetCost_{t,r,y}*{\bf vTechRetiredNewCap}_{t,r,yp,y}\right)}+\sum_{t}{\left({\bf vTechOMCost}_{t,r,y}\right)}+\sum_{s1}{\left({\bf vSupCost}_{s1,r,y}\right)}+\sum_{c,s}{\left(pDummyImportCost_{c,r,y,s}*pSliceWeight_{s}*{\bf vDummyImport}_{c,r,y,s}\right)}+\sum_{c,s}{\left(pDummyExportCost_{c,r,y,s}*pSliceWeight_{s}*{\bf vDummyExport}_{c,r,y,s}\right)}+\sum_{c}{\left({\bf vTaxCost}_{c,r,y}\right)}-\sum_{c}{\left({\bf vSubsCost}_{c,r,y}\right)}+\sum_{st1}{\left({\bf vStorageOMCost}_{st1,r,y}\right)}+\sum_{st1}{\left({\bf vStorageEac}_{st1,r,y}\right)}+{\bf vTradeCost}_{r,y}+{\bf vTotalUserCosts}_{r,y}\] |
2.4.0.102 eqTaxCost
: Commodity taxes (weighted)
\[ {\bf vTaxCost}_{c,r,y} = \sum_{s}{\left(pTaxCostOut_{c,r,y,s}*{\bf vOutTot}_{c,r,y,s}\right)}+\sum_{s}{\left(pTaxCostInp_{c,r,y,s}*{\bf vInpTot}_{c,r,y,s}\right)}+\sum_{s}{\left(pTaxCostBal_{c,r,y,s}*{\bf vBalance}_{c,r,y,s}\right)}\] |
2.4.0.103 eqSubsCost
: Commodity subsidy (weighted)
\[ {\bf vSubsCost}_{c,r,y} = \sum_{s}{\left(pSubCostOut_{c,r,y,s}*{\bf vOutTot}_{c,r,y,s}\right)}+\sum_{s}{\left(pSubCostInp_{c,r,y,s}*{\bf vInpTot}_{c,r,y,s}\right)}+\sum_{s}{\left(pSubCostBal_{c,r,y,s}*{\bf vBalance}_{c,r,y,s}\right)}\] |
2.4.0.104 eqObjective
: Objective equation NPV of total costs
\[ {\bf vObjective} = \sum_{r,y}{\left(pDiscountFactorMileStone_{r,y}*{\bf vTotalCost}_{r,y}\right)}\] |
2.4.0.105 eqLECActivity
: levelized costs (auxiliary equation)
\[ \sum_{s}{\left({\bf vTechAct}_{t,r,y,s}\right)} \ge pLECLoACT_{r}\] |