Technical Annex

This section contains technical details of the model.

Naming convention

code name
AGR Agriculture
BAR Barren land
BIO Biomass
BLT Built-up land
COA Coal
COM Commercial & services
CP01 Barley
CP02 Cereals
CP03 Coffee
CP04 Maize
CP05 Oilseeds
CP06 Other crops
CP07 Pulses
CP08 Sorghum
CP09 Tea
CP10 Teff
CP11 Wheat
CRU Crude oil
DSL Diesel
ELC Electricity
ELC_EXP Electricity exports
ELC_IMP Electricity imports
ELC_NET Net electricity imports
EVT Evapotranspiration
FOR Forests
GAS Gas
GEO Geothermal
GRC Groundwater recharge
GRS Grassland & woodland
GSL Gasoline
GWT Groundwater
HFO HFO
HYD Hydro
IND Industry
IRR Irrigation
JET Aviation fuels
JFL Jet fuel
KER Kerosene
LND Land
LNG LNG
LPG LPG
LPG LPG
LVS Livestock
LVSL01 Cattle
LVSL02 Horses
LVSL03 Donkeys/Mules
LVSL04 Camels
LVSL05 Sheep
LVSL06 Pigs
LVSL07 Chicken
LVSPRDALL Livestock
MIG Mining
NAP Naptha
NGS Natural gas
OHC Oil products
OIL Oil
OTH Other uses
PCK Petroleum coke
PCK Petroleum coke
PET Petroleum products
PRC Precipitation
PUB Public supply
PWR Power sector
PWR_WAT Power sector (consumptive use)
PWR_WITH Power sector (withdrawal)
REN Other renewables
RES Residential
SOL Solar
SUR Surface water run-off
TLU Livestock
TRA Transport
URN Nuclear
WAS MSW
WAT Water
WND Wind

Sets

Name Description Index
YEAR It represents the time frame of the model, it contains all the years to be considered in the study. y
TECHNOLOGY It includes any element of the energy system that changes a commodity from one form to another, uses it or supplies it. All system components are set up as a ‘technology’ in OSeMOSYS. As the model is an abstraction, the modeller is free to interpret the role of a technology at will, where relevant. It may for example represent a single real technology (such as a power plant) or can represent a heavily aggregated collection of technologies (such as the stock of several million light bulbs), or may even simply be a ‘dummy technology’, perhaps used for accounting purposes. t
TIMESLICE It represents the time split of each modelled year, therefore the time resolution of the model. Common to several energy systems modelling tools (incl. MESSAGE / MARKAL / TIMES), the annual demand is ‘sliced’ into representative fractions of the year. It is necessary to assess times of the year when demand is high separately from times when demand is low, for fuels that are expensive to store. In order to reduce the computation time, these ‘slices’ are often grouped. Thus, the annual demand may be split into aggregate seasons where demand levels are similar (such as ‘summer, winter and intermediate’). Those seasons may be subdivided into aggregate ‘day types’ (such as workdays and weekends), and the day further sub divided (such as into day and night) depending on the level of demand. l
FUEL It includes any energy vector, energy service or proxies entering or exiting technologies. These can be aggregate groups, individual flows or artificially separated, depending on the requirements of the analysis. f
EMISSION It includes any kind of emission potentially deriving from the operation of the defined technologies. Typical examples would include atmospheric emissions of greenhouse gasses, such as CO2. e
MODE_OF_OPERATION It defines the number of modes of operation that the technologies can have. If a technology can have various input or output fuels and it can choose the mix (i.e. any linear combination) of these input or output fuels, each mix can be accounted as a separate mode of operation. For example, a CHP plant may produce heat in one mode of operation and electricity in another. m
REGION It sets the regions to be modelled, e.g. different countries. For each of them, the supply-demand balances for all the energy vectors are ensured, including trades with other regions. In some occasions it might be computationally more convenient to model different countries within the same region and differentiate them simply by creating ad hoc fuels and technologies for each of them. r
SEASON It gives indication (by successive numerical values) of how many seasons (e.g. winter, intermediate, summer) are accounted for and in which order. ls
  This set is needed if storage facilities are included in the model.  
