Equations

eqTechSng2Sng: Technology input to output

\[\begin{equation} \small {\bf vTechInp}_{h,c,r,y,l}*pTechCinp2use_{h,c,r,y,l} = \frac{{\bf vTechOut}_{h,cp,r,y,l}}{pTechUse2cact_{h,cp,r,y,l}*pTechCact2cout_{h,cp,r,y,l}} \tag{1} \end{equation}\]

eqTechGrp2Sng: Technology group input to output

\[\begin{equation} \small pTechGinp2use_{h,g,r,y,l}*\sum_{c}{\left({\bf vTechInp}_{h,c,r,y,l}*pTechCinp2ginp_{h,c,r,y,l}\right)} = \frac{{\bf vTechOut}_{h,cp,r,y,l}}{pTechUse2cact_{h,cp,r,y,l}*pTechCact2cout_{h,cp,r,y,l}} \tag{2} \end{equation}\]

eqTechSng2Grp: Technology input to group output

\[\begin{equation} \small {\bf vTechInp}_{h,c,r,y,l}*pTechCinp2use_{h,c,r,y,l} = \sum_{cp}{\left(\frac{{\bf vTechOut}_{h,cp,r,y,l}}{pTechUse2cact_{h,cp,r,y,l}*pTechCact2cout_{h,cp,r,y,l}}\right)} \tag{3} \end{equation}\]

eqTechGrp2Grp: Technology group input to group output

\[\begin{equation} \small pTechGinp2use_{h,g,r,y,l}*\sum_{c}{\left({\bf vTechInp}_{h,c,r,y,l}*pTechCinp2ginp_{h,c,r,y,l}\right)} = \sum_{cp}{\left(\frac{{\bf vTechOut}_{h,cp,r,y,l}}{pTechUse2cact_{h,cp,r,y,l}*pTechCact2cout_{h,cp,r,y,l}}\right)} \tag{4} \end{equation}\]

eqTechShareInpLo: Technology lower bound on input share

\[\begin{equation} \small {\bf vTechInp}_{h,c,r,y,l} \ge pTechShareLo_{h,c,r,y,l}*\sum_{cp}{\left({\bf vTechInp}_{h,cp,r,y,l}\right)} \tag{5} \end{equation}\]

eqTechShareInpUp: Technology upper bound on input share

\[\begin{equation} \small {\bf vTechInp}_{h,c,r,y,l} \le pTechShareUp_{h,c,r,y,l}*\sum_{cp}{\left({\bf vTechInp}_{h,cp,r,y,l}\right)} \tag{6} \end{equation}\]

eqTechShareOutLo: Technology lower bound on output share

\[\begin{equation} \small {\bf vTechOut}_{h,c,r,y,l} \ge pTechShareLo_{h,c,r,y,l}*\sum_{cp}{\left({\bf vTechOut}_{h,cp,r,y,l}\right)} \tag{7} \end{equation}\]

eqTechShareOutUp: Technology upper bound on output share

\[\begin{equation} \small {\bf vTechOut}_{h,c,r,y,l} \le pTechShareUp_{h,c,r,y,l}*\sum_{cp}{\left({\bf vTechOut}_{h,cp,r,y,l}\right)} \tag{8} \end{equation}\]

eqTechAInp: Technology auxiliary commodity input

\[\begin{equation} \small {\bf vTechAInp}_{h,c,r,y,l} = \left({\bf vTechAct}_{h,r,y,l}*pTechAct2AInp_{h,c,r,y,l}\right)+\left({\bf vTechCap}_{h,r,y}*pTechCap2AInp_{h,c,r,y,l}\right)+\left({\bf vTechNewCap}_{h,r,y}*pTechNCap2AInp_{h,c,r,y,l}\right)+\sum_{cp}{\left(pTechCinp2AInp_{h,c,cp,r,y,l}*{\bf vTechInp}_{h,cp,r,y,l}\right)}+\sum_{cp}{\left(pTechCout2AInp_{h,c,cp,r,y,l}*{\bf vTechOut}_{h,cp,r,y,l}\right)} \tag{9} \end{equation}\]

eqTechAOut: Technology auxiliary commodity output

\[\begin{equation} \small {\bf vTechAOut}_{h,c,r,y,l} = \left({\bf vTechAct}_{h,r,y,l}*pTechAct2AOut_{h,c,r,y,l}\right)+\left({\bf vTechCap}_{h,r,y}*pTechCap2AOut_{h,c,r,y,l}\right)+\left({\bf vTechNewCap}_{h,r,y}*pTechNCap2AOut_{h,c,r,y,l}\right)+\sum_{cp}{\left(pTechCinp2AOut_{h,c,cp,r,y,l}*{\bf vTechInp}_{h,cp,r,y,l}\right)}+\sum_{cp}{\left(pTechCout2AOut_{h,c,cp,r,y,l}*{\bf vTechOut}_{h,cp,r,y,l}\right)} \tag{10} \end{equation}\]