DAYTYPE It gives indication (by successive numerical values) of how many day types (e.g. workday, weekend) are accounted for and in which order. ld
  This set is needed if storage facilities are included in the model.  
DAILYTIMEBRACKET It gives indication (by successive numerical values) of how many parts the day is split into (e.g. night, morning, afternoon, evening) and in which order these parts are sorted. lh
  This set is needed if storage facilities are included in the model.  
STORAGE It includes storage facilities in the model. s

Parameters

Global parameters  
YearSplit[l,y] Duration of a modelled time slice, expressed as a fraction of the year. The sum of each entry over one modelled year should equal 1.
DiscountRate[r] Region specific value for the discount rate, expressed in decimals (e.g. 0.05)
DaySplit[lh,y] Length of one DailyTimeBracket in one specific day as a fraction of the year (e.g., when distinguishing between days and night: 12h/(24h*365d)).
Conversionls[l,ls] Binary parameter linking one TimeSlice to a certain Season. It has value 0 if the TimeSlice does not pertain to the specific season, 1 if it does.
Conversionld[ld,l] Binary parameter linking one TimeSlice to a certain DayType. It has value 0 if the TimeSlice does not pertain to the specific DayType, 1 if it does.
Conversionlh[lh,l] Binary parameter linking one TimeSlice to a certain DaylyTimeBracket. It has value 0 if the TimeSlice does not pertain to the specific DaylyTimeBracket, 1 if it does.
DaysInDayType[ls,ld,y] Number of days for each day type, within one week (natural number, ranging from 1 to 7)
TradeRoute[r,rr,f,y] Binary parameter defining the links between region r and region rr, to enable or disable trading of a specific commodity. It has value 1 when two regions are linked, 0 otherwise
DepreciationMethod[r] Binary parameter defining the type of depreciation to be applied. It has value 1 for sinking fund depreciation, value 2 for straight-line depreciation.
Demands  
SpecifiedAnnualDemand[r,f,y] Total specified demand for the year, linked to a specific ‘time of use’ during the year.
SpecifiedDemandProfile[r,f,l,y] Annual fraction of energy-service or commodity demand that is required in each time slice. For each year, all the defined SpecifiedDemandProfile input values should sum up to 1.
AccumulatedAnnualDemand[r,f,y] Accumulated Demand for a certain commodity in one specific year. It cannot be defined for a commodity if its SpecifiedAnnualDemand for the same year is already defined and vice versa.
Performance  
CapacityToActivityUnit[r,t] Conversion factor relating the energy that would be produced when one unit of capacity is fully used in one year.
AvailabilityFactor[r,t,y] Capacity available eachTimeSlice expressed as a fraction of the total installed capacity, with values ranging from 0 to 1. It gives the possibility to account for forced outages.
OperationalLife[r,t] Maximum time a technology can run in the whole year, as a fraction of the year ranging from 0 to 1. It gives the possibility to account for planned outages.
ResidualCapacity[r,t,y] Useful lifetime of a technology, expressed in years.
InputActivityRatio[r,t,f,m,y] Capacity available from before the modelling period.
OutputActivityRatio[r,t,f,m,y] Rate of use of a commodity by a technology, as a ratio of the rate of activity.
Technology costs  
CapitalCost[r,t,y] Capital investment cost of a technology, per unit of capacity.
VariableCost[r,t,m,y] Cost of a technology for a given mode of operation (Variable O&M cost), per unit of activity.
FixedCost[r,t,y] Fixed O&M cost of a technology, per unit of capacity.
Storage  
TechnologyToStorage[r,t,s,m] Binary parameter linking a technology to the storage facility it charges. It has value 1 if the technology and the storage facility are linked, 0 otherwise.
TechnologyFromStorage[r,t,s,m] Binary parameter linking a storage facility to the technology it feeds. It has value 1 if the technology and the storage facility are linked, 0 otherwise.
StorageLevelStart[r,s] Level of storage at the beginning of first modelled year, in units of activity.
StorageMaxChargeRate[r,s] Maximum charging rate for the storage, in units of activity per year.
StorageMaxDischargeRate[r,s] Maximum discharging rate for the storage, in units of activity per year.
MinStorageCharge[r,s,y] It sets a lower bound to the amount of energy stored, as a fraction of the maximum, with a number reanging between 0 and 1. The storage facility cannot be emptied below this level.
OperationalLifeStorage[r,s] Useful lifetime of the storage facility.
CapitalCostStorage[r,s,y] Binary parameter linking a technology to the storage facility it charges. It has value 0 if the technology and the storage facility are not linked, 1 if they are.
ResidualStorageCapacity[r,s,y] Binary parameter linking a storage facility to the technology it feeds. It has value 0 if the technology and the storage facility are not linked, 1 if they are.
Capacity constraints  
CapacityOfOneTechnologyUnit[r,t,y] Capacity of one new unit of a technology. In case the user sets this parameter, the related technology will be installed only in batches of the specified capacity and the problem will turn into a Mixed Integer Linear Problem.
TotalAnnualMaxCapacity[r,t,y] Total maximum existing (residual plus cumulatively installed) capacity allowed for a technology in a specified year.
TotalAnnualMinCapacity[r,t,y] Total minimum existing (residual plus cumulatively installed) capacity allowed for a technology in a specified year.
Investment constraints  
TotalAnnualMaxCapacityInvestment[r,t,y] Maximum capacity of a technology, expressed in power units.
TotalAnnualMinCapacityInvestment[r,t,y] Minimum capacity of a technology, expressed in power units.
Activity constraints  
TotalTechnologyAnnualActivityUpperLimit[r,t,y] Total maximum level of activity allowed for a technology in one year.
TotalTechnologyAnnualActivityLowerLimit[r,t,y] Total minimum level of activity allowed for a technology in one year.
TotalTechnologyModelPeriodActivityUpperLimit[r,t] Total maximum level of activity allowed for a technology in the entire modelled period.
TotalTechnologyModelPeriodActivityLowerLimit[r,t] Total minimum level of activity allowed for a technology in the entire modelled period.
Reserve margin  
ReserveMarginTagTechnology[r,t,y] Binary parameter tagging the technologies that are allowed to contribute to the reserve margin. It has value 1 for the technologies allowed, 0 otherwise.
ReserveMarginTagFuel[r,f,y] Binary parameter tagging the fuels to which the reserve margin applies. It has value 1 if the reserve margin applies to the fuel, 0 otherwise.
ReserveMargin[r,y] Minimum level of the reserve margin required to be provided for all the tagged commodities, by the tagged technologies. If no reserve margin is required, the parameter will have value 1; if, for instance, 20% reserve margin is required, the parameter will have value 1.2.
RE Generation target  
RETagTechnology[r,t,y] Binary parameter tagging the renewable technologies that must contribute to reaching the indicated minimum renewable production target. It has value 1 for thetechnologies contributing, 0 otherwise.
RETagFuel[r,f,y] Binary parameter tagging the fuels to which the renewable target applies to. It has value 1 if the target applies, 0 otherwise.
REMinProductionTarget[r,y] Minimum ratio  of all renewable commodities tagged in the RETagCommodity parameter, to be produced by the technologies tagged with the RETechnology parameter.
Emissions  
EmissionActivityRatio[r,t,e,m,y] Emission factor of a technology per unit of activity, per mode of operation.
EmissionsPenalty[r,e,y] Penalty per unit of emission.
AnnualExogenousEmission[r,e,y] It allows the user to account for additional annual emissions, on top of those computed endogenously by the model (e.g. emissions generated outside the region).
AnnualEmissionLimit[r,e,y] Annual upper limit for a specific emission generated in the whole modelled region.
ModelPeriodExogenousEmission[r,e] It allows the user to account for additional emissions over the entire modelled period, on top of those computed endogenously by the model (e.g. generated outside the region).
ModelPeriodEmissionLimit[r,e] Annual upper limit for a specific emission generated in the whole modelled region, over the entire modelled period.

Variables

Demands   Unit
RateOfDemand[r,l,f,y]>=0 Intermediate variable. It represents the energy that would be demanded in one time slice l if the latter lasted the whole year. It is a function of  the parameters SpecifiedAnnualDemand and SpecifiedDemandProfile. Energy
    (per year)
Demand[r,l,f,y]>=0 Demand for one fuel in one time slice. Energy
Storage    
RateOfStorageCharge[r,s,ls,ld,lh,y] Intermediate variable. It represents the commodity that would be charged to the storage facility s in one time slice if the latter lasted the whole year. It is a function of the RateOfActivity and the parameter TechnologyToStorage. Energy
    (per year)
RateOfStorageDischarge[r,s,ls,ld,lh,y] Intermediate variable. It represents the commodity that would be discharged from storage facility s in one time slice if the latter lasted the whole year. It is a function of  the RateOfActivity and the parameter TechnologyFromStorage. Energy
    (per year)
NetChargeWithinYear[r,s,ls,ld,lh,y] Net quantity of commodity charged to storage facility s in year y. It is a function of the RateOfStorageCharge and the RateOfStorageDischarge and it can be negative. Energy
NetChargeWithinDay[r,s,ls,ld,lh,y] Net quantity of commodity charged to storage facility s in daytype ld. It is a function of the RateOfStorageCharge and the RateOfStorageDischarge and can be negative. Energy
StorageLevelYearStart[r,s,y]>=0 Level of stored commodity in storage facility s in the first time step of year y. Energy
StorageLevelYearFinish[r,s,y]>=0 Level of stored commodity in storage facility s in the last time step of year y. Energy
StorageLevelSeasonStart[r,s,ls,y]>=0 Level of stored commodity in storage facility s in the first time step of season ls. Energy
StorageLevelDayTypeStart[r,s,ls,ld,y]>=0 Level of stored commodity in storage facility s in the first time step of daytype ld. Energy
StorageLevelDayTypeFinish[r,s,ls,ld,y]>=0 Level of stored commodity in storage facility s in the last time step of daytype ld. Energy
StorageLowerLimit[r,s,y]>=0 Minimum allowed level of stored commodity in storage facility s, as a function of the storage capacity and the user-defined MinStorageCharge ratio. Energy
StorageUpperLimit[r,s,y]>=0 Maximum allowed level of stored commodity in storage facility s. It corresponds to the total existing capacity of storage facility s (summing newly installed and pre-existing capacities). Energy
AccumulatedNewStorageCapacity[r,s,y]>=0 Cumulative capacity of newly installed storage from the beginning of the time domain to year y. Energy
NewStorageCapacity[r,s,y]>=0 Capacity of newly installed storage in year y. Energy
CapitalInvestmentStorage[r,s,y]>=0 Undiscounted investment in new capacity for storage facility s. Derived from the NewStorageCapacity and the parameter CapitalCostStorage. Monetary units
DiscountedCapitalInvestmentStorage[r,s,y]>=0 Investment in new capacity for storage facility s, discounted through the parameter DiscountRate. Monetary units
SalvageValueStorage[r,s,y]>=0 Salvage value of storage facility s in year y, as a function of the parameters OperationalLifeStorage and DepreciationMethod. Monetary units
DiscountedSalvageValueStorage[r,s,y]>=0 Salvage value of storage facility s, discounted through the parameter DiscountRate. Monetary units
TotalDiscountedStorageCost[r,s,y]>=0 Difference between the discounted capital investment in new storage facilities and the salvage value in year y. Monetary units
Capacity variables    
NumberOfNewTechnologyUnits[r,t,y]>=0, integer Number of newly installed units of technology t in year y, as a function of the parameter CapacityOfOneTechnologyUnit. No unit
NewCapacity[r,t,y]>=0 Newly installed capacity of technology t in year y. Power
AccumulatedNewCapacity[r,t,y]>=0 Cumulative newly installed capacity of technology t from the beginning of the time domain to year y. Power
TotalCapacityAnnual[r,t,y]>=0 Total existing capacity of technology t in year y (sum of cumulative newly installed and pre-existing capacity). Power
Activity variables    
RateOfActivity[r,l,t,m,y] >=0 Intermediate variable. It represents the activity of technology t in one mode of operation and in time slice l, if the latter lasted the whole year. Energy
    (per year)