eqTechAfLo: Technology availability factor lower bound

\[\begin{equation} \small pTechAfLo_{h,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfLo_{w,h}*pWeather_{w,r,y,l}\right)} \le {\bf vTechAct}_{h,r,y,l} \tag{11} \end{equation}\]

eqTechAfUp: Technology availability factor upper bound

\[\begin{equation} \small {\bf vTechAct}_{h,r,y,l} \le pTechAfUp_{h,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfUp_{w,h}*pWeather_{w,r,y,l}\right)} \tag{12} \end{equation}\]

eqTechAfsLo: Technology availability factor for sum of slices lower bound

\[\begin{equation} \small pTechAfsLo_{h,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfsLo_{w,h}*pWeather_{w,r,y,l}\right)} \le \sum_{lp}{\left({\bf vTechAct}_{h,r,y,lp}\right)} \tag{13} \end{equation}\]

eqTechAfsUp: Technology availability factor for sum of slices upper bound

\[\begin{equation} \small \sum_{lp}{\left({\bf vTechAct}_{h,r,y,lp}\right)} \le pTechAfsUp_{h,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfsUp_{w,h}*pWeather_{w,r,y,l}\right)} \tag{14} \end{equation}\]

eqTechRampUp: Technology ramp up

\[\begin{equation} \small \frac{{\bf vTechAct}_{h,r,y,l}}{pSliceShare_{l}}-\sum_{lp}{\left(\frac{{\bf vTechAct}_{h,r,y,lp}}{pSliceShare_{lp}}\right)} \le \frac{pSliceShare_{l}*365*24*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}}{pTechRampUp_{h,r,y,l}} \tag{15} \end{equation}\]

eqTechRampDown: Technology ramp down

\[\begin{equation} \small \sum_{lp}{\left(\frac{{\bf vTechAct}_{h,r,y,lp}}{pSliceShare_{lp}}\right)}-\frac{{\bf vTechAct}_{h,r,y,l}}{pSliceShare_{l}} \le \frac{pSliceShare_{l}*365*24*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}}{pTechRampDown_{h,r,y,l}} \tag{16} \end{equation}\]

eqTechActSng: Technology activity to commodity output

\[\begin{equation} \small {\bf vTechAct}_{h,r,y,l} = \frac{{\bf vTechOut}_{h,c,r,y,l}}{pTechCact2cout_{h,c,r,y,l}} \tag{17} \end{equation}\]

eqTechActGrp: Technology activity to group output

\[\begin{equation} \small {\bf vTechAct}_{h,r,y,l} = \sum_{c}{\left(\frac{{\bf vTechOut}_{h,c,r,y,l}}{pTechCact2cout_{h,c,r,y,l}}\right)} \tag{18} \end{equation}\]

eqTechAfcOutLo: Technology commodity availability factor lower bound

\[\begin{equation} \small pTechCact2cout_{h,c,r,y,l}*pTechAfcLo_{h,c,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfcLo_{w,h,c}*pWeather_{w,r,y,l}\right)} \le {\bf vTechOut}_{h,c,r,y,l} \tag{19} \end{equation}\]

eqTechAfcOutUp: Technology commodity availability factor upper bound

\[\begin{equation} \small {\bf vTechOut}_{h,c,r,y,l} \le pTechCact2cout_{h,c,r,y,l}*pTechAfcUp_{h,c,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*\prod_{w}{\left(pTechWeatherAfcUp_{w,h,c}*pWeather_{w,r,y,l}\right)} \tag{20} \end{equation}\]

eqTechAfcInpLo: Technology commodity availability factor lower bound

\[\begin{equation} \small pTechAfcLo_{h,c,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfcLo_{w,h,c}*pWeather_{w,r,y,l}\right)} \le {\bf vTechInp}_{h,c,r,y,l} \tag{21} \end{equation}\]

eqTechAfcInpUp: Technology commodity availability factor upper bound

\[\begin{equation} \small {\bf vTechInp}_{h,c,r,y,l} \le pTechAfcUp_{h,c,r,y,l}*pTechCap2act_{h}*{\bf vTechCap}_{h,r,y}*pSliceShare_{l}*\prod_{w}{\left(pTechWeatherAfcUp_{w,h,c}*pWeather_{w,r,y,l}\right)} \tag{22} \end{equation}\]

eqTechCap: Technology capacity

\[\begin{equation} \small {\bf vTechCap}_{h,r,y} = pTechStock_{h,r,y}-{\bf vTechRetiredStock}_{h,r,y}+\sum_{yp}{\left(pPeriodLen_{yp}*\left({\bf vTechNewCap}_{h,r,yp}-\sum_{ye}{\left({\bf vTechRetiredNewCap}_{h,r,yp,ye}\right)}\right)\right)} \tag{23} \end{equation}\]

eqTechRetiredNewCap: Retirement of new capacity

\[\begin{equation} \small \sum_{yp}{\left({\bf vTechRetiredNewCap}_{h,r,y,yp}\right)} \le {\bf vTechNewCap}_{h,r,y} \tag{24} \end{equation}\]

eqTechRetiredStock: Retirement of stock

\[\begin{equation} \small {\bf vTechRetiredStock}_{h,r,y} \le pTechStock_{h,r,y} \tag{25} \end{equation}\]

eqTechEac: Technology Equivalent Annual Cost (EAC)

\[\begin{equation} \small {\bf vTechEac}_{h,r,y} = \sum_{yp}{\left(pTechEac_{h,r,yp}*pPeriodLen_{yp}*\left({\bf vTechNewCap}_{h,r,yp}-\sum_{ye}{\left({\bf vTechRetiredNewCap}_{h,r,yp,ye}\right)}\right)\right)} \tag{26} \end{equation}\]

eqTechInv: Technology overnight investment costs

\[\begin{equation} \small {\bf vTechInv}_{h,r,y} = pTechInvcost_{h,r,y}*{\bf vTechNewCap}_{h,r,y} \tag{27} \end{equation}\]

eqTechOMCost: Technology O&M costs

\[\begin{equation} \small {\bf vTechOMCost}_{h,r,y} = pTechFixom_{h,r,y}*{\bf vTechCap}_{h,r,y}+\sum_{l}{\left(pTechVarom_{h,r,y,l}*{\bf vTechAct}_{h,r,y,l}\right)}+\sum_{l}{\left(\sum_{c}{\left(pTechCvarom_{h,c,r,y,l}*{\bf vTechInp}_{h,c,r,y,l}\right)}\right)}+\sum_{l}{\left(\sum_{c}{\left(pTechCvarom_{h,c,r,y,l}*{\bf vTechOut}_{h,c,r,y,l}\right)}\right)}+\sum_{l}{\left(\sum_{c}{\left(pTechAvarom_{h,c,r,y,l}*{\bf vTechAOut}_{h,c,r,y,l}\right)}\right)}+\sum_{l}{\left(\sum_{c}{\left(pTechAvarom_{h,c,r,y,l}*{\bf vTechAInp}_{h,c,r,y,l}\right)}\right)} \tag{28} \end{equation}\]

eqSupAvaUp: Supply availability upper bound

\[\begin{equation} \small {\bf vSupOut}_{u,c,r,y,l} \le pSupAvaUp_{u,c,r,y,l}*\prod_{w}{\left(pSupWeatherUp_{w,u}*pWeather_{w,r,y,l}\right)} \tag{29} \end{equation}\]

eqSupAvaLo: Supply availability lower bound

\[\begin{equation} \small {\bf vSupOut}_{u,c,r,y,l} \ge pSupAvaLo_{u,c,r,y,l}*\prod_{w}{\left(pSupWeatherLo_{w,u}*pWeather_{w,r,y,l}\right)} \tag{30} \end{equation}\]

eqSupTotal: Total supply of each commodity

\[\begin{equation} \small {\bf vSupReserve}_{u,c,r} = \sum_{y,l}{\left(pPeriodLen_{y}*{\bf vSupOut}_{u,c,r,y,l}\right)} \tag{31} \end{equation}\]

eqSupReserveUp: Total reserve upper value

\[\begin{equation} \small pSupReserveUp_{u,c,r} \ge {\bf vSupReserve}_{u,c,r} \tag{32} \end{equation}\]

eqSupReserveLo: Total reserve lower value

\[\begin{equation} \small {\bf vSupReserve}_{u,c,r} \ge pSupReserveLo_{u,c,r} \tag{33} \end{equation}\]

eqSupCost: Total supply costs

\[\begin{equation} \small {\bf vSupCost}_{u,r,y} = \sum_{c,l}{\left(pSupCost_{u,c,r,y,l}*{\bf vSupOut}_{u,c,r,y,l}\right)} \tag{34} \end{equation}\]

eqDemInp: Demand equation

\[\begin{equation} \small {\bf vDemInp}_{c,r,y,l} = \sum_{d}{\left(pDemand_{d,c,r,y,l}\right)} \tag{35} \end{equation}\]

eqAggOut: Aggregating commodity output