RateOfTotalActivity[r,t,l,y] >=0 Sum of the RateOfActivity of a technology over the modes of operation. Energy
    (per year)
TotalTechnologyAnnualActivity[r,t,y] >=0 Total annual activity of technology t. Energy
TotalAnnualTechnologyActivityByMode[r,t,m,y] >=0 Annual activity of technology t in mode of operation m. Energy
TotalTechnologyModelPeriodActivity[r,t] Sum of the TotalTechnologyAnnualActivity over the years of the modelled period. Energy
RateOfProductionByTechnologyByMode[r,l,t,m,f,y] >=0 Intermediate variable. It represents the quantity of fuel f that technology t would produce in one mode of operation and in time slice l, if the latter lasted the whole year. It is a function of the variable RateOfActivity and the parameter OutputActivityRatio. Energy
    (per year)
RateOfProductionByTechnology[r,l,t,f,y] >=0 Sum of the RateOfProductionByTechnologyByMode over the modes of operation. Energy
    (per year)
ProductionByTechnology[r,l,t,f,y] >=0 Production of fuel f by technology t in time slice l. Energy
ProductionByTechnologyAnnual[r,t,f,y] >=0 Annual production of fuel f by technology t. Energy
RateOfProduction[r,l,f,y] >=0 Sum of the RateOfProductionByTechnology over all the technologies. Energy
    (per year)