\[\begin{equation} \small {\bf vAggOut}_{c,r,y,l} = \sum_{cp}{\left(pAggregateFactor_{c,cp}*\sum_{lp}{\left({\bf vOutTot}_{cp,r,y,lp}\right)}\right)} \tag{36} \end{equation}\]

eqEmsFuelTot: Emissions from commodity consumption (i.e. fuels combustion)

\[\begin{equation} \small {\bf vEmsFuelTot}_{c,r,y,l} = \sum_{cp}{\left(pEmissionFactor_{c,cp}*\sum_{h}{\left(pTechEmisComm_{h,cp}*\sum_{lp}{\left({\bf vTechInp}_{h,cp,r,y,lp}\right)}\right)}\right)} \tag{37} \end{equation}\]

eqStorageAInp: Storage level

\[\begin{equation} \small {\bf vStorageAInp}_{s,c,r,y,l} = \sum_{cp}{\left(pStorageStg2AInp_{s,c,r,y,l}*{\bf vStorageStore}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCinp2AInp_{s,c,r,y,l}*{\bf vStorageInp}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCout2AInp_{s,c,r,y,l}*{\bf vStorageOut}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCap2AInp_{s,c,r,y,l}*{\bf vStorageCap}_{s,r,y}\right)}+\sum_{cp}{\left(pStorageNCap2AInp_{s,c,r,y,l}*{\bf vStorageNewCap}_{s,r,y}\right)} \tag{38} \end{equation}\]

eqStorageAOut: Storage availability factor lower

\[\begin{equation} \small {\bf vStorageAOut}_{s,c,r,y,l} = \sum_{cp}{\left(pStorageStg2AOut_{s,c,r,y,l}*{\bf vStorageStore}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCinp2AOut_{s,c,r,y,l}*{\bf vStorageInp}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCout2AOut_{s,c,r,y,l}*{\bf vStorageOut}_{s,cp,r,y,l}\right)}+\sum_{cp}{\left(pStorageCap2AOut_{s,c,r,y,l}*{\bf vStorageCap}_{s,r,y}\right)}+\sum_{cp}{\left(pStorageNCap2AOut_{s,c,r,y,l}*{\bf vStorageNewCap}_{s,r,y}\right)} \tag{39} \end{equation}\]

eqStorageStore: Storage availability factor upper

\[\begin{equation} \small {\bf vStorageStore}_{s,c,r,y,l} = pStorageCharge_{s,c,r,y,l}+\left(pStorageNCap2Stg_{s,c,r,y,l}*{\bf vStorageNewCap}_{s,r,y}\right)+\sum_{lp}{\left(pStorageInpEff_{s,c,r,y,lp}*{\bf vStorageInp}_{s,c,r,y,lp}\right)}+\sum_{lp}{\left(\left({pStorageStgEff_{s,c,r,y,l}}^{pSliceShare_{l}}\right)*{\bf vStorageStore}_{s,c,r,y,lp}\right)}-\sum_{lp}{\left(\frac{{\bf vStorageOut}_{s,c,r,y,lp}}{pStorageOutEff_{s,c,r,y,lp}}\right)} \tag{40} \end{equation}\]

eqStorageAfLo: Storage output vs level

\[\begin{equation} \small {\bf vStorageStore}_{s,c,r,y,l} \ge pStorageAfLo_{s,r,y,l}*pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*\prod_{w}{\left(pStorageWeatherAfLo_{w,s}*pWeather_{w,r,y,l}\right)} \tag{41} \end{equation}\]

eqStorageAfUp: Storage aux-commodity input

\[\begin{equation} \small {\bf vStorageStore}_{s,c,r,y,l} \le pStorageAfUp_{s,r,y,l}*pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*\prod_{w}{\left(pStorageWeatherAfUp_{w,s}*pWeather_{w,r,y,l}\right)} \tag{42} \end{equation}\]

eqStorageClean: Storage aux-commodity output

\[\begin{equation} \small \frac{{\bf vStorageOut}_{s,c,r,y,l}}{pStorageOutEff_{s,c,r,y,l}} \le {\bf vStorageStore}_{s,c,r,y,l} \tag{43} \end{equation}\]

eqStorageInpUp: Storage input upper constraint

\[\begin{equation} \small {\bf vStorageInp}_{s,c,r,y,l} \le pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*pStorageCinpUp_{s,c,r,y,l}*pSliceShare_{l}*\prod_{w}{\left(pStorageWeatherCinpUp_{w,s}*pWeather_{w,r,y,l}\right)} \tag{44} \end{equation}\]

eqStorageInpLo: Storage input lower constraint

\[\begin{equation} \small {\bf vStorageInp}_{s,c,r,y,l} \ge pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*pStorageCinpLo_{s,c,r,y,l}*pSliceShare_{l}*\prod_{w}{\left(pStorageWeatherCinpLo_{w,s}*pWeather_{w,r,y,l}\right)} \tag{45} \end{equation}\]

eqStorageOutUp: Storage output upper constraint

\[\begin{equation} \small {\bf vStorageOut}_{s,c,r,y,l} \le pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*pStorageCoutUp_{s,c,r,y,l}*pSliceShare_{l}*\prod_{w}{\left(pStorageWeatherCoutUp_{w,s}*pWeather_{w,r,y,l}\right)} \tag{46} \end{equation}\]

eqStorageOutLo: Storage output lower constraint

\[\begin{equation} \small {\bf vStorageOut}_{s,c,r,y,l} \ge pStorageCap2stg_{s}*{\bf vStorageCap}_{s,r,y}*pStorageCoutLo_{s,c,r,y,l}*pSliceShare_{l}*\prod_{w}{\left(pStorageWeatherCoutLo_{w,s}*pWeather_{w,r,y,l}\right)} \tag{47} \end{equation}\]

eqStorageCap: Storage capacity

\[\begin{equation} \small {\bf vStorageCap}_{s,r,y} = pStorageStock_{s,r,y}+\sum_{yp}{\left(pPeriodLen_{yp}*{\bf vStorageNewCap}_{s,r,yp}\right)} \tag{48} \end{equation}\]

eqStorageInv: Storage overnight investment costs

\[\begin{equation} \small {\bf vStorageInv}_{s,r,y} = pStorageInvcost_{s,r,y}*{\bf vStorageNewCap}_{s,r,y} \tag{49} \end{equation}\]

eqStorageEac: Storage equivalent annual cost

\[\begin{equation} \small {\bf vStorageEac}_{s,r,y} = \sum_{yp}{\left(pStorageEac_{s,r,yp}*pPeriodLen_{yp}*{\bf vStorageNewCap}_{s,r,yp}\right)} \tag{50} \end{equation}\]

eqStorageCost: Storage total costs

\[\begin{equation} \small {\bf vStorageOMCost}_{s,r,y} = pStorageFixom_{s,r,y}*{\bf vStorageCap}_{s,r,y}+\sum_{c}{\left(\sum_{l}{\left(pStorageCostInp_{s,r,y,l}*{\bf vStorageInp}_{s,c,r,y,l}\right)}+\sum_{l}{\left(pStorageCostOut_{s,r,y,l}*{\bf vStorageOut}_{s,c,r,y,l}\right)}+\sum_{l}{\left(pStorageCostStore_{s,r,y,l}*{\bf vStorageStore}_{s,c,r,y,l}\right)}\right)} \tag{51} \end{equation}\]

eqImport: Import equation

\[\begin{equation} \small {\bf vImport}_{c,dst,y,l} = \sum_{lp}{\left(\sum_{d}{\left(\sum_{src}{\left(pTradeIrEff_{d,src,dst,y,lp}*{\bf vTradeIr}_{d,c,src,dst,y,lp}\right)}\right)}\right)}+\sum_{lp}{\left(\sum_{m}{\left({\bf vImportRow}_{m,c,dst,y,lp}\right)}\right)} \tag{52} \end{equation}\]

eqExport: Export equation

\[\begin{equation} \small {\bf vExport}_{c,src,y,l} = \sum_{lp}{\left(\sum_{d}{\left(\sum_{dst}{\left({\bf vTradeIr}_{d,c,src,dst,y,lp}\right)}\right)}\right)}+\sum_{lp}{\left(\sum_{x}{\left({\bf vExportRow}_{x,c,src,y,lp}\right)}\right)} \tag{53} \end{equation}\]

eqTradeFlowUp: Trade upper bound

\[\begin{equation} \small {\bf vTradeIr}_{d,c,src,dst,y,l} \le pTradeIrUp_{d,src,dst,y,l} \tag{54} \end{equation}\]

eqTradeFlowLo: Trade lower bound

\[\begin{equation} \small {\bf vTradeIr}_{d,c,src,dst,y,l} \ge pTradeIrLo_{d,src,dst,y,l} \tag{55} \end{equation}\]

eqCostTrade: Total trade costs

\[\begin{equation} \small {\bf vTradeCost}_{r,y} = {\bf vTradeRowCost}_{r,y}+{\bf vTradeIrCost}_{r,y} \tag{56} \end{equation}\]

eqCostRowTrade: Costs of trade with the Rest of the World (ROW)