Production[r,l,f,y] >=0 Total production of fuel f in time slice l. It is the sum of the ProductionByTechnology over all technologies. Energy
RateOfUseByTechnologyByMode[r,l,t,m,f,y] >=0 Intermediate variable. It represents the quantity of fuel f that technology t would use in one mode of operation and in time slice l, if the latter lasted the whole year. It is the function of the variable RateOfActivity and the parameter InputActivityRatio. Energy
    (per year)
RateOfUseByTechnology[r,l,t,f,y] >=0 Sum of the RateOfUseByTechnologyByMode over the modes of operation. Energy
    (per year)
UseByTechnologyAnnual[r,t,f,y] >=0 Annual use of fuel f by technology t. Energy
RateOfUse[r,l,f,y] >=0 Sum of the RateOfUseByTechnology over all the technologies. Energy
    (per year)
UseByTechnology[r,l,t,f,y] >=0 Use of fuel f by technology t in time slice l. Energy
Use[r,l,f,y] >=0 Total use of fuel f in time slice l. It is the sum of the UseByTechnology over all technologies. Energy
Trade[r,rr,l,f,y] Quantity of fuel f traded between region r and rr in time slice l. Energy
TradeAnnual[r,rr,f,y] Annual quantity of fuel f traded between region r and rr. It is the sum of the variable Trade over all the time slices. Energy
ProductionAnnual[r,f,y] >=0 Total annual production of fuel f. It is the sum of the variable Production over all technologies. Energy
UseAnnual[r,f,y] >=0 Total annual use of fuel f. It is the sum of the variable Use over all technologies. Energy
Costing variables    
CapitalInvestment[r,t,y] >=0 Undiscounted investment in new capacity of technology t. It is a function of the NewCapacity and the parameter CapitalCost. Monetary units
DiscountedCapitalInvestment[r,t,y] >=0 Investment in new capacity of technology t, discounted through the parameter DiscountRate. Monetary units
SalvageValue[r,t,y] >=0 Salvage value of technology t in year y, as a function of the parameters OperationalLife and DepreciationMethod. Monetary units
DiscountedSalvageValue[r,t,y] >=0 Salvage value of technology t, discounted through the parameter DiscountRate. Monetary units
OperatingCost[r,t,y] >=0 Undiscounted sum of the annual variable and fixed operating costs of technology t. Monetary units
DiscountedOperatingCost[r,t,y] >=0 Annual OperatingCost of technology t, discounted through the parameter DiscountRate. Monetary units
AnnualVariableOperatingCost[r,t,y] >=0 Annual variable operating cost of technology t. Derived from the TotalAnnualTechnologyActivityByMode and the parameter VariableCost. Monetary units
AnnualFixedOperatingCost[r,t,y] >=0 Annual fixed operating cost of technology t. Derived from the TotalCapacityAnnual and the parameter FixedCost. Monetary units
TotalDiscountedCostByTechnology[r,t,y] >=0 Difference between the sum of discounted operating cost / capital cost / emission penalties and the salvage value. Monetary units
TotalDiscountedCost[r,y] >=0 Sum of the TotalDiscountedCostByTechnology over all the technologies. Monetary units
ModelPeriodCostByRegion[r] >=0 Sum of the TotalDiscountedCost over all modelled years. Monetary units
Reserve margin    
TotalCapacityInReserveMargin[r,y] >=0 Total available capacity of the technologies required to provide reserve margin. It is derived from the TotalCapacityAnnual and the parameter ReserveMarginTagTechnology. Energy
DemandNeedingReserveMargin[r,l,y] >=0 Quantity of fuel produced that is assigned to a target of reserve margin. Derived from the RateOfProduction and the parameter ReserveMarginTagFuel. Energy
RE Generation target    
TotalREProductionAnnual[r,y] Annual production by all technologies tagged as renewable in the model. Derived from the ProductionByTechnologyAnnual and the parameter RETagTechnology. Energy
RETotalProductionOfTargetFuelAnnual[r,y] Annual production of fuels tagged as renewable in the model. Derived from the RateOfProduction and the parameter RETagFuel. Energy
Emissions    
AnnualTechnologyEmissionByMode[r,t,e,m,y] >=0 Annual emission of agent e by technology t in mode of operation m. Derived from the RateOfActivity and the parameter EmissionActivityRatio. Quantity of emission
AnnualTechnologyEmission[r,t,e,y] >=0 Sum of the AnnualTechnologyEmissionByMode over the modes of operation. Quantity of emission
AnnualTechnologyEmissionPenaltyByEmission[r,t,e,y] >=0 Undiscounted annual cost of emission e by technology t. It is a function of the AnnualTechnologyEmission and the parameter EmissionPenalty. Monetary units
AnnualTechnologyEmissionsPenalty[r,t,y] >=0 Total undiscounted annual cost of all emissions generatedby technology t. Sum of the AnnualTechnologyEmissionPenaltyByEmission over all the emitted agents. Monetary units
DiscountedTechnologyEmissionsPenalty[r,t,y] >=0 Annual cost of emissions by technology t, discounted through the DiscountRate. Monetary units
AnnualEmissions[r,e,y] >=0 Sum of the AnnualTechnologyEmission over all technologies. Quantity of emission
ModelPeriodEmissions[r,e] >=0 Total system emissions of agent e in the model period, accounting for both the emissions by technologies and the user defined ModelPeriodExogenousEmission. Quantity of emission