\[\begin{equation} \small {\bf vTradeRowCost}_{r,y} = \sum_{m,c,l}{\left(pImportRowPrice_{m,r,y,l}*{\bf vImportRow}_{m,c,r,y,l}\right)}-\sum_{x,c,l}{\left(pExportRowPrice_{x,r,y,l}*{\bf vExportRow}_{x,c,r,y,l}\right)} \tag{57} \end{equation}\]

eqCostIrTrade: Costs of import

\[\begin{equation} \small {\bf vTradeIrCost}_{r,y} = \sum_{d}{\left({\bf vTradeEac}_{d,r,y}\right)}+\sum_{d,src}{\left(\sum_{c}{\left(\sum_{l}{\left(\left(\left(pTradeIrCost_{d,src,r,y,l}+pTradeIrMarkup_{d,src,r,y,l}\right)*{\bf vTradeIr}_{d,c,src,r,y,l}\right)\right)}\right)}\right)}-\sum_{d,dst}{\left(\sum_{c}{\left(\sum_{l}{\left(\left(pTradeIrMarkup_{d,r,dst,y,l}*{\bf vTradeIr}_{d,c,r,dst,y,l}\right)\right)}\right)}\right)} \tag{58} \end{equation}\]

eqExportRowUp: Export to ROW upper constraint

\[\begin{equation} \small {\bf vExportRow}_{x,c,r,y,l} \le pExportRowUp_{x,r,y,l} \tag{59} \end{equation}\]

eqExportRowLo: Export to ROW lower constraint

\[\begin{equation} \small {\bf vExportRow}_{x,c,r,y,l} \ge pExportRowLo_{x,r,y,l} \tag{60} \end{equation}\]

eqExportRowCumulative: Cumulative export to ROW

\[\begin{equation} \small {\bf vExportRowAccumulated}_{x,c} = \sum_{r,y,l}{\left(pPeriodLen_{y}*{\bf vExportRow}_{x,c,r,y,l}\right)} \tag{61} \end{equation}\]

eqExportRowResUp: Cumulative export to ROW upper constraint

\[\begin{equation} \small {\bf vExportRowAccumulated}_{x,c} \le pExportRowRes_{x} \tag{62} \end{equation}\]

eqImportRowUp: Import from ROW upper constraint

\[\begin{equation} \small {\bf vImportRow}_{m,c,r,y,l} \le pImportRowUp_{m,r,y,l} \tag{63} \end{equation}\]

eqImportRowLo: Import of ROW lower constraint

\[\begin{equation} \small {\bf vImportRow}_{m,c,r,y,l} \ge pImportRowLo_{m,r,y,l} \tag{64} \end{equation}\]

eqImportRowAccumulated: Cumulative import from ROW

\[\begin{equation} \small {\bf vImportRowAccumulated}_{m,c} = \sum_{r,y,l}{\left(pPeriodLen_{y}*{\bf vImportRow}_{m,c,r,y,l}\right)} \tag{65} \end{equation}\]

eqImportRowResUp: Cumulative import from ROW upper constraint

\[\begin{equation} \small {\bf vImportRowAccumulated}_{m,c} \le pImportRowRes_{m} \tag{66} \end{equation}\]

eqTradeCapFlow: Trade capacity

\[\begin{equation} \small pSliceShare_{l}*pTradeCap2Act_{d}*{\bf vTradeCap}_{d,y} \ge \sum_{src,dst}{\left({\bf vTradeIr}_{d,c,src,dst,y,l}\right)} \tag{67} \end{equation}\]

eqTradeCap: Trade overnight investment costs

\[\begin{equation} \small {\bf vTradeCap}_{d,y} = pTradeStock_{d,y}+\sum_{yp}{\left(pPeriodLen_{yp}*{\bf vTradeNewCap}_{d,yp}\right)} \tag{68} \end{equation}\]

eqTradeInv: Trade equivalent annual costs

\[\begin{equation} \small {\bf vTradeInv}_{d,r,y} = pTradeInvcost_{d,r,y}*{\bf vTradeNewCap}_{d,y} \tag{69} \end{equation}\]

eqTradeEac: Trade capacity to activity

\[\begin{equation} \small {\bf vTradeEac}_{d,r,y} = \sum_{yp}{\left(pTradeEac_{d,r,yp}*pPeriodLen_{yp}*{\bf vTradeNewCap}_{d,yp}\right)} \tag{70} \end{equation}\]

eqTradeIrAInp: Trade auxiliary commodity input

\[\begin{equation} \small {\bf vTradeIrAInp}_{d,c,r,y,l} = \sum_{dst}{\left(pTradeIrCsrc2Ainp_{d,c,r,dst,y,l}*\sum_{cp}{\left({\bf vTradeIr}_{d,cp,r,dst,y,l}\right)}\right)}+\sum_{src}{\left(pTradeIrCdst2Ainp_{d,c,src,r,y,l}*\sum_{cp}{\left({\bf vTradeIr}_{d,cp,src,r,y,l}\right)}\right)} \tag{71} \end{equation}\]

eqTradeIrAOut: Trade auxiliary commodity output

\[\begin{equation} \small {\bf vTradeIrAOut}_{d,c,r,y,l} = \sum_{dst}{\left(pTradeIrCsrc2Aout_{d,c,r,dst,y,l}*\sum_{cp}{\left({\bf vTradeIr}_{d,cp,r,dst,y,l}\right)}\right)}+\sum_{src}{\left(pTradeIrCdst2Aout_{d,c,src,r,y,l}*\sum_{cp}{\left({\bf vTradeIr}_{d,cp,src,r,y,l}\right)}\right)} \tag{72} \end{equation}\]

eqTradeIrAInpTot: Trade auxiliary commodity input

\[\begin{equation} \small {\bf vTradeIrAInpTot}_{c,r,y,l} = \sum_{d,lp}{\left({\bf vTradeIrAInp}_{d,c,r,y,lp}\right)} \tag{73} \end{equation}\]

eqTradeIrAOutTot: Trade auxiliary commodity output

\[\begin{equation} \small {\bf vTradeIrAOutTot}_{c,r,y,l} = \sum_{d,lp}{\left({\bf vTradeIrAOut}_{d,c,r,y,lp}\right)} \tag{74} \end{equation}\]

eqBalLo: PRODUCTION <= CONSUMPTION commodity balance

\[\begin{equation} \small {\bf vBalance}_{c,r,y,l} \ge 0 \tag{75} \end{equation}\]

eqBalUp: PRODUCTION >= CONSUMPTION commodity balance

\[\begin{equation} \small {\bf vBalance}_{c,r,y,l} \le 0 \tag{76} \end{equation}\]

eqBalFx: PRODUCTION == CONSUMPTION commodity balance

\[\begin{equation} \small {\bf vBalance}_{c,r,y,l} = 0 \tag{77} \end{equation}\]

eqBal: Commodity balance

\[\begin{equation} \small {\bf vBalance}_{c,r,y,l} = {\bf vOutTot}_{c,r,y,l}-{\bf vInpTot}_{c,r,y,l} \tag{78} \end{equation}\]

eqOutTot: Total commodity output

\[\begin{equation} \small {\bf vOutTot}_{c,r,y,l} = {\bf vDummyImport}_{c,r,y,l}+{\bf vSupOutTot}_{c,r,y,l}+{\bf vEmsFuelTot}_{c,r,y,l}+{\bf vAggOut}_{c,r,y,l}+{\bf vTechOutTot}_{c,r,y,l}+{\bf vStorageOutTot}_{c,r,y,l}+{\bf vImport}_{c,r,y,l}+{\bf vTradeIrAOutTot}_{c,r,y,l}+\sum_{lp}{\left({\bf vOut2Lo}_{c,r,y,lp,l}\right)} \tag{79} \end{equation}\]

eqOut2Lo: Total commodity input

\[\begin{equation} \small \sum_{lp}{\left({\bf vOut2Lo}_{c,r,y,l,lp}\right)} = {\bf vSupOutTot}_{c,r,y,l}+{\bf vEmsFuelTot}_{c,r,y,l}+{\bf vAggOut}_{c,r,y,l}+{\bf vTechOutTot}_{c,r,y,l}+{\bf vStorageOutTot}_{c,r,y,l}+{\bf vImport}_{c,r,y,l}+{\bf vTradeIrAOutTot}_{c,r,y,l} \tag{80} \end{equation}\]

eqInpTot: From commodity slice to lo level

\[\begin{equation} \small {\bf vInpTot}_{c,r,y,l} = {\bf vDemInp}_{c,r,y,l}+{\bf vDummyExport}_{c,r,y,l}+{\bf vTechInpTot}_{c,r,y,l}+{\bf vStorageInpTot}_{c,r,y,l}+{\bf vExport}_{c,r,y,l}+{\bf vTradeIrAInpTot}_{c,r,y,l}+\sum_{lp}{\left({\bf vInp2Lo}_{c,r,y,lp,l}\right)} \tag{81} \end{equation}\]

eqInp2Lo: From commodity slice to lo level

\[\begin{equation} \small \sum_{lp}{\left({\bf vInp2Lo}_{c,r,y,l,lp}\right)} = {\bf vTechInpTot}_{c,r,y,l}+{\bf vStorageInpTot}_{c,r,y,l}+{\bf vExport}_{c,r,y,l}+{\bf vTradeIrAInpTot}_{c,r,y,l} \tag{82} \end{equation}\]

eqSupOutTot: Supply total output

\[\begin{equation} \small {\bf vSupOutTot}_{c,r,y,l} = \sum_{u}{\left(\sum_{lp}{\left({\bf vSupOut}_{u,c,r,y,lp}\right)}\right)} \tag{83} \end{equation}\]

eqTechInpTot: Technology total input

\[\begin{equation} \small {\bf vTechInpTot}_{c,r,y,l} = \sum_{h}{\left(\sum_{lp}{\left({\bf vTechInp}_{h,c,r,y,lp}\right)}\right)}+\sum_{h}{\left(\sum_{lp}{\left({\bf vTechAInp}_{h,c,r,y,lp}\right)}\right)} \tag{84} \end{equation}\]

eqTechOutTot: Technology total output

\[\begin{equation} \small {\bf vTechOutTot}_{c,r,y,l} = \sum_{h}{\left(\sum_{lp}{\left({\bf vTechOut}_{h,c,r,y,lp}\right)}\right)}+\sum_{h}{\left(\sum_{lp}{\left({\bf vTechAOut}_{h,c,r,y,lp}\right)}\right)} \tag{85} \end{equation}\]

eqStorageInpTot: Storage total input

\[\begin{equation} \small {\bf vStorageInpTot}_{c,r,y,l} = \sum_{s}{\left({\bf vStorageInp}_{s,c,r,y,l}\right)}+\sum_{s}{\left({\bf vStorageAInp}_{s,c,r,y,l}\right)} \tag{86} \end{equation}\]

eqStorageOutTot: Storage total output

\[\begin{equation} \small {\bf vStorageOutTot}_{c,r,y,l} = \sum_{s}{\left({\bf vStorageOut}_{s,c,r,y,l}\right)}+\sum_{s}{\left({\bf vStorageAOut}_{s,c,r,y,l}\right)} \tag{87} \end{equation}\]

eqCost: Total costs

\[\begin{equation} \small {\bf vTotalCost}_{r,y} = \sum_{h}{\left({\bf vTechEac}_{h,r,y}\right)}+\sum_{h}{\left({\bf vTechOMCost}_{h,r,y}\right)}+\sum_{u}{\left({\bf vSupCost}_{u,r,y}\right)}+\sum_{c,l}{\left(pDummyImportCost_{c,r,y,l}*{\bf vDummyImport}_{c,r,y,l}\right)}+\sum_{c,l}{\left(pDummyExportCost_{c,r,y,l}*{\bf vDummyExport}_{c,r,y,l}\right)}+\sum_{c}{\left({\bf vTaxCost}_{c,r,y}\right)}-\sum_{c}{\left({\bf vSubsCost}_{c,r,y}\right)}+\sum_{s}{\left({\bf vStorageOMCost}_{s,r,y}\right)}+\sum_{s}{\left({\bf vStorageEac}_{s,r,y}\right)}+{\bf vTradeCost}_{r,y}+{\bf vTotalUserCosts}_{r,y} \tag{88} \end{equation}\]

eqTaxCost: Commodity taxes

\[\begin{equation} \small {\bf vTaxCost}_{c,r,y} = \sum_{l}{\left(pTaxCostOut_{c,r,y,l}*{\bf vOutTot}_{c,r,y,l}\right)}+\sum_{l}{\left(pTaxCostInp_{c,r,y,l}*{\bf vInpTot}_{c,r,y,l}\right)}+\sum_{l}{\left(pTaxCostBal_{c,r,y,l}*{\bf vBalance}_{c,r,y,l}\right)} \tag{89} \end{equation}\]

eqSubsCost: Commodity subsidy

\[\begin{equation} \small {\bf vSubsCost}_{c,r,y} = \sum_{l}{\left(pSubCostOut_{c,r,y,l}*{\bf vOutTot}_{c,r,y,l}\right)}+\sum_{l}{\left(pSubCostInp_{c,r,y,l}*{\bf vInpTot}_{c,r,y,l}\right)}+\sum_{l}{\left(pSubCostBal_{c,r,y,l}*{\bf vBalance}_{c,r,y,l}\right)} \tag{90} \end{equation}\]

eqObjective: Objective equation

\[\begin{equation} \small {\bf vObjective} = \sum_{r,y}{\left({\bf vTotalCost}_{r,y}*pDiscountFactorMileStone_{r,y}\right)} \tag{91} \end{equation}\]

eqLECActivity: levelized costs (auxiliary equation)

\[\begin{equation} \small \sum_{l}{\left({\bf vTechAct}_{h,r,y,l}\right)} \ge pLECLoACT_{r} \tag{92} \end{equation}\]