TIMESDoc Details
TIMESDoc Details
TIMESDoc Details
http://www.iea-etsap.org/web/Documentation.asp
PART II
April 2005
Authors:
Richard Loulou
Antti Lehtilä
Amit Kanudia
Uwe Remne
Gary Goldstein
1
General Introduction
Part I comprises eight chapters constituting a general description of the TIMES paradigm,
with emphasis on the model’s general structure and its economic significance. Part I also
includes a simplified mathematical formulation of TIMES, a chapter comparing it to the
MARKAL model, pointing to similarities and differences, and chapters describing new
model options.
Part III describes the GAMS control statements required to run the TIMES model. GAMS
is a modeling language that translates a TIMES database into the Linear Programming
matrix, and then submits this LP to an optimizer and generates the result files. In addition
to the GAMS program, two model interfaces (VEDA-FE and VEDA-BE) are used to
create, browse, and modify the input data, and to explore and further process the model’s
results. The two VEDA interfaces are described in detail in their own user’s guides.
2
PART II: REFERENCE MANUAL
3
TABLE OF CONTENTS FOR PART II
1 INTRODUCTION ............................................................................................. 8
1.1 Basic notation and conventions ......................................................................................................... 8
1.2 GAMS modelling language and TIMES implementation ............................................................... 9
2 SETS ............................................................................................................. 10
2.1 Indexes (One-dimensional sets)....................................................................................................... 10
2.2 User input sets .................................................................................................................................. 15
2.2.1 Definition of the Reference Energy System (RES) .................................................................. 15
2.2.1.1 Processes.............................................................................................................................. 16
2.2.1.2 Commodities ........................................................................................................................ 20
2.2.2 Definition of the time structure ................................................................................................ 20
2.2.2.1 Time horizon........................................................................................................................ 20
2.2.2.2 Timeslices ............................................................................................................................ 22
2.2.3 Multi-regional models .............................................................................................................. 23
2.2.4 Overview of all user input sets ................................................................................................. 26
2.3 Definition of internal sets ................................................................................................................ 32
3 PARAMETERS .............................................................................................. 38
3.1 User input parameters ..................................................................................................................... 38
3.1.1 Inter- and extrapolation of user input parameters ..................................................................... 38
3.1.2 Inheritance and aggregation of timesliced input parameters .................................................... 42
3.1.3 Overview of user input parameters ........................................................................................... 44
3.2 Internal parameters ....................................................................................................................... 107
3.3 Report parameters ......................................................................................................................... 118
4
4.11.8 ELASTCOST(r,y) .................................................................................................................. 133
4.11.9 LATEREVENUES(r,y) .......................................................................................................... 133
4.11.10 SALVAGE(r,y0) ..................................................................................................................... 133
4.12 VAR_SIN/SOUT(r,v,t,p,c,s) .......................................................................................................... 134
4.13 Variables used in User Constraints .............................................................................................. 134
4.13.1 VAR_UC(uc_n)...................................................................................................................... 134
4.13.2 VAR_UCR(uc_n,r)................................................................................................................. 135
4.13.3 VAR_UCT(uc_n,t) ................................................................................................................. 135
4.13.4 VAR_UCRT(uc_n,r,t) ............................................................................................................ 135
4.13.5 VAR_UCTS(uc_n,t,s) ............................................................................................................ 135
4.13.6 VAR_UCRTS(uc_n,r,t,s) ....................................................................................................... 135
4.13.7 VAR_UCSU(uc_n,t) .............................................................................................................. 135
4.13.8 VAR_UCSUS(uc_n,t,s) .......................................................................................................... 135
4.13.9 VAR_UCRSUS(r,uc_n,r,t,s) .................................................................................................. 135
4.13.10 VAR_UCRSU(uc_n,r,t) ......................................................................................................... 135
5
5.3.17 Equations: EQ(l)_INSHR, EQ(l)_OUTSHR .......................................................................... 227
5.3.18 Equation: EQ_PEAK .............................................................................................................. 223
5.3.19 Equation: EQ_PTRANS ......................................................................................................... 226
5.3.20 Equation: EQ_STGTSS/IPS ................................................................................................... 229
5.3.20.1 EQ_SRGTSS: Storage between timeslices (including night-storage devices): ................. 230
5.3.20.2 EQ_STGIPS: Storage between periods ............................................................................. 231
5.3.21 Equations: EQ(l)_STGIN / EQ(l)_STGOUT ......................................................................... 232
5.3.22 User Constraints ..................................................................................................................... 233
5.3.22.1 Equation: EQ(l)_UC / EQE_UC........................................................................................ 247
5.3.22.2 Equation: EQ(l)_UCR / EQE_UCR .................................................................................. 248
5.3.22.3 Equation: EQ(l)_UCT / EQE_UCT ................................................................................... 249
5.3.22.4 Equation: EQ(l)_UCRT / EQE_UCRT ............................................................................. 250
5.3.22.5 Equation: EQ(l)_UCRTS / EQE_UCRTS ......................................................................... 251
5.3.22.6 Equation: EQ(l)_UCTS / EQE_UCTS .............................................................................. 252
5.3.22.7 Equation: EQ(l)_UCSU / EQE_UCSU ............................................................................. 260
5.3.22.8 Equation: EQ(l)_UCRSU / EQE_UCRSU ........................................................................ 262
5.3.22.9 Equation: EQ(l)_UCRSUS / EQE_UCRSU ...................................................................... 264
5.3.22.10 Equation: EQ(l)_UCSUS / EQE_UCSUS ....................................................................... 266
5.3.22.11 Equation: EQ(l)_UCSU / EQE_UCSU ........................................................................... 271
5.3.22.12 Equation: EQ(l)_UCRSU / EQE_UCRSU ...................................................................... 273
5.3.22.13 Equation: EQ(l)_UCRSUS / EQE_UCRSU .................................................................... 275
5.3.22.14 Equation: EQ(l)_UCSUS / EQE_UCSUS ....................................................................... 277
6
7.4 Climate Equations .......................................................................................................................... 310
7.4.1 Equation: EQ_CO2TOT ......................................................................................................... 310
7.4.2 Equation: EQ_CO2ATM ........................................................................................................ 311
7.4.3 Equation: EQ_CO2UP............................................................................................................ 312
7.4.4 Equation: EQ_CO2LOW ........................................................................................................ 313
7.4.5 Equation: EQ_MXCONC ....................................................................................................... 315
7.5 Reporting Parameters.................................................................................................................... 316
7.5.1 DT_FORC .............................................................................................................................. 316
7.5.2 DT_ATM ................................................................................................................................ 317
7.5.3 DT_LOW ............................................................................................................................... 318
7.6 Default values of the climate parameters ..................................................................................... 320
7.7 GAMS implementation .................................................................................................................. 321
7.7.1 Specification of parameters .................................................................................................... 321
7.7.2 Climate related Variables ....................................................................................................... 323
7.7.3 Equations ................................................................................................................................ 323
7.7.4 Example of use ....................................................................................................................... 324
7.7.5 Exporting results to VEDA4................................................................................................... 324
7.8 References for chapter 7 ................................................................................................................ 325
7
1 Introduction
The purpose of the Reference Manual is to lay out the full details of the TIMES model,
including data specification, internal data structures, and mathematical formulation of the
model’s Linear Program (LP) formulation, as well as the Mixed Integer Programming (MIP)
formulations required by some of its options. As such, it provides the TIMES
modeller/programmer with sufficiently detailed information to fully understand the nature and
purpose of the data components, model equations and variables. A solid understanding of the
material in this Manual is a necessary prerequisite for anyone considering making
programming changes in the TIMES source code.
• Sets, and their associated index names, are in lower and bold case, e.g., com is the set
of all commodities;
• Literals, explicitly defined in the code, are in upper case within single quotes, e.g.,
‘UP’ for upper bound;
• Parameters, and scalars (constants, i.e., un-indexed parameters) are in upper case, e.g.,
NCAP_AF for the availability factor of a technology;
• Variables are in upper case with a prefix of VAR_, e.g., VAR_ACT corresponds to the
activity level of a technology.
• Equations are in upper case with a prefix of EQ_ or EQ(l)_ with the placeholder (l)
denoting the equation type (l=E for a strict equality, l=L for an inequality with the left
8
hand side term being smaller or equal the right hand side term and l=G for an
inequality with the left hand side term being greater or equal the right hand side
term),e.g., EQ_COMBAL is the commodity balance constraint, and
1
GAMS A User’s Guide, A. Brooke, D. Kendrick, A. Meeraus, R. Raman, GAMS
Development Corporation, December 1998.
9
2 Sets
Sets are used in TIMES to group elements or combinations of elements with the purpose of
specifying qualitative characteristics of the energy system. One can distinguish between one-
dimensional and multi-dimensional sets. The former sets contain single elements, e.g. the set
prc contains all processes of the model, while the elements of multi-dimensional sets are a
combination of one-dimensional sets. An example for a multi-dimensional set is the set top,
which specifies for a process the commodities entering and leaving that process.
Two types of sets are employed in the TIMES framework: user input sets and internal sets.
User input sets are created by the user, and used to describe qualitative information and
characteristics of the depicted energy system. One can distinguish the following functions
associated with user input sets:
• definition of the elements or building blocks of the energy system model (i.e. regions,
processes, commodities),
• definition of the time horizon and the sub-annual time resolution,
• definition of special characteristics of the elements of the energy system.
In addition to these user sets, TIMES also generates its own internal sets. Internal sets
serve to both ensure proper exception handling (e.g., from what date is a technology available,
or in which time-slices is a technology permitted to operate), as well as sometimes just to
improve the performance or smooth the complexity of the actual model code.
In the following sections, the user input sets and the internal sets will be presented. A
special type of set is an one-dimensional set, also called index, which is needed to build multi-
dimensional sets or parameters. At the highest level of the one-dimensional sets are the master
or “domain” sets that define the comprehensive list of elements (e.g., the main building
blocks of the reference energy system such as the processes and commodities in all regions)
permitted at all other levels, with which GAMS performs complete domain checking, helping
to automatically ensure the correctness of set definition (for instance, if the process name used
in a parameter is not spelled correctly, GAMS will issue a warning). Therefore, before
elaborating on the various sets, the indexes used in TIMES are discussed.
11
Table 2: Indexes in TIMES
Related
Index 4 Aliases 5 Description
Indexes 6
age Index for age (number of years since installation) into
a parameter shaping curve; default elements 1-200.
all_r all_reg r All internal and external regions.
bd bnd_type lim Index of bound type; subset of lim, having the
internally fixed elements ‘LO’, ‘UP’, ‘FX’.
c com, cg User defined 7 list of all commodities in all regions;
com1, subset of cg.
com2,
com3
cg com_grp, c User defined list of all commodities and commodity
cg1, cg2, groups in all regions 8; each commodity itself is
cg3, cg4 considered a commodity group; initial elements are the
members of com_type.
com_typ Indicator of commodity type; initialized to the
e elements DEM (demand), NRG (energy), MAT
(material), ENV (environment), FIN (financial), but
the user can define any list for com_type in
MAPLIST.DEF with the exception of the predefined
elements DEM, ENV, FIN, MAT, NRG.
cur cur User defined list of currency units.
datayear y Years for which model input data are specified.
ie impexp Export/import exchange indicator; internally fixed =
‘EXP’ for exports and ‘IMP’ for imports.
io inout Input/Output indicator for defining whether a
commodity flow enters or leaves a process; internally
fixed = ‘IN’ for enters and ‘OUT’ for leaves.
j Indicator for elastic demand steps and sequence
number of the shape/multi curves; default elements 1-
50.
kp Index for “kink” points in ETL formulation; currently
limited to 1-6 {can be extended in <case>.run file by
including SET KP / 1*n /; for n-kink points.
lim lim_type, l, bd Index of limit types; internally fixed = ‘LO’, ‘UP’,
ll ‘FX’ and ‘N’.
p prc User defined list of all processes in all regions 9.
4
This column contains the names of the indexes as used in this document.
5
For programming reasons, alternative names (aliases) may exist for some indexes. This
information is only relevant for those users who are interested in gaining an understanding of
the underlying GAMS code.
6
This column refers to possible related indexes, e.g. the index c is a subset of the index
cg.
7
VEDA compiles the complete list from the union of the commodities defined in each
region.
8
VEDA complies the complete list from the union of the commodity groups defined in
each region.
9
VEDA complies the complete list from the union of the processes defined in each region.
12
Related
Index 4 Aliases 5 Description
Indexes 6
pastyear pyr modlyear,y Years for which past investments are specified;
pastyears must be before the beginning of the first
period.
prc_grp List of process groups; internally established in
MAPLIST:DEF as:
CHP: combined heat and power plant
DISTR: distribution process
DMD: demand device
ELE: electricity producing technology excluding
CHP
HPL: heat plant
MISC: miscellaneous
PRE: technology with energy output not falling
in the group of the other energy
technologies
REF: refinery process
RENEW: renewable energy technology
XTRACT: extraction process.
13
Related
Index 4 Aliases 5 Description
Indexes 6
uc_name The list of indicators associated with various attributes
that can be referenced in user constraints to be applied
when deriving a coefficient (e.g. the flow variable may
be multiplied by the attribute FLO_COST to represent
expenditure associated with said flow in a user
constraint if desired): =
‘ACT_COST’, ‘ACT_BNDUP’, ‘ACT_BNDLO’,
‘ACT_BNDFX’, ‘CAP_BNDUP’, ‘CAP_BNDLO’,
‘CAP_BNDFX’, ‘GROWTH’, ‘FLO_COST’,
‘FLO_DELIV’, ‘FLO_SUB’, ‘FLO_TAX’,
‘NCAP_COST’, ‘NCAP_ITAX’, ‘NCAP_ISUB’.
unit List of capacity blocks that can be added in lumpy
investment option; default elements 0-100; the element
‘0’ describes the case when no capacity is added.
units_act u List of activity units; maintained in the file
UNITS.DEF.
units_cap u List of capacity units; maintained in the file
UNITS.DEF.
units_co u List of commodity units; maintained in the file
m UNITS.DEF.
v modlyear pastyear, t Union of the set pastyear and t corresponding to all
modelling periods.
y allyear, k, datayear, Years that can be used in the model; default range
ll pastyear, 1850-2200; under user control by the dollar control
modlyear, parameters $SET BOTIME yyyy and $SET EOTIME
milestonyr in the <case>.RUN file.
14
2.2 User input sets
The user input sets contain the fundamental information regarding the structure and the
characteristics of the underlying energy system model. The user input sets can be grouped
according to the type of information related to them:
• One dimensional sets defining the components of the energy system: regions,
commodities, processes;
• Sets defining the Reference Energy System (RES) within each region;
• Sets defining the inter-connections (trade) between regions;
• Sets defining the time structure of the model;
• Sets defining various properties of processes or commodities.
The formulation of user constraints also uses sets to specify the type and the features of a
constraint. The structure and the input information required to construct a user constraint is
covered in detail in Chapter 5, and therefore will not be presented here.
In the following subsections first the sets related to the definition of the RES will be
described (subsection 2.2.1), then the sets related to the time horizon and the sub-annual
representation of the energy system will be presented (subsection 2.2.2). The mechanism of
defining trade between regions of a multi-regional model is discussed in subsection 2.2.3.
Finally, an overview of all possible user input sets is given in subsection 2.2.4.
A TIMES model is structured by regions (all_r). One can distinguish between external
regions and internal regions. The internal regions (r) correspond to regions within the area of
study, and for which an RES has been defined by the user. Each internal region may contain
processes and commodities to depict an energy system, whereas external regions serve only as
origins of commodities (e.g. for import of primary energy resources or for the import of
energy carriers) or as destination for the export of commodities. A region is defined as an
internal region by putting it in the internal region set (r), which is a subset of the set of all
regions all_r. An external region needs no explicit definition, all regions that are member of
the set all_r but not member of r are external regions. A TIMES model must consist of at
least one internal region, the number of external regions is arbitrary. The main building blocks
of the RES are processes (p) and commodities (c), which are connected by commodity flows
to form a network. An example of an RES with one internal region (UTOPIA) and two
external regions (IMPEXP, MINRNW) is given in Figure 1.
All components of the energy system, as well as nearly the entire input information,
are identified by a region index. It is therefore possible to use the same process name in
different regions with different numerical data (and description if desired), or even completely
different commodities associated with the process.
15
External regions
Internal region
UTOPIA
RHE
E21
RL1
SRE
RHO
E31
TXD
E70
TXE
MINRNW
TXG
2.2.1.1 Processes
A process may represent an individual plant, e.g. a specific existing nuclear power plant, or a
generic technology, e.g. the coal-fired IGCC technology. TIMES distinguishes three main
types of processes:
• Standard processes;
• Inter-regional exchange processes, and
• Storage processes.
16
via the set prc_map(r,prc_grp,p). This grouping does not affect the properties of the
standard processes 10 or the matrix, but is intended for reporting purposes. The set is
maintained in the MAPLIST.DEF file, and may be adjusted by user into any list of disjoint
technology groups of interest, with some restrictions as noted in Table 1.
The topology of a standard process is specified by the set top(r,p,c,io) of all quadruples
such that the process p in region r is consuming (io = ’IN’) or producing (io = ‘OUT’)
commodity c. Usually, for each entry of the topology set top a flow variable (see VAR_FLO
in Chapter 4) will be created. When the so-called reduction algorithm is activated, some flow
variables may be eliminated and replaced by other variables (see PART III, chapter 4).
The activity variable (VAR_ACT) of a standard process is equal to the sum of one or
several commodity flows on either the input or the output side of a process. The activity of a
process is limited by the available capacity, so that the activity variable establishes a link
between the installed capacity of a process and the maximum possible commodity flows
entering or leaving the process during a year or a subdivision of a year. The commodity flows
that define the process activity are specified by the set prc_actunt(r,p,cg,u) where the
commodity index cg may be a single commodity or a user-defined commodity group. The
commodity group defining the activity of a process is also called Primary Commodity Group
(PCG).
Diesel Gasoline
Oil
Commodity group
OIL CG_SRE DSL GSL
Activity in PJ
Definition of
process activity PRC_ACTUNT(r,p,cg,u) = {UTOPIA.SRE.CG_SRE.PJ}
10
The only exceptions are material processing technologies of type PRW or PRV where
the grouping may affect the creation of the internal set prc_spg (see Table 4).
17
In addition to the activity of a process, one has to define the capacity unit of the process.
This is done by means of the set prc_capunt(r,p,cg,u), where the index cg denotes the
primary commodity group. In the example in Figure 3 the capacity of the refinery process is
defined in mtoe/a (megatonne oil equivalent). Since the capacity and activity units are
different (mtoe for the capacity and PJ for the activity), the user has to supply the conversion
factor from the energy unit embedded in the capacity unit to the activity unit. This is done by
specifying the parameter prc_capact(r,p). In the example prc_capact has the value 41.868.
Diesel Gasoline
Oil
Commodity group
OIL CG_SRE DSL GSL
Activity in PJ
Capacity in
mtoe/a
Definition of
capacity unit PRC_CAPUNT(r,p,cg,u) = {UTOPIA.SRE.CG_SRE.MTOE}
DSL TX1
Activity in „vehicle
kilometers“ VKM Commodity unit
„Passenger
kilometers“ PKM
Car
CAR
Capacity in „# of cars“
NOC
18
The conversion factor from capacity to activity unit prc_capact describes the average
mileage of a car per year. The process arameter prc_actflo(r,y,p,cg) contains the conversion
factor from the activity unit to the commodity unit of the primary commodity group. In the
example this factor corresponds to the average number of persons per car (1.5).
The first pair of region and commodity (‘FRA’,’ELC_F’) denotes the origin and the name of
the traded commodity, while the second pair (‘GER’,’ELC_G’) denotes the destination. The
name of the traded commodity can be different in both regions, here ‘ELC_F’ in France and
‘ELC_G in Germany, depending on the chosen commodity names in both regions. As with
standard processes, the activity definition set prc_actunt(r,p,cg,u) has to be specified for an
exchange process belonging to each internal region. The special features related to inter-
regional exchange processes are described in subsection 2.2.3.
19
Based on the storage characterization given by prc_stgips, prc_stgtss or prc_nstts for a
process p, internally a prc_map(r,’STG’,p) entry is generated to put the process in the group
of the storage processes. A further prc_map entry is created to specify the type of storage
(‘STK’ for inter-operiod storage, ‘STS’ for time-slice storage and ‘NST’ for a night-storage
device).
2.2.1.2 Commodities
As mentioned before the set of commodities ( c ) is a subset of the commodity group set (cg).
A commodity in TIMES is characterised by its type, which may be an energy carrier (‘NRG’),
a material (‘MAT’), an emission --or environmental impact (‘ENV’), a demand commodity
(‘DEM’) or a financial resource (‘FIN’). The commodity type is indicated by membership in
the commodity type mapping set (com_tmap(r,com_type,c)). The commodity type affects
the default sense of the commodity balance equation. For NRG, ENV and DEM the
commodity production is normally greater than or equal to consumption, while for MAT and
FIN the default commodity balance constraint is generated as an equality. The type of the
commodity balance can be modified by the user for individual commodities by means of the
commodity limit set (com_lim(r,c,lim)). The unit in which a commodity is measured is
indicated by the commodity unit set (com_unit(r,c,units_com)). The user should note that
within the GAMS code of TIMES no unit conversion, e.g., of import prices, takes place when
the commodity unit is changed from one unit to another one. Therefore, the proper handling
of the units is entirely the responsibility of the user (or the user interface).
20
pastyears are by default included in datayears, but, as a general rule, any other years for which
input data is provided should be explicitly included in the set datayear or that information
will not be seen by the model. Apart from a few exceptions (see Table 3), all parameter values
defined for years other than datayears (or pastyears) are ignored by the model generator. Due
to the distinction between of modelyears and datayears, the definition of the model horizon,
e.g., the duration and number of the periods, may be changed without having to adjust the
input data to the new periods. The rules and options of the inter- and extrapolation routine are
described in more detail in subection 3.1.1.
Model horizon
1st period
99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
Pastyear
Milestoneyears
Modelyears
Datayears
Figure 5: Definition of the time horizon and the different year types
One should note that it is possible to define past investments (NCAP_PASTI) not only for
pastyears but also for milestoneyears. Since the first period(s) of a model may cover historical
data, it is useful to store the already known capacity installations made during this time-span
as past investments and not as a bound on new investments in the model database. If one later
changes the beginning of the model horizon to a more recent year, the capacity data of the
first period(s) do not have to be changed, since they are already stored as past investments.
This feature therefore supports the decoupling of the datayears, for which input information is
provided, and the definition of the model horizon for which the model is run, making it
relatively easy to change the definition of the modeling horizon. The use of past investments
for milestoneyears is also useful to identify already planned (although not yet constructed)
capacity expansions in the near future 11.
11
In this case the model may still decide to add additional new capacity, if this is
economical and not inhibited by any investment bounds.
21
Table 3: Parameters that can have values defined for any year, irrespective of
datayear 12
Attribute name Description
G_DRATE General discount rate for currency in a particular year
G_CHNGMONY Exchange rate for currency in a particular year
MULTI Parameter multiplier table with values by year
COM_CUMPRD Cumulative limit on gross production of a commodity for a
block of years
COM_CUMNET Cumulative limit on net production of a commodity for a block
of years
CM_HISTORY Climate module calibration values; not part of the standard
TIMES code, but included in the climate module extension
(see chapter 7 for a description of the climate module).
2.2.2.2 Timeslices
The milestoneyears can be further divided in sub-annual timeslices in order to describe for
the changing electricity load within a year which may affect the required electricity generation
capacity, or other commodity flows that need to be tracked at a finer than annual resolution.
Timeslices may be organised into four hierarchy levels only: ‘ANNUAL’, ‘SEASON’,
‘WEEKLY’ and ‘DAYNITE’ defined by the internal set tslvl. The level ANNUAL consists
of only one member, the predefined timeslice ‘ANNUAL,’ while the other levels may include
an arbitrary number of divisions. The desired timeslice levels are activated by the user
providing entries in set ts_group(r,tslvl,s), where also the individual user-provided timeslices
(s) are assigned to each level. An additional user input set ts_map(r,s1,s2) is needed to
determine the structure of a timeslice tree, where timeslice s1 is defined as the parent node of
s2. Figure 6 illustrates a timeslice tree, in which a year is divided into four seasons consisting
of working days and weekends, and each day is further divided into day and night timeslices.
The name of each timeslice has to be unique in order to be used later as an index in other sets
and parameters. Not all timeslice levels have to be utilized when building a timeslice tree, for
example one can skip the ‘WEEKLY’ level and directly connect the seasonal timeslices with
the daynite timeslices. The duration of each timeslice is expressed as a fraction of the year by
the parameter G_YRFR(r,s). The user is responsible for ensuring that each lower level group
sums up properly to its parent timeslice, as this is not verified by the pre-processor. The
definition of a timeslice tree is region-specific. When different timeslice names and durations
are used in two regions, which are connected by an exchange process, the mapping
parameters IRE_CCVT(r,c,reg,com) for commodities and IRE_TSCVT(r,s,reg,ts) for
timeslices have to be provided by the user to map the different timeslice definitions. When the
same timeslice definitions are used, these mapping tables do not need to be specified by the
user.
12
The purpose of this table is to list those parameters whose year values are independent
of the input datayears associated with most of the regular parameters, and therefore should
not be specified for datayears. For example, a value for MULTI(j,'2012') would not include
2012 in datayears if 2012 were not relevant to the other input parameters.
22
Figure 6: Example of a timeslice tree
23
B from region A, possibly adjusted for transportation losses). The basic structure is shown in
Figure 7. Bi-lateral trading may be fully described in TIMES by defining an inter-regional
exchange process and by specifying the two pair-wise connections by indicating the regions
and commodities be traded via the set top_ire(r,c,reg,com,p). If trade should occur only in
one direction then only that direction is provided in the set top_ire (export from region r into
region reg). The process capacity and the process related costs (e.g. activity costs, investment
costs) of the exchange process can be described individually for both regions by specifying
the corresponding parameters in each regions. If for example the investment costs for an
electricity line between two regions A and B are 1000 monetary units (MU) per MW and 60
% of these investment costs should be allocated to region A and the remaining 40 % to region
B, the investment costs for the exchange process have to be set to 600 MU/MW in region A
and to 400 MU/MW in region B.
Region A Region B
com com
Inter-regional
exchange process
Bi-lateral trade is the most detailed way to specify trade between regions. However, there
are cases when it is not important to fully specify the pair of trading regions. In such cases,
the so-called multi-lateral trade option decreases the size of the model while preserving
enough flexibility. Multi-lateral trade is based on the idea that a common marketplace exists
for a traded commodity with several supplying and several consuming regions for the
commodity, e.g. for crude oil or GHG emission permits. To facilitate the modelling of this
kind of trade scheme the concept of marketplace has been introduced in TIMES. To model a
marketplace first the user has to identify one internal region that participates both in the
production and consumption of the traded commodity. Then only one exchange process is
used to link the supply and demand regions with the marketplace region using the set
top_ire. 13
The following example illustrates the modelling of a marketplace in TIMES. Assume that
we want to set up a market-based trading where the commodity CRUD can be exported by
regions A, B, C, and D, and that it can be imported by regions C, D, E and F (Figure 8).
13
Note however that some flexibility is lost when using multilateral trade. For instance, it
is not possible to express transportation costs in a fully accurate manner, if such cost depends
upon the precise pair of trading regions in a specific way
24
Supply Demand
regions regions
Region A Region D
Region D Region F
The same region may occur on
the supply and demand side.
SET PRC / XP /;
SET TOP_IRE /
A .CRUD .C .CRUD .XP
B .CRUD .C .CRUD .XP
D .CRUD .C .CRUD .XP
C .CRUD .D .CRUD .XP
C .CRUD .E .CRUD .XP
C .CRUD .F .CRUD .XP
/;
To complete the RES definition of the exchange process, only the set prc_actunt(r,p,c,u)
is needed to define the units for the exchange process XP in all regions:
SET PRC_ACTUNT /
A .XP .CRUD .PJ
B .XP .CRUD .PJ
C .XP .CRUD .PJ
D .XP .CRUD .PJ
E .XP .CRUD .PJ
F .XP .CRUD .PJ
/;
These definitions are sufficient for setting up of the market-based trade. Additionally, the
user can of course specify various other data for the exchange processes, for example
investment and distribution costs, and efficiencies.
25
2.2.4 Overview of all user input sets
All the input sets which are under user control in TIMES are listed in Table 4. For a few sets
default settings exist that are applied if no user input information is given. Set names starting
with the prefix ‘com_’ are associated with commodities, the prefix ‘prc_’ denotes process
information and the prefix ‘uc_’ is reserved for sets related to user constraints. Column 3 of
Table 3 is a description of each set. In some cases (especially for complex sets), two
(equivalent) descriptions may be given, the first in general terms, followed by a more precise
description within square brackets, given in terms of n-tuples of indices.
Remark
An example will illustrate this important point: consider the 4-dimensional set top, having
indexes r,p,c,io (see table 3 for its precise description). If some quantity A(r,p,c,io) must be
enumerated for all values of the third index (c=commodity) and of the last index
(io=orientation), but summed over all processes (p) and regions (r), this will be
mathematically denoted:
It is thus understood from the indexes listed in the name of the expression (c,io), that these
two indexes are being enumerated, and thus, by deduction, only r and p are being summed
upon. Thus the expression calculates the total of A for each commodity c, in each direction io
(‘IN’ and ‘OUT’), summed over all processes and regions.
Another example illustrates the case of nested summations, where index r is enumerated in
the inner summation, but is summed upon in the outer summation. Again here, the expression
is made unambiguous by observing the positions of the different indexes (for instance, the
outer summation is done on the r index)
EXPRESSION 2 c ,io = ∑
r , p ,c ,io∈top
B(r )∑ A(r , p )
p
26
Table 4: User input sets in TIMES
Set ID/Indexes 14 Alias 15 Description
all_reg all_r Set of all regions, internal as well as external ; a region is
defined as internal by putting it in the internal region set (r),
regions that are not member of the internal region set are per
definition external.
c com, com1, User defined list of all commodities in all regions; subset of
com2, com3 cg.
cg com_grp, User defined list of all commodities and commodity groups
cg1, cg2, (see Figure 2) in all regions.
cg3, cg4
clu Set of cluster technologies in endogenous technology
(p) learning.
cluster Indicator that technology teg is a learning component that
(r,teg,prc) may be part of several technologies prc; teg is also called
key component [set of triplets {r,teg,prc} such that learning
component teg is part of technology prc in region r]. 16
com_gmap Mapping of commodity c to user-defined commodity group
(r,cg,c) cg, including itself [set of triplets {r,cg,c} such that
commodity c in in group cg in region r].
com_lim Definition of commodity balance equation type [set of
(r,c,lim) triplets {r,c,lim}such that commodity c has a balance of
type lim (lim=’UP’,’LO’,’EQ’) in region r]; Default: for
commodities of type NRG, DM and ENV production is
greater or equal consumption, while for MAT and FIN
commodities the balance is a strict equality.
com_off Specifying that the commodity c in region r is not available
(r,c,y1,y2) between the years y1 and y2 [set of quadruplets {r,c,y1,y2}
such that commodity c is unavailable from years y1 to y1 in
region r] ; note that y1 may be ‘BOH’ for the first year of
the first period and y2 may be ‘EOH’ for the last year of the
last period.
com_peak set of pairs {r,cg} such that a peaking constraint is to be
(r,cg) generated for commodity cg in region r; note that the
peaking equation can be generated for a single commodity
(cg also contains single commodities c) or for a group of
commodities, e.g. electricity commodities differentiated by
voltage level.
14
The first row contains the set name. If the set is a one-dimensional subset of another set,
the second row contains the parent set in brackets. If the set is a multi-dimensional set, the
second row contains the index domain in brackets.
15
For programming reasons, alternative names (aliases) may exist for some indexes. This
information is only relevant for those users who are interested in gaining an understanding of
the underlying GAMS code.
16
For multidimensional sets such as this one, two definityions are sometimes given, one
as an indicator function or mapping, the other (in square brackets) as a set of n-tuples.
27
Set ID/Indexes 14 Alias 15 Description
com_pkts Set of triplets {r,cg,s} such that a peaking constraint for a
(r,cg,s) single commodity or a group of commodities cg (e.g. if the
model differentiates between three electricity commodities:
electricity on high, middle and low voltage ) is to be
generated for the timeslice s; Default: all timeslices of
com_ts; note that the peaking constraint will be binding
only for the timeslice with the highest load.
com_tmap Mapping of commodities to the main commodity types (see
(r,com_type,c) com_type); [set of triplets {r,com_type,c} such that
commodity c has type com_type];
com_ts Set of triplets {r,c,s}such that commodity c is available in
(r,c,s) timeslice s in region r; commodity balances will be
generated for the given timeslices; Default: all timeslices of
timeslice level specified by com_tsl.
com_tsl Set of triplets {r,c,tslvl} such that commodity c is modelled
(r,c,tslvl) on the timeslice level tslvl in region r; Default: 'ANNUAL
timeslice level.
com_unit Set of triplets {r,c,units_com} such that commodity c is
(r,c,units_com) expressed in unit units_com in region r.
cur User defined list of currency units.
datayear Years for which model input data are to be taken; No
default.
p prc User defined list of all processes in all regions
pastyear pyr Years for which past investments are specified; pastyears
have to lie before the beginning of the first period; No
default.
prc_actunt Definition of activity [Set of quadruples such that the
(r,p,cg,units_act) commodity group cg is used to define the activity of the
process p, with units units_act, in region r].
prc_aoff Set of quadruples {r,p,y1,y2} such that process p cannot
(r,p,y1,y2) operate (activity is zero) between the years y1 and y2 in
region r; note that y1 may be ‘BOH’ for first year of first
period and y2 may be ‘EOH’ for last year of last period.
prc_capunt Definition of capacity unit of process p [set of quadruples
(r,p,cg,units_cap) {r,p,cg,units_cap}such that process p uses commodity
group cg and units units_cap to define its capacity in region
r].
prc_cg User defined commodity groups (cg) associated with a
(r,p,cg) process p [set of triplets {r,p,cg} such that commodity
group cg has been defined for process p in region r]; note:
the same commodity group can be used for several
processes.
prc_dscncap Set of processes p to be modelled using the lumpy
(r,p) investment formulation in region r; Default: empty set. If p
is not in this set, then any lumpy investment parameters
provided for p are ignored.
28
Set ID/Indexes 14 Alias 15 Description
prc_foff Set of sextuples specifying that the flow of commodity c at
(r,p,c,s,y1,y2) process p and timeslice s is not available between the years
y1 and y2 in region r; note that y1 may be ‘BOH’ for first
year of first period and y2 may be ‘EOH’ for last year of last
period.
prc_grp List of process groups, used strictly for reporting purposes;
Default list of groups (defined in MAPLIST.DEF) is shown
in section 2.2.1.
prc_map Grouping of processes into process groups (prc_grp) [set of
(r,prc_grp,p) triplets {r,prc_grp,p} such that process p belongs to group
prc_grp in region r]. Note: used strictly for reporting
purposes.
prc_noff Set of quadruples {r,p,y1,y2} such that new capacity of
(r,p,y1,y2) process p cannot be installed between the years y1 and y2 in
region r; note that y1 may be ‘BOH’ for first year of first
period and y2 may be ‘EOH’ for last year of last period.
prc_nstts Set of triplets {r,p,s} such that process p is a night storage
(r,p,s) device with charging timeslices s in region r; note that for
night storage devices the commodity entering and the
commodity leaving the storage may be different, as defined
via the set top.
prc_pkaf Set of pairs {all_r,p} such that the availability factor
(all_r,p) (ncap_af) is to be used as value for the fraction of capacity
of process p that can contribute to the peaking constraints
(ncap_pkcnt), in region r.
prc_pkno Set of pairs {all_r,p}such that process p cannot be used in
(all_r,p) the peaking constraints in region r.
prc_stgips Set of triplets {r,p,c}such that process p is an inter-period
(r,p,c) storage for the commodity c in region r; note that the
commodity c entering and leaving the storage is the same, so
the set top is not used for this type of process.
prc_stgtss Set of triplets {r,p,c}such that process p is a storage process
(r,p,c) between timeslices (e.g., seasonal hydro reservoir, day/night
pumped storage) for commodity c in region r; note that the
storage process operates for the timeslices specified by
prc_ts; the same commodity c enters and leaves the storage
so the set top is not used for this type of process.
prc_ts prc_ts2 Set of triplets {all_r,p,s} such that process p can operate at
(all_r,p,s) timeslice s in region r; Default: all timeslices on the
timeslice level specified by prc_tsl..
prc_tsl Set of triplets {r,p,tsllvl} such that process p can operate at
(r,p,tslvl) timeslice level tslvl in region r; Default: ‘ANNUAL’
timeslice level.
prc_vint Set of processes p that are vintaged technologies, in region r
(r,p) i.e. technical characteristics are tied to when the capacity
was installed, not the current period; Default: process is not
vintaged; note that vintaging increases the model size.
r reg Set of internal regions; Subset of all_r.
29
Set ID/Indexes 14 Alias 15 Description
s all_ts, ts, s2, Set of all timeslices (define the sub-annual divisions of a
sl period). Timeslices effectively defined for specific processes
and technologies are subsets of this set.
t milestonyr, Set of representative years (middle years) for the model
tt periods within the modelling horizon.
teg Set of technologies selected for endogenous technology
learning; Subset of set p; if p not in teg, then any ETL
investment parameters provided are ignored.
top RES topology definition indicating that commodity c enters
(r,p,c,io) (io=’IN’) or leaves (io=’OUT’) the process p [set of
quadruples {r,p,c,io} such that process p has a flow of
commodity c with orientation io in region r].
top_ire RES topology definition for trade between regions [Set of
(all_reg,com, quintuples indicating that commodity com from region
all_r,c,p) all_reg is traded (exported) via exchange process p (where
it is imported) into region all_r as commodity c]; note: the
name of the traded commodity may be different in the two
regions.
ts_group Set of triplets {all_r,tslvl,s} such that timeslice s belongs to
(all_r,tslvl,s) the timeslice level tslvl in region r; needed for the definition
of the timeslice tree; only default is that the ‘ANNUAL’
timeslice belongs to the ‘ANNUAL’ timeslice level.
ts_map Set of triplets {all_r,s,ts} such that s is an intermediate node
(all_r,s,ts) s of the timeslice tree (neither ‘ANNUAL’ nor the lowest
level), and ts is a node directly under s in region r; the set is
further extended by allowing ts = s (see figure 1).
uc_attr Set of quintuples such that the TIMES attribute specified by
(r,uc_n,side, the uc_name (e.g., capacity, flow, etc.) will be used as
uc_grptype, coefficient for the variable identified by uc_grptype in the
uc_name) user constraint uc_n, for the side side (‘LHS’ or ‘RHS’) in
region r; if uc_name=’GROWTH’ the user constraint
represents a growth constraint.
uc_grptype Fixed internal list of the key types of variables: fixed =
‘ACT_’, ‘CAP_’, ‘COMPRD_’, ‘COMCON_’, ‘FLO_’,
‘IRE_’, ‘NCAP_’.
uc_n List of user specified unique indicators of the user
constraints.
uc_name The list of indicators associated with various attributes that
can be referenced in user constraints to be applied when
deriving a coefficient (e.g. the flow variable may be
multiplied by the attribute FLO_COST to represent
expenditure associated with said flow in a user constraint if
desired): = ‘ACT_COST’, ‘ACT_BNDUP’,
‘ACT_BNDLO’, ‘ACT_BNDFX’, ‘CAP_BNDUP’,
‘CAP_BNDLO’, ‘CAP_BNDFX’, ‘GROWTH’,
‘FLO_COST’, ‘FLO_DELIV’, ‘FLO_SUB’, ‘FLO_TAX’,
‘NCAP_COST’, ‘NCAP_ITAX’, ‘NCAP_ISUB’.
uc_r_each Set of pairs {all_r,uc_n} such that the user constraint uc_n
(all_r,uc_n) is to be generated for each specified region all_r.
30
Set ID/Indexes 14 Alias 15 Description
uc_r_sum Set of pairs {all_r,uc_n}indicating that the user constraint
(all_r,uc_n) uc_n is summing over all specified regions all_r (that is
these constraints do not have a region index). Note that
depending on the specified regions in ur_r_sum, the
summation may be done only over a subset of all model
regions. For example if the model contains the regions FRA,
GER, ESP and one wants to create a user constraint called
GHG summing over the regions FRA and GER but not ESP,
the set uc_r_sum contains has the two entries
{‘FRA’,’GHG’} and {‘GER’,’GHG’}.
uc_t_each Indicator that the user constraint uc_n is to be generated for
(r,uc_n,t) each specified period t.
uc_t_succ Indicator that the user constraint uc_n is to be generated
(r,uc_n,t) between the two successive periods t and t+1.
uc_t_sum Indicator that the user constraint uc_n is to be generated
(r,uc_n,t) summing over the periods t.
uc_ts_each Indicator that the user constraint uc_n will be generated for
(r,uc_n,s) each specified timeslice s.
uc_ts_sum Indicator that the user constraint uc_n is to be generated
(r,uc_n,s) summing over the specified timeslice s .
v modlyear Union of the sets pastyear and t corresponding to all the
years (periods) of a model run.
31
2.3 Definition of internal sets
The sets internally derived by the TIMES model generator are given in Table 5. The list of
internal sets presented here concentrates on the ones frequently used in the model generator
and the ones used in the description of the model equations in Chapter 5. Some internal sets
are omitted from Table 5 as they are strictly auxiliary sets of the preprocessor whose main
purpose is the reduction of the computation time for preprocessor operations.
17
Name of the internal set as used in this documentation and the GAMS code.
18
Index domain of the internal set is given in brackets.
19
The asterisk denotes in the modeling system GAMS a wildcard, so that domain
checking is disabled and any index may be used.
32
Set ID 17
Description
Indexes 18
obj_1b Investment case small investment (NCAP_ILED/D(v) <=
(r,v,p) G_ILEDNO) and repetition of investment (NCAP_TLIFE +
NCAP_ILED < D(v)) for process p in region r and vintage period v.
obj_2a Investment case large investment (NCAP_ILED/D(v) > G_ILEDNO)
(r,v,p) and no repetition of investment (NCAP_TLIFE + NCAP_ILED >=
D(v)) for process p in region r and vintage period v.
obj_2b Investment case large investment (NCAP_ILED/D(v) > G_ILEDNO)
(r,v,p) and repetition of investment (NCAP_TLIFE + NCAP_ILED < D(v))
for process p in region r and vintage period v.
obj_sumi Summation control for investment and capacity related taxes and
(y,r,v,p,k) subsidies with running year index y of annual objective function,
vintage period v and commissioning year k (e.g. in case of spreading
investment over construction time).
obj_sumiii Summation control for decommissioning costs with for the running
(y,r,v,p,k) year index y of annual objective function, vintage period v and
commissioning year k (e.g. for spreading decommissioning costs over
decommissioning time).
obj_sumiv Summation control for fixed costs with running year index y of
(y,r,v,p,k) annual objective function, vintage period v and commissioning year
k.
obj_sumivs Summation control for decommissioning surveillance costs with
(y,k,r,v,p) running year index y of annual objective function, vintage period v
and commissioning year k.
obj_sums Indicator that process p in region r with vintage period v has a
(r,v,p) salvage value for investments with a (technical) lifetime that extends
past the model horizon.
obj_sums3 Indicator that process p in region r with vintage period v has a
(r,v,p) salvage value associated with the decommissioning or surveillance
costs.
obj_sumsi Indicator that for commissioning years k process p in region r with
(r,v,p,k) vintage period v has a salvage value due to investment,
decommissioning or surveillance costs arsing from the technical
lifetime extending past the model horizon.
periodyr Mapping of individual years y to the modlyear (milestonyr or
(v,y) pastyear; v) period they belong to; if v is a pastyear, only the pastyear
itself belongs to the period; for the last period of the model horizon
also the years until the very end of the model accounting horizon
(MIYR_VL + DUR_MAX) are elements of periodyr.
prc_act Indicator that a process p in region r needs an activity variable (used
(r,p) in reduction algorithm).
prc_cap Indicator that a process p in region r needs a capacity variable (used
(r,p) in reductio algorithm).
33
Set ID 17
Description
Indexes 18
prc_spg Shadow primary group (SPG) of a process p; all commodities on the
(r,p,cg) opposite process side of the primary commodity group (PCG) which
have the same commodity type as the PCG, usually internally
determined (though it may be specified by the user under special
circumstances (e.g., when not all the commodities on the opposite
side of the process, which should be in the SPG, are of the same
commodity type com_type);
if no commodity of the same type is found:
• if PCG is of type ‘DEM’ and process is a material processing
process (PRV or PRW), then the SPG contains all material
commodities;
• if not, the SPG contains all energy commodities.
rc List of all commodities c found in region r.
(r,c)
rcj Steps j used in direction bd for the elastic demand formulation of
(r,c,j,bd) commodity c.
rcs_combal Indicator of which timeslices (s) associate with commodity c in region
(r,t,c,s,bd) r for time period t the commodity balance equation
(EQ(l)_COMBAL) is to be generated, with a constraint type
corresponding to bd.
rcs_comprd Indicator of which timeslices (s) associate with commodity c in region
(r,t,c,s,bd) r for time period t the commodity production equation
(EQ(l)_COMBAL) is to be generated, with a constraint type
according to bd, when a corresponding rhs_comprd indicator exists.
rcs_comts All timeslices s being at or above timelsice level (com_tsl) of
(r,c,s) commodity c in region r.
rhs_combal Indicator that the commodity net variable (VAR_COMNET) is
(r,t,c,s) required in commodity balance (EQE_COMBAL), owing to a
limit/costs imposed on the net.
rhs_comprd Indicator that the commodity production variable (VAR_COMPRD)
(r,t,c,s) is required in commodity balance (EQE_COMPRD), owing to a
limit/costs imposed on the production.
rp List of processes (p) in each region (r).
(r,p)
rp_1t1 Indicator of processes (p) in region (r) with exactly one input and one
(r,p) output flow (exluding emission commodity of (com_type=’ENV’));
used in reduction algorithm.
rp_1tn Indicator of processes (p) in region (r) with one input flow and an
(r,p) arbitrary number of output flows; used in reduction algorithm.
rp_flo List of all processes in region r, except inter-regional exchange
(r,p) processes (ire).
rp_inout Indicator as to whether a process (p) in a region (r) is input or output
(r,p,io) (io = ‘IN’/’OUT’) normalized with respect to its activity.
rp_ire List of inter-regional exchange processes (p) found in each region
(all_r,p) (all_r).
rp_pg The primary commodity group (cg) of each process (p) in a region
(r,p,cg) (r).
34
Set ID 17
Description
Indexes 18
rp_pgtype The commodity type (com_type) of primary commodity group of a
(r,p,com_type) process (p) in a region (r).
rpc List of commodities ( c ) assocaited with a process p in region r (by
(r,p,c) top or top_ire).
rpc_act Indicator that the primary commodity group of a process (p, except
(r,p,c) exchange processes see rpc_aire) consists of only one commodity (c),
enabling the corresponding flow variable to be replaced by the
activity variable (used in reduction algorithm).
rpc_aire Indicator that the primary commodity group of an exchange process
(r,ire,c) (ire) consists of only one commodity (c), enabling the corresponding
flow variable to be replaced by the activity variable (used in reduction
algorithm).
rpc_capflo Indicator that a commodity flow c in region r is associated with the
(r,v,p,c) capacity of a process (p, due to NCAP_ICOM, NCAP_OCOM, or
NCAP_COM being provided).
rpc_conly A subset of rpc_capflo indicating those processes (p) in a region (r)
(r,v,p,c) where a commodity (c) is only consumed or produced through
capacity based flows.
rpc_emis Indicator that the flow variable of an emission commodity (cg)
(r,p,cg) associated with process (p) in a region (r) can be replaced by the fuel
flow causing the emission multiplied by the emission factor (used in
reduction algorithm).
rpc_eqire Indicator of the commodities (c) associated with inter-regional
(r,p,c) exchange processes (p) in region (r) for which an inter-region
exchange equation (EQ_IRE) is to be generated; the set does not
contain the marketplace region (rpc_market).
rpcc_ffunc Flow variable of a commodity (c) associated with a process (p) that
(r,p,c) can be replaced by another flow variable of the process, due to a
direct FLO_FUNC or FLO_SUM relationship.
rpc_ire Commodities (c) imported or exported (ie=’IMP’/’EXP’) via process
(all_r,p,c,ie) p in a region (all_r).
rpc_market The list of market place regions (subset of all_r) that trades a
(all_r,p,c) commodity (c) through a process (p). The market structure is user
defined through the set top_ire. rpc_market is internally derived
based on the structure of top_ire, but may also be explicitly specified
by the user.
rpc_pg The mapping of the commodities (c) in a region (r) that belong to the
(r,p,cg,c) primary commodity group (cg) associated with process p.
rpc_spg The list of commodities (c) in a region (r) belonging to the shadow
(r,p,c) primary group of process (p).
rpcg_ptran Indicator of the transformation equations (EQ_PTRANS) that can be
(r,p,c1,c2,cg1,cg2) eliminated by the reduction algorithm.
rpcs_var The list of valid timeslices for the flow variable (VAR_FLO) of
(r,p,c,s) commodity c associated with process p in region r; flow variables of
commodities which are part of the primary commodity group have the
timeslice resolution of the process (prc_tsl), while all other flow
variables are created according to the rps_s1 timeslices.
rps_prcts All (permitted) timeslices (s) at or above the process (p) timeslice
(r,p,s) level (prc_tsl) in a region (r).
35
Set ID 17
Description
Indexes 18
rps_s1 All (permitted) timeslices (s) belonging to the finest timeslice level of
(r,p,s) the process (p, prc_tsl) and the commodity timeslice level (com_tsl)
of the shadow primary commodity group.
rps_s2 All (permitted) timeslices (s) at or above the finest timeslice level of
(r,p,s) the process (p) timeslice level prc_tsl) and the commodity timeslice
level (com_tsl) of the shadow primary commodity group.
rreg Indicator that trade exists from region all_reg to region all_r.
(all_reg,all_r)
rs_below All timeslices (s) strictly below the higher timeslice (ts) in the
(all_r,ts,s) timeslice tree.
rs_below1 All timeslices (s) immediately (one level) below the higher timeslice
(all_r,ts,s) (ts) in the timeslice tree.
rs_tree For a timeslice (ts) all timeslices (s) that are on the same paths within
(all_r,ts,s) the timeslice tree, e.g. if ts=SP WD in Fig. 6, valid timeslices s are:
ANNUAL, SP, SP_WD, SP_WD_D, SP_WD_N
rtc_cumnet Indicator that the commodity net variable (VAR_COMNET) for
(r,t,c) commodity c in region r for period t has a cumulative bound applied.
rtc_cumprd Indicator that the commodity production variable (VAR_COMPRD)
(r,t,c) for commodity c in region r for period t has a cumulative bound
applied.
rtcs_sing Indicator that a commodity c is not available in a specific period t and
(r,t,c,s,io) timeslice s, since the only processes producing (io = ‘OUT’) or
consuming the process (io = ‘IN’) are turned-off.. In the case of io =
‘OUT’, the commodity is not available meaning that processes, which
have only this commodity as input, cannot operate. Similar reasoning
applies to the case io = ‘IN’.
rtcs_varc For commodity (c) in region (r) indicator for the timeslices (s) and the
(r,t,c,s) periods (t) the commodity is available.
rtp = rvp Indication of the periods and pastyears for which process (p) in region
(r,v,p) (r ) is available; all other RTP_* control sets are based on this set.
rtp_cptyr For each vintage period (v) an indication of the periods (t) for which
(r,v,t,p) newly installed capacity of process (p) in a region (r)is available,
taking into account construction lead-time (NCAP_ILED) and
technical lifetime (NCAP_TLIFE).
rtp_off Indication of the periods (t) in which no new investment is permitted
(r,t,p) for a process (p) in a region (r).
rtp_qact Indicator that a bound on process activity (ACT_BND) of a process p
(r,t,p) in a region r can be applied directly to the activity variable
(VAR_ACT); used in reduction algorithm.
rtp_vara Indication of the periods (t) for which a process (p) in a region (r) is
(r,t,p) available.
rtp_varp Indicator that the capacity variable (VAR_CAP) will be generated for
(r,t,p) process (p) in a region (r) in period (t).
rtp_vintyr An indication of for which periods (t) a process (p) in a region (r) is
(r,v,t,p) available since it was first installed (v); for vintaged processes
(prc_vint) identical to rtp_cptyr, for non-vintaged processes the v
index in the rtp_cptyr entries is ignored by setting it to t (v = t).
rtpc For a process (p) in a region (r) the combination of the periods it is
(r,v,p,c) available (rtp) and commodities associated with it (rpc).
36
Set ID 17
Description
Indexes 18
rtps_off An indication for process (p) of the timeslices (s) for which the
(r,t,p,s) process is turned-off (used in reduction algorithm).
rtpcs_varf The list of valid timeslices (s) and periods (t) for the flow variable
(r,t,p,c,s) (VAR_FLO) of process (p) and commodity (c); taking into account
the activity, capacity and flow availability (rtp_vara, rpcs_var and
prc_foff). The timeslice level of a flow variable equals the timeslice
level of the process (prc_tsl) when the flow variable is part of the
commodity group defining the activity of the process. Otherwise the
timeslice level of a flow variable is set to whichever level is finer, that
of the commodity or the process.
uc_dyndir If side = ‘RHS’, indicator for growth constraints to be generated
(r,uc_n,side) between the periods t-1 and t; if side = ‘LHS’, the set is ignored.
uc_gmap_c Indicator that a commodity variable (VAR_COMCON or
(r,uc_n,uc_grptype,c) VAR_COMPRD) for commodity (c) in a region (r) appears in a user
constraint (uc_n).
uc_gmap_p Indicator that a variable (VAR_ACT, VAR_NCAP or VAR_CAP)
(r,uc_n,uc_grptype,p) associated with a process (p) in a region (r) appears in a user
constraint (uc_n).
uc_map_flo Indicator that the flow variable (VAR_FLO) for region r, process p
(uc_n,r,p,c) and commodity c is involved in user constraint uc_n.
uc_map_ire Indicator that an import/export (according to top_ire) trade variable
(uc_n,r,p,c) (VAR_IRE) for region r, process p, and commodity c is involved in a
user constraint (uc_n).
37
3 Parameters
While sets describe structural information of the energy system or qualitative characteristics
of its entities (e.g. processes or commodities), parameters contain numerical information.
Examples of parameters are the import price of an energy carrier or the investment cost of a
technology. Most parameters are time-series where a value is provided (or interpolated) for
each year (datayear). The TIMES model generator distinguishes between user input
parameters and internal parameters. The former are provided by the modeller (usually by way
of a data handling system or “shell” such a VEDA-FE or ANSWER-TIMES), while the latter
are internally derived from the user input parameters, in combination with information given
by sets, in order to calculate for example the cost coefficients in the objective function. This
Chapter first covers the user input parameters in Section 3.1 and then describes the most
important internal parameters as far as they are relevant for the basic understanding of the
equations (Section 3.2). Section 3.3 presents the parameters used for reporting the results of a
model run.
Time-dependent user input parameters are specified for specific years, the so-called datayears
(datayear). These datayears do not have to coincide with the modelyears (v or modelyear)
needed for the current run. Reasons for differences between these two sets are for example
that the period definition for the model has been altered after having provided the initial set of
input data leading to different milestoneyears (t or milestoneyr) or that statistical data are
only available for certain years that do not match the modelyears. In order to avoid burdening
the user with the cumbersome adjustment of the input data to the modelyears,an inter-
/extrapolation routine is embedded in the TIMES model generator. The inter-/extrapolation
routine distinguishes between a default inter-/extrapolation that is automatically applied to the
input data and an enhanced user-controlled inter-/extrapolation that allows the user to specify
inter-/extrapolation rules for each time-series explicitly. Independent of the default or user-
controlled inter-/extrapolation options, TIMES inter-/extrapolates (using the standard
algorithm) all cost parameters in the objective function to the individual years of the model as
part of calculating the annual cost details.
38
Default inter/extrapolation
The default inter-/extrapolation routines interpolates linearly between data points, while it
extrapolates the first/last data point constantly backward/forward. The parameters given in
Table 6 are by default NOT inter/extrapolated. All other parameters are by default both
interpolated and extrapolated.
39
model. In this way the model is made more flexible with respect to running scenarios with
arbitrary model years and period lengths, while using basically the very same input database.
The enhanced interpolation/extrapolation facility provides the user with options to control the
interpolation and extrapolation of each individual time series (Table 7). Non-default
interpolation/extrapolation can be requested for any parameter by providing an additional
instance of the parameter with an indicator in the YEAR index and a value corresponding to
one of the integer-valued Option Codes (see Table 7 and example below). This control
specification activates the interpolation/extrapolation rule for the time series, and is
distinguished from actual time-series data by providing a special control label (“0”) in the
YEAR index. The particular interpolation rule to apply is a function of the Option Code
assigned to the control record for the parameter. Note that for log-linear interpolation the
Option Code indicates the year from which the interpolation is switched from standard to log-
linear mode. TIMES user shell(s) will provide mechanisms for imbedding the control label
and setting the Option Code through easily understandable selections from a user-friendly
drop-down list, making the specification simple and transparent to the user.
Example:
Three normal data points in a FLO_SHAR data series:
FLO_SHAR('REG','1995','PRC1','COAL','IN_PRC1','ANNUAL','UP') = 0.25;
FLO_SHAR('REG','2010','PRC1','COAL','IN_PRC1','ANNUAL','UP') = 0.12;
FLO_SHAR('REG','2020','PRC1','COAL','IN_PRC1','ANNUAL','UP') = 0.05;
FLO_SHAR('REG','0','PRC1','COAL','IN_PRC1','ANNUAL','UP') = 3;
40
Log-linear interpolation means that the values in the data series are interpreted as coefficients
of annual change beyond a given YEAR. The YEAR can be any year, including modelyears.
The user only has to take care that the data values in the data series correspond to the
interpretation given to them when using the log-linear option. For simplicity, however, the
first data point is always interpreted as an absolute value, because log-linear interpolation
requires at least one absolute data point to start with.
Example:
FLO_SHAR('REG','0','PRC1','COAL','IN_PRC1','ANNUAL','UP') = 2005;
This parameter specifies a log-linear control option with the value for the threshold YEAR
of log-linear interpolation taken from 2005. The option specifies that all data points up to
the year 2005 should be interpreted normally (as absolute data values), but all values
beyond that year should be interpreted as coefficients of annual change. By using this
interpretation, TIMES will then apply full interpolation and extrapolation to the whole of
the data series. It is the responsibility of the user to ensure that the first data point and all
data points up to (and including) the year 2005 represent absolute values of the parameter,
and that all subsequent data points represent coefficients of annual change. Using the data
of the example above, the first data point beyond 2005 is found for the year 2010, and it
has the value of 0.12. The interpretation thus requires that the maximum flow share of
COAL in the commodity group IN_PRC1 is actually meant to increase by as much as 12%
per annum between the years 1995 and 2010, and by 5% per annum between 2010 and
2020.
Applicability
All the enhanced interpolation options described above are available for all TIMES
parameters, excluding integer-valued parameters related to the SHAPE and MULTI tables, as
shown in Table 8.
However, another option for the extrapolation of SHAPE index parameters is available.
The extrapolation can be done either only inside the data points provided by the user, or both
inside and outside those data points. Inside the data points the SHAPE index specified for any
datayear is extrapolated to all modelyears (v) between that datayear and the following
datayear for which the SHAPE index is specified.
41
Table 9: Option codes for the extrapolation of SHAPE indexes
Option code Action
<= 0 (or none) No extrapolation (default)
1 Extrapolation between data points only
>= 2 Extrapolation between and outside data points
Example:
The user has specified the following two SHAPE indexes and a control option for
extrapolation:
In this case, all modelyears (v) between 1995 and 2010 will get the shape index 12. No
extrapolation is done for modelyears (v) beyond 2010 or before 1995.
The extrapolation options are currently available for the following SHAPE parameters, which
are an indicator for the SHAPE curve that should be applied to the corresponding parameter:
• NCAP_AFX,
• NCAP_FOMX,
• NCAP_FSUBX,
• NCAP_FTAXX,
• FLO_FUNCX.
The different aggregation rules are illustrated by examples in Figure 9. It should be noted
that if input data are specified on two timeslice levels different from the target level, then the
inheritance/aggregation routine may lead to incorrect results. Therefore it is strongly
recommended to provide input data only for timeslices on one timeslice level. One should
also notice that if a mixture of fixed bounds with upper or lower bounds is specified by the
user on a timeslice level different from the target level, then the fixed bounds are converted
into upper and lower bounds. These upper and lower bounds are then inherited or aggregated
with the other user-specified upper or lower bounds to the target timeslice level.
43
Weighted Inheritance Direct Inheritance
WI SU WI SU
(G_YRFR=0.6) (G_YRFR=0.4) (G_YRFR=0.6) (G_YRFR=0.4)
Given Given Given Given
Target value = none value = none
Target value = none value = none
level level
Inherited Inherited Inherited Inherited
value = 0.6 value = 0.4 value = 1.0 value = 1.0
ANNUAL ANNUAL
(G_YRFR=1.0) (G_YRFR=1.0)
WI SU WI SU
(G_YRFR=0.6) (G_YRFR=0.4) (G_YRFR=0.6) (G_YRFR=0.4)
Given Given Given Given
Target value = none value = none
Target value = none value = none
level level
Aggregated Aggregated Aggregated Aggregated
value = 1.58 value = 3.63 value = 3.0 value = 7.0
Figure 9: Inheritance and aggregation rules for timeslice specific parameters in TIMES
A list of all user input parameters is given in Table 12. In order to facilitate the recognition by
the user of to which part of the model a parameter relates the following naming conventions
apply to the prefixes of the parameters (Table 11).
44
Table 12: User input parameters in TIMES
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
23
/extrapolation
ACT_BND • Units of activity • Since inter-/extrapolation Bound on the overall • Activity limit
(r,datayear,p,s,bd) • [open]; default default is none, the activity a process. constraint
value: none bound must be explicitly (EQ(l)_ACTBND)
• Default i/e 26: none specified for a when s is above
milestoneyear, unless an prc_tsl.
inter-/extrapolation • Direct bound on
option is set. activity variable
• If the bound is specified (VAR_ACT)
for a timeslice s above when at the
the process timeslice prc_tsl level.
resolution (prc_tsl), the • May appear in
bound is applied to the user constraints
sum of the activity (EQ_UC*) if
variables according to the (‘ACT_BNDLO/F
21
The first row contains the parameter name, the second row contains in brackets the index domain over which the parameter is
defined.
22
This column gives references to related input parameters or sets being used in the context of this parameter as well as internal
parameters/sets or result parameters being derived from the input parameter.
23
This column lists the unit of the parameter, the possible range of its numeric value [in square brackets] and the inter-
/extrapolation rules that apply.
24
An indication of circumstances for which the parameter is to be provided or omitted, as well as description of
inheritance/aggregation rules applied to parameters having the timeslice (s) index.
25
Equations or variables that are directly affected by the parameter.
26
Abbreviation i/e = inter-/extrapolation
45
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
timeslice tree. X/UP’) specified
• Standard aggregation. in UC_NAME.
ACT_COST OBJ_ACOST, • Monetary unit per Variable costs • Applied to the
(r,datayear,p,cur) CST_ACTV, unit of activity associated with the activity variable
PAR_OBJACT, • [open]; default activity of a process. (VAR_ACT) as a
TOT_ACT value: none component of the
• Default i/e: objective function
standard (EQ_OBJVAR).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
B M, D, E, Beginning year of
(t) COEF_CPT, period t.
rtp_vintyr
CAP_BND PAR_CAPLO, • Capacity unit • Since inter-/extrapolation Bound on • Imposes an
(r,datayear,p,bd) PAR_CAPUP • [open]; default is turned-off by default, investment in new indirect limit on
value: none the bound must be capacity. the capacity
• Default i/e: none specified for each transfer equation
milestoneyear desired, if (EQ_CPT) by
no specific information means of a direct
regarding inter- bound on the
/extrapolation option is capacity variable
given. (VAR_CAP).
• May appear in
46
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
user constraints
(EQ_UC*) if
(‘CAP_BNDLO/F
X/UP’) specified
in UC_NAME.
CCAP0 PAT, CCOST0 • Capacity unit • For learning technologies Initial cumulative • Cumulative
(r,teg) • [open]; default teg when ETL is used. capacity of a investment
value: none learning technology. constraint
(EQ_CUINV) and
cumulative
capacity variable
(VAR_CCAP) in
endogenous
technological
learning
formulation.
CCAPM CCOSTM • Capacity unit • For learning technologies Maximum • Core ETL
(r,teg) • [open]; default teg when ETL is used. cumulative capacity. equations.
value: none
COM_BNDNET rhs_combal, • Commodity unit • Since inter-/extrapolation Limit on the net • The balance
(r,datayear,c,s,bd) rcs_combal • [open]; default is turned-off by default, amount of a constraint is set to
value: none the bound must be commodity within a an equality
• Default i/e: none specified for each region for a (EQE_COMBAL)
milestoneyear desired, particular timeslice. .
unless an inter- • Either the finer
/extrapolation option is timeslice variables
47
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
given. are summed
• If the bound is specified (EQ(l)_BNDNET)
for a timeslice s above or the bound
the commodity timeslice applied direct to
resolution (com_tsl), the the commodity net
bound is applied to the variable(VAR_CO
sum of the net MNET) when at
commodity variables the commodity
(VAR_COMNET) below level (com_tsl).
it, according to the
timeslice tree.
• Standard aggregation.
COM_BNDPRD rhs_comprd, • Commodity unit • Since inter-/extrapolation Limit on the amount • The balance
(r,datayear,c,s,bd) rcs_comprd • [open]; default is turned-off by default, of a commodity constraint is set to
value: none the bound must be produced within a an equality
• Default i/e: none specified for each region for a (EQE_COMBAL)
milestoneyear desired, particular timeslice. .
unless an inter- • Finer timeslice
/extrapolation option is variables summed
given. (EQ(l)_BNDPRD)
• If the bound is specified .
for a timeslice s being • or the bound is
above the commodity applied direct to
timeslice resolution the commodity
(com_tsl), the bound is production
applied to the sum of the variable
48
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
commodity production (VAR_COMPRD)
variables when at the
(VAR_COMPRD) below commodity level
it, according to the (com_tsl).
rhtimeslice tree.
• Standard aggregation.
COM_BPRICE COM_ELAST, • Monetary unit per • The control parameter Base price of a • Controls the
(r,t,c,s,cur) COM_STEP, commodity unit $SET TIMESED ‘YES’ demand commodity inclusion of the
COM_VOC • [open]; default to activate elastic for the elastic elastic demand
value: none demands must be set. demand formulation. variable
• Default i/e: none (VAR_ELAST) in
the commodity
balance
equation(EQ(l)_C
OMBAL)
• Applied to the
elastic demand
variable
(VAR_ELAST) in
the objective
function
(EQ_OBJELS).
COM_CSTNET OBJ_CNCST, • Monetary unit per • Direct inheritance. Cost on the net • Forces the net
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. amount of a commodity
PAR_OBJCOM, • [open]; default commodity within a variable
TOT_COM, value: none region for a (VAR_COMNET)
49
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
rhs_combal, • Default i/e: particular timeslice. to be included in
rcs_combal standard the equality
balance constraint
(EQE_COMBAL)
.
• Applied to said
variable in the cost
component of the
objective function
(EQ_OBJVAR).
COM_CSTPRD OBJ_CPCST, • Monetary unit per • Direct inheritance. Cost on the • Forces the
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. production of a commodity
PAR_OBJCOM, • [open]; default commodity, within a production
TOT_COM, value: none region for a variable
rhs_comprd, • Default i/e: particular timeslice. (VAR_COMPRD)
rcs_comprd standard to be included in
the equality
balance constraint
(EQE_COMBAL)
.
• Applied to said
variable in the cost
component of the
objective function
(EQ_OBJVAR).
COM_CUMNET bohyear, eohyear, • Commodity unit • The years y1 and y2 may Bound on the • Forces the net
50
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(r,y1,y2,bd) rhs_combal, • [open]; default be any years of the set cumulative net commodity
rcs_combal, value: none allyear; where y1 may amount of a variable
rtc_cumnet • Default i/e: not also be ‘BOH’ for first commodity between (VAR_COMNET)
possible year of first period and the years y1 and y2, to be included in
y2 may be ‘EOH’ for last within a region for athe equality
year of last period. particular timeslice.balance constraint
(EQE_COMBAL)
.
• Generates the
cumulative
commodity
constraint
(EQ(l)_CUMNET
).
COM_CUMPRD bohyear, eohyear, • Commodity unit • The years y1 and y2 may Bound on the • Forces the net
(r,y1,y2,bd) rhs_comprd, • [open]; default be any years of the set cumulative commodity
rcs_comprd, value: none allyear; where y1 may production of a variable
rtc_cumprd • Default i/e: not also be ‘BOH’ for first commodity between (VAR_COMPRD)
possible year of first period and the years y1 and y2 to be included in
y2 may be ‘EOH’ for last within a region for a the balance
year of last period. particular timeslice. equation
(EQE_COMBAL)
.
• The cumulative
constraint is
generated
51
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ(l)_CUMPRD
).
COM_ELAST COM_BPRICE, • Dimensionless • The control parameter Elasticity of demand • Controls the
(r,datayear,c,s,bd) COM_STEP, • [open]; default $SET TIMESED ‘YES’ indicating how inclusion of the
COM_VOC value: none to activate elastic much the demand elastic demand
• Default i/e: none demands must be set. rises/falls in variable
• An elasticity is required response to a unit (VAR_ELAST) in
for each direction the change in the the commodity
demand is permitted to marginal cost of balance
move. meeting a demand equation(EQ(l)_C
• The index bd = ‘LO’ that is elastic. OMBAL)
corresponds to the • Applied to the
direction of decreasing elastic demand
the demand, while bd = variable
‘UP’ denotes the (VAR_ELAST) in
direction for demand the objective
increase. function costs
• A different value may be (EQ_OBJELS).
provided for each
direction, thus curves
may be asymmetric.
COM_FR COM_PROJ, • Decimal fraction • Only applicable to Fraction of the • Applied to the
(r,datayear,c,s) com_ts, com_tsl, • [0,1]; default demand commodities annual demand annual demand
RTCS_TSFR value: timeslice (com_type = ‘DEM’). (COM_PROJ) (COM_PROJ) as
duration • Affects timeslice occurring in the RHS of the
(G_YRFR) resolution at which a timeslice s; balance equation
52
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
• Default i/e: commodity is tracked describes the shape (EQ(l)_COMBAL
standard (RTCS_TSFR), and of the load curve. ).
thereby may affect when • Enters the
a process cannot operate peaking equation
(rtps_off). (EQ_PEAK), if a
• Weighted inheritance. peaking
• Weighted aggregation. commodity.
• Applied when
setting the upper
bound of an
elastic demand
step
(VAR_ELAST).
COM_IE • Decimal fraction • Direct inheritance. Infrastructure or • Overall efficiency
(r,datayear,c,s) • [0,1]; default • Weighted aggregation. transmission applied to the total
value: 1 efficiency of a production of a
• Default i/e: commodity. commodity in the
standard commodity
balance equation
(EQ(l)_COMBAL
).
COM_PKFLX com_peak, • Scalar • Direct inheritance. Difference between • Applied to the
(r,datayear,c,s) com_pkts, • [open]; default • Weighted aggregation. the average demand total consumption
COM_PKRSV, value: none and the peak of a commodity to
FLO_PKCOI • Default i/e: demand in timeslice raise the capacity
standard s, expressed as needed to satisfy
53
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
fraction of the the peaking
average demand. constraint
(EQ_PEAK).
COM_PKRSV com_peak, • Scalar Peak reserve margin • Applied to the
(r,datayear,c) com_pkts, • [open]; default as fraction of peak total consumption
COM_PKFLX, value: none demand, e.g. if of a commodity to
FLO_PKCOI • Default i/e: COM_PKRSV = raise the capacity
standard 0.2, the total needed to satisfy
installed capacity the peaking
must exceed the constraint
peak load by 20 %. (EQ_PEAK).
COM_PROJ COM_FR • Commodity unit • Only applicable to Projected annual • Serves as the RHS
(r,datayear,c) • [open]; default demand commodities demand for a (after COM_FR
value: none (com_type = ‘DEM’) commodity. applied) of the
• Default i/e: commodity
standard balance constraint
(EQ(l)_COMBAL
).
• Enters the peaking
equation
(EQ_PEAK), if a
peaking
commodity.
• Applied when
setting the upper
bound of an elastic
54
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
demand step
(VAR_ELAST).
COM_STEP COM_BPRICE, • Integer number • The control parameter Number of steps to • Controls the
(r,c,bd) COM_ELAST, • [open]; default $SET TIMESED ‘YES’ use for the instance of the
COM_VOC, value: none to activate elastic approximation of elastic demand
rcj demands must be set. change of variable
The number of steps is producer/consumer (VAR_ELAST)
required for each surplus when using in:
direction the demand is the elastic demand the commodity
permitted to move. formulation. balance
• The index bd = LO equation
corresponds to the (EQ(l)_COMB
direction of decreasing AL);
the demand, while bd = setting of the
UP denotes the direction step limit for
for demand increase. the elastic
• A different value may be demand
provided for each variable
direction, thus curves (VAR_ELAST
may be asymmetric. );
enters the
objective
function costs
(EQ_OBJELS).
COM_TAXNET OBJ_CNTAX, • Monetary unit per • Direct inheritance. Tax on the net • Forces the net
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. amount of a commodity
PAR_OBJCOM, commodity within a variable
55
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
TOT_COM, • [open]; default region for a (VAR_COMNET)
rhs_combal, value: none particular timeslice. to be included in
rcs_combal • Default i/e: the equality
standard balance constraint
(EQE_COMBAL)
.
• Applied to said
variable in the cost
component of the
objective function
(EQ_OBJVAR).
COM_TAXPRD OBJ_CPTAX, • Monetary unit per • Direct inheritance. Tax on the • Forces the
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. production of a commodity
PAR_OBJCOM, • [open]; default commodity within a production
TOT_COM, value: none region for a variable
rhs_comprd, • Default i/e: particular timeslice. (VAR_COMPRD)
rcs_comprd standard to be included in
the equality
balance constraint
(EQE_COMBAL)
.
• Applied to said
variable in the cost
component of the
objective function
(EQ_OBJVAR).
56
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
COM_SUBNET OBJ_CNSUB, • Monetary unit per • Direct inheritance. Subsidy on the net • Forces the net
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. amount of a commodity
PAR_OBJCOM, • [open]; default commodity within a variable
TOT_COM, value: none region for a (VAR_COMNET)
rhs_combal, • Default i/e: particular timeslice. to be included in
rcs_combal standard the equality
balance constraint
(EQE_COMBAL)
.
• Applied (-) to said
variable in the cost
component of the
objective function
(EQ_OBJVAR).
COM_SUBPRD OBJ_CPSUB, • Monetary unit per • Direct inheritance. Subsidy on the • Forces the
(r,datayear,c,s,cur) CST_COMV, commodity unit • Weighted aggregation. production of a commodity
PAR_OBJCOM, • [open]; default commodity within a production
TOT_COM, value: none region for a variable
rhs_comprd, • Default i/e: particular timeslice. (VAR_COMPRD)
rcs_comprd standard to be included in
the equality
balance constraint
(EQE_COMBAL)
.
• Applied (-) to said
variable in the cost
57
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
component of the
objective function
(EQ_OBJVAR).
COM_VOC COM_BPRICE, • Dimensionless • The control parameter Possible variation of • Applied when
(r,datayear,c,bd) COM_STEP, • [open]; default: $SET TIMESED ‘YES’ demand in both setting the bound
COM_ELAST none to activate elastic directions when of an elastic
• Default i/e: demands must be set. using the elastic demand step
standard • A number is required for demand formulation. (VAR_ELAST).
each direction the • Applied to the
demand is permitted to elasticity variable
move. in the objective
• The index bd = LO function costs
corresponds to the (EQ_OBJELS).
direction of decreasing
the demand, while bd =
UP denotes the direction
for demand increase.
• A different value may be
provided for each
direction, thus curves
may be asymmetric.
E B. D, M, • For each modelyear End year of period t, • The amount of
(t) COEF_CPT, period used in determining new investment
rtp_vintyr the length of each (VAR_NCAP)
period carried over in the
capacity transfer
58
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
constraint
(EQ(l)_CPT).
• Amount of
investments
(VAR_NCAP)
remaining past the
modelling horizon
that needs to be
credited back to
the objective
function
(EQ_OBJINV).
FLO_BND • Commodity unit • If the bound is specified Bound on the flow • Flow activity limit
(r,datayear,p,cg,s,bd) • [open]; default: for a timeslice s being of a commodity or constraint
none above the flow timeslice the sum of flows (EQ(l)_FLOBND)
• Default i/e: none resolution (rtpcs_varf), within a commodity when s is above
the bound is applied to group. rtpcs_varf
the sum of the flow • Direct bound on
variables (VAR_FLO) activity variable
according to the timeslice (VAR_FLO) when
tree, otherwise directly to at the rtpcs_varf
the flow variable. level.
• No aggregation 27. • May appear in
user constraints
27
Standard aggregation not implement yet.
59
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ_UC*) if
(‘FLO_BNDLO/F
X/UP’) specified
in UC_NAME.
FLO_COST OBJ_FCOST, • Monetary unit per • Direct inheritance Variable cost of a • Applied to the
(r,datayear,p,c,s,cur) CST_FLOV, commodity unit • Weighted aggregation process associated flow variable
PAR_OBJFLO, • [open]; default: with the production/ (VAR_FLO) when
TOT_FLO none consumption of a entering the
• Default i/e: commodity. objective function
standard (EQ_OBJVAR).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
FLO_DELIV OBJ_FDELV, • Monetary unit per • Direct inheritance. Cost of a delivering • Applied to the
(r,datayear,p,c,s,cur) CST_FLOV, commodity unit • Weighted aggregation. (consuming) a flow variable
PAR_OBJFLO, • [open]; default: commodity to a (VAR_FLO) when
TOT_FLO none process. entering the
• Default i/e: objective function
standard (EQ_OBJVAR).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
60
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
FLO_FR • Decimal fraction • FLO_FR may be Limits /Load curve • A share equation
(r,datayear,p,c,s,bd) • [0,1]; default specified as lower, upper on the flow of (EQ(l)_FLOFR)
value: none or fixed bounds, in commodity (c) limiting the
• Default i/e: none contrast to COM_FR. entering or leaving amount of
• FLO_FR can be specified process (p) in a commodity (c) is
for any flow variable timeslice. generated
having a subannual according to the
timeslice resolution. bound type (bd = l
• Omitted timeslices (s) indicator).
have the associated flow
turned off in said
timeslice.
• Weighted inheritance.
• Weighted aggregation.
FLO_FUNC FLO_SUM, • Commodity unit • If for the same indexes A key parameter • Establishes the
(r,datayear,p,cg1,cg2 FLO_FUNCX, of cg2/commodity the parameter FLO_SUM describing the basic basic
,s) COEF_PTRAN, unit of cg1 is specified but no operation of or transformation
rpc_ffunc, • [open]; default FLO_FUNC, the within a process. relationship
rpcg_ptran value: see next FLO_FUNC is set to 1. Sets the ratio (EQ_PTRANS)
column • Important factor in between the sum of between one or
• Default i/e: determining the level at flows in commodity more input (or
standard which a process operates group cg2 to the output)
in that the derived sum of flows in commodities and
transformation parameter commodity group one or more
(COEF_PTRAN) is cg1, thereby output (or input)
inherited/aggregated to defining the commodities.
61
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
the timeslice levels of the efficiency of • Establishes the
flow variables associated producing cg2 from relationship
with the commodities in cg1 (subject to any between storage
the group cg1. FLO_SUM). cg1 level
and cg2 may be also (VAR_STGLVL)
single commodities. and the a related
commodity flow
(VAR_FLO) in
the overall storage
equation
(EQ_STG).
FLO_FUNCX FLO_FUNC, • Default • Provided when shaping Age-based shaping • Applied to the
(r,datayear,p,cg1,cg2 FLO_SUM, extrapolation: based upon age is curve (SHAPE) to flow variable
) COEF_PTRAN none desired. be applied to the (VAR_FLO) in
• Vintaged processes only flow parameters transformation
(FLO_FUNC/ equation
FLO_SUM) (EQ_PTRANS) to
account for
changes in the
operating
characteristics of a
process due to the
age (number of
years since
installation) of a
process.
62
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
FLO_MARK • Decimal fraction • The same given fraction Process-wise market • The individual
(r,datayear,p,c,bd) • [0,1]; default is applied to all time- share in total process flow
value: none slices of the commodity commodity variables
• Default i/e: production.
(this could be generalized (VAR_FLO,
standard to allow time-slice- VAR_IN,
specific fractions, if VAR_STGIN/OU
deemed useful). T) are constrained
(EQ(l)_FLMRK)
to a fraction of the
total production of
a commodity
(VAR_COMPRD)
.
• Forces the
commodity
production
variable
(VAR_COMPRD)
to be included in
the equality
balance constraint
(EQE_COMBAL)
.
FLO_PKCOI COM_PKRSV, • Scalar • FLO_PKCOI is specified Factor that permits • Applied to the
(r,datayear,p,c,s) COM_PKFLX, • [open]; default for individual processes attributing less of flow variable
com_peak, value: 1 p consuming the peak the average demand (VAR_FLO) to
com_pkts to the peaking
63
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
• Default i/e: commodity c. equation adjust the amount
standard • Direct inheritance. (EQ_PEAK) in of a commodity
• Weighted aggregation. situations where the consumed when
demand is assumed considering the
to not necessary average demand
occur coincident contributing to the
with the peak. peaking constraint
(EQ_PEAK).
64
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
with REH being the
power to heat ratio. For a
backpressure power plant
FLO_SHAR is a fixed
bound (bd = ’FX’), for an
extraction
condensing/pass-out
CHP plant FLO_SHAR
is specified as an upper
bound (bd = ’UP’).
FLO_SUB OBJ_FSUB, • Monetary unit per • Direct inheritance. Subsidy on a process • Applied with a
(r,datayear,p,c,s,cur) CST_FLOV, commodity unit • Weighted aggregation. flow. minus sign to the
PAR_OBJFLO, • [open]; default: flow variable
TOT_FLO none (VAR_FLO) when
• Default i/e: entering the
standard objective function
(EQ_OBJVAR).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
FLO_SUM FLO_FUNC • Commodity unit • A common example for Multiplier applied The FLO_SUM
(r,datayear,p,cg1,c,c FLO_FUNCX of cg2/commodity the use of FLO_SUM is for commodity c of multiplier is applied
g2,s) COEF_PTRANS, unit of c to describe the electricity group cg1 along with
fs_emis, • [open]; default loss per heat unit gained corresponding to the FLO_FUNC
rpc_emis, flow rate based upon parameter in the
65
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
rpc_ffunc, value: see next when describing the the sum of transformation
rpcg_ptran column constant fuel input line of individual flows coefficient
• Default i/e: extraction defined by the (COEF_PTRANS),
standard condensing/pass-out commodity group which is applied to
CHP plants. cg2 of process p. the flow variable
• If a FLO_SUM is Most often used to (VAR_FLO) in the
specified and no define the emission transformation
corresponding rate, or to adjust the equation
FLO_FUNC, the overall efficiency of (EQ_PTRANS).
FLO_FUNC is set to 1. a technology based
• FLO_FUNC is specified upon fuel consumed.
for a true commodity
group cg1, and no
FLO_SUM is specified
for the commodities in
cg1, these FLO_SUM are
set to 1.
• The derived parameter
COEF_PTRANS is
inherited/aggregated to
the timeslice level of the
flow variable of the
commodity c.
FLO_TAX OBJ_FTAX, • Monetary unit per • Direct inheritance. Tax on a process • Applied to the
(r,datayear,p,c,s,cur) CST_FLOV, commodity unit • Weighted aggregation. flow. flow variable
PAR_OBJFLO, • [open]; default: (VAR_FLO) when
66
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
TOT_FLO none entering the
• Default i/e: objective function
standard (EQ_OBJVAR).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
G_DRATE OBJ_DISC, • Decimal fraction • A value must be provided System-wide • The discount rate
(r,allyear,cur) OBJ_DCEOH, • [0,1]; default for each region and discount rate in is taken into
NCAP_DRATE, value = none period. region r for each consideration
COR_SALVI, • Default i/e: time-period. when constructing
COR_SALVD, standard the objective
VDA_DISC function
discounting
multiplier
(OBJ_DISC),
which is applied in
each components
of the objective
function
(EQ_OBJVAR,
EQ_OBJINV,
EQ_OBJFIX,
EQ_OBJSALV,
EQ_OBJELS).
67
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
G_DYEAR OBJ_DISC, • Year Base year for • The year to which
TOT_OBJ • [open]; default discounting. all costs are to be
value = 1990 discounted is
taken into
consideration
when constructing
the objective
function
discounting
multiplier
(OBJ_DISC),
which is applied in
each of the
components of the
objective function
(EQ_OBJVAR,
EQ_OBJINV,
EQ_OBJFIX,
EQ_OBJSALV,
EQ_OBJELS).
G_ILEDNO NCAP_ILED • Decimal fraction • Only provided when the If the ratio of lead- • Prevents the
• [0,1]; default costs associated with the time (NCAP_ILED) investment costs
value 0.1 lead-time for new to the period associated with
capacity (NCAP_ILED) duration (D) is investment lead-
are not to be included in below this threshold times from energy
the objective function. then the lead-time the investment
consideration will be component of the
68
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
ignored in the objective function
objective function (EQ_OBJINV).
costs.
G_NOINTERP All parameters that • Binary indicator • Only provide when Switch for generally
are normally • [0 or 1]; default interpolation / turning-on (= 0 ) and
subjected to value = 0 extrapolation is to be turning-off (= 1 )
interpolation / turned off for all sparse inter- /
extrapolation parameters. extrapolation.
• Interpolation of cost
parameters is always
done.
G_TLIFE NCAP_TLIFE • Scalar Default value for the
• [open]; default technical lifetime of
value = 10 a process if not
provided by the
user.
G_YRFR RTCS_TSFR, • Fraction • Must be provided for Duration of • Applied to various
(all_r,s) RS_STGPRD • [0,1]; default each region and timeslice s as variables
value = none; only timeslice. fraction of a year. (VAR_NCAP+PA
for the ANNUAL Used for shaping the STI,
timeslice a value load curve and VAR_COMX,
of 1 is predefined lining up timeslice VAR_IRE,
duration for inter- VAR_FLO,
regional exchanges. VAR_SIN/OUT)
in the commodity
balance equation
69
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ(l)_COMBAL
).
IRE_BND top_ire • Commodity unit • Only applicable for inter- Bound on the total • Controls the
(r,datayear,c,s,all_r,i • [open]; default regional exchange import (export) of instances for
e,bd) value = none processes (IRE). commodity (c) from which the trade
• Default i/e: none • If the bound is specified (to) region all_r in bound constraint
for a timeslice (s) being (out of) region r. (EQ(l)_IREBND)
above the commodity (c) is generated, and
timeslice resolution, the the RHS.
bound is applied to the
sum of the
imports/exports
according to the timeslice
tree.
• Standard aggregation.
IRE_FLO top_ire • Commodity unit • Only applicable for inter- Efficiency of • Applied to the
(r1,datayear,p,c1,r2,c c2/commodity regional exchange exchange process exchange flow
2,s2) unit c1 processes (IRE) between from commodity c1 variable
• [open]; default two internal regions. in region r1 to (VAR_IRE) in the
value = 1 • Note that for each commodity c2 in the inter-regional
• Default i/e: direction of trade a region2 in timeslice trade equation
standard separate IRE_FLO needs s2; the timeslice s2 (EQ_IRE).
to be specified. refers to the r2 • Applied to the
• Similar to FLO_FUNC region. exchange flow
for standard processes. variable
• Direct inheritance. (VAR_IRE) when
70
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
• Weighted aggregation. a bound on inter-
regional trade is to
be applied
(EQ(l)_IREBND).
IRE_FLOSUM top_ire • Commodity unit • Only applicable for inter- Auxiliary • The multiplier is
(r,datayear,p,c1,s,ie, c2/commodity regional exchange consumption (io = applied to the flow
c2,io) unit c1 processes (IRE). IN, owing to the variable
• [open]; default • Since the efficiency commodity entering (VAR_IRE)
value = 1 IRE_FLO can only be the process) or associated with an
• Default i/e: used for exchange production/ emission inter-reginal
standard between internal regions, (io = OUT, owing to exchange in the
IRE_FLOSUM may be the commodity commodity
used to define an leaving the process) balance constraint
efficiency for an of commodity c2 (EQ(l)_COMBAL
import/export with an due to the IMPort / ).
external region by EXPort (index ie) of • If a flow share
specifying the same the commodity c1 in (FLO_SHAR) is
region r 28
28
The indexing of auxiliary consumption flows or emissions of inter-regional exchange processes is illustrated in the figure below.
71
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
commodity for c1 and c2 provided for an
and the value 1- inter-regional
efficiency as auxiliary exchange process
consumption. then the multiplier
• Direct inheritance. is applied to the
• Weighted aggregation. flow variable
(VAR_IRE) in the
share constraint
(EQ(l)_IN/OUTS
HR).
• If a cost is provide
for the flow
(FLO_COST or
FLO_DELIV)
then the factor is
applied to the flow
variable
(VAR_IRE) in the
72
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
variable
component of the
objective function
(EQ_OBJVAR).
IRE_PRICE OBJ_IPRIC, • Monetary unit / • Only applicable for inter- IMPort/EXPort price • The price of the
(r,datayear,p,c,s,all_r CST_COMV, commodity unit regional exchange (index ie) for exchange
,ie,cur) PAR_OBJCOM, • [open]; default processes (IRE). to/from an internal commodity is
TOT_COM, value: none • Ignored if all_r is an region of a applied to the
top_ire • Default i/e: internal region. commodity (c) trade flow variable
standard • Direct inheritance. originating (VAR_IRE) in the
• Weighted aggregation. from/heading to an variable costs
external region component of the
all_r. objective function
(EQ_OBJVAR).
IRE_XBND top_ire • Commodity unit • Only applicable for inter- Bound on the total • The trade limit
(all_r,datayear,c,s • [open]; default regional exchange IMPort (EXPort) equation
ie,bd) value: none processes (IRE). (index ie) of EQ(l)_XBND
• Default i/e: none • Provide whenever a trade commodity c in generated either
flow is to be constrained. region all_r with all sums lower flow
• Note that the limit is sources variables
either imposed by (destinations). (VAR_IRE) or
summing lower or splits (according
splitting higher flow to the timeslice
variables (VAR_IRE) tree) coarser
when specified at other variables.
73
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
than the actual flow level
(as determined by the
commodity and process
levels (COM_TSL/
PRC_TSL ).
IRE_CCVT IRE_TSCVT, • Scalar • Required for mapping Conversion factor • The conversion
(r1,c1,r2,c2)) top_ire • Default value = 1 commodities involved in between commodity factor is applied to
if commodity inter-regional exchanges units in region r1 the flow variable
names are the between two regions and region r2. (VAR_IRE) in the
same in both whenever commodities Expresses the inter-regional
regions traded are in different amount of balance constraint
• I/e: none units in the regions. commodity c2 in (EQ_IRE).
region r2 equivalent • Similarly, applied
to 1 unit of to the the flow
commodity c1 in variable
region r1. (VAR_IRE) when
an inter-regional
exchange is
bounded in the
limit constratint
(EQ(l)_IREBND).
• Similarly, applied
to the the flow
variable
(VAR_IRE) when
an exchange with
74
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
an external region
is bounded
(EQ(l)_XBND).
IRE_TSCVT IRE_CCVT, • Scalar • Used for mapping Matrix for mapping • The conversion
(r1,s1,r2,s2) top_ire • [open]; default timeslices in different timeslices; the value factor is applied to
value = 1 if regions. for (r1,s1,r2,s2) the flow variable
timeslice tree and • Required if timeslice gives the fraction of (VAR_IRE) in the
names are the definitions are different timeslice s2 in inter-regional
same in both in the regions. region r2 that falls balance constraint
regions in timeslice s1 in (EQ_IRE).
• I/e: none region r1. • Similarly, applied
to the the flow
variable
(VAR_IRE) when
an inter-regional
exchange is
bounded in the
limit constratint
(EQ(l)_IREBND).
• Similarly, applied
to the the flow
variable
(VAR_IRE) when
an exchange with
an external region
is bounded
75
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ(l)_XBND).
MULTI NCAP_AFM, • Scalar • Only provided when the Multiplier table used {See Related
(j,allyear) NCAP_FOMM, • [open]; default related shaping for any shaping Parameters}
NCAP_FSUBM, value = none parameters are to be parameters (*_*M)
NCAP_FTAXM used. to adjust the
corresponding
technical data as
function of the year;
the table contains
different multiplier
curves identified by
the index j.
NCAP_AF NCAP_AFA, • Decimal fraction • NCAP_AF, NCAP_AFA Availability factor • The
(r,datayear,p,s,bd) NCAP_AFS, • [0,1]; default and NCAP_AFS can be relating a unit of corresponding
NCAP_AFM, value = 1 applied simultaneously. production (process capacity-activity
NCAP_AFX, • Default i/e: • Direct inheritance. activity) in timeslice constraint
COEF_AF standard • Weighted aggregation. s to the current (EQ(l)_CAPACT
installed capacity. ) will be
generated for any
timeslice s.
• If the process
timeslice level
(PRC_TSL) is
below said level,
the activity
variables will be
summed.
76
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
NCAP_AFA NCAP_AFA, • Decimal fraction • Provided when Annual availability • The
(r,datayear,p,bd) NCAP_AFS, • [0,1]; default ‘ANNUAL’ level process factor relating the corresponding
NCAP_AFM, value = 1 operation is to be annual activity of a capacity-activity
NCAP_AFX, • Default i/e: controlled. process to the constraint
COEF_AF standard • NCAP_AF, NCAP_AFA installed capacity. (EQ(l)_CAPACT
and NCAP_AFS can be ) will be
applied simultaneously. generated for the
• NCAP_AFA is always ‘ANNUAL’
assumed to be non- timeslice.
vintage depedent, even if • If the process
the process is defined as timeslice level
a vintaged one; for (PRC_TSL) is
vintage-dependent annual below said level,
availability NCAP_AFS the activity
with s=’ANNUAL’ can variables will be
be used. summed.
NCAP_AFS • Decimal fraction • NCAP_AF, NCAP_AFA Availability factor • The
(r,datayear,p,s,bd) • [0,1]; default and NCAP_AFS can be relating the activity corresponding
value = 1 applied simultaneously. of a process in a capacity-activity
• Default i/e: • NCAP_AFS being timeslice s being at constraint
standard specified for timeslices s or above the process (EQ(l)_CAPACT
being below the process timeslice level ) will be
timeslice level are (prc_tsl) to the generated for a
ignored. installed capacity. If timeslice s being
• No inheritance. for example the at or above the
• No aggregation. process timeslice process timeslice
77
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
level is ‘DAYNITE’ level (prc_tsl).
and NCAP_AFS is • If the process
specified for timeslice level is
timeslices on the below said level,
‘SEASONAL’ level, the activity
the sum of the variables will be
‘DAYNITE’ summed.
activities within a
season are restricted,
but not the
‘DAYNITE’
activities directly.
NCAP_AFM NCAP_AF, • Integer number • If more than one Period sensitive {See Related
(r,datayear,p) NCAP_AFA, • Default value: multiplier curve are multiplier curve Parameters}
NCAP_AFS, 0 (no multiplier specified by the user, (MULTI) to be
MULTI, applied) only one is used (the one applied to the
COEF_AF • I/e not possible having the highest availability factor
number). parameters
(NCAP_AF/AFA/A
FS) of a process.
NCAP_AFX NCAP_AF, • Integer number • Provided when shaping Age-based shaping {See Related
(r,datayear,p) NCAP_AFA, • Default value: 0 based upon age is curve (SHAPE) to Parameters}
NCAP_AFS, (no shape curve desired. be applied to the
SHAPE, applied) • NCAP_AFX is applied to availability factor
COEF_AF • Default NCAP_AF and parameters
extrapolation none NCAP_AFS, but not the (NCAP_AF/AFA/A
annual availabiliy FS) of a process.
78
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
NCAP_AFA.
• If the process is not-
vintaged, the SHAPE
parameter is applied to
NCAP_AF(S) of the
vintage period, i.e., for
the availability factor it is
assumed that the process
behaves as a vintaged
one.
NCAP_BND • Capacity unit • Provided for each Bound on the • Imposes an
(r,datayear,p,bd) • [open]; default process to have its permitted level on indirect limit on
value: none overall installed capacity investment in new the capacity
• Default i/e: none (VAR_NCAP) limited in capacity transfer equation
a period. (EQ_CPT) by
• As default inter- means of a direct
/extrapolation is turned- bound on the new
off, so the bound must be investments
explicitly specified for capacity variable
milestoneyear, unless an (VAR_NCAP).
inter-/extrapolation • May appear in
option is given, e.g. user constraints
NCAP_BND(R,’0’,P) (EQ_UC*) if
=2, which turns on (‘NCAP_BNDLO/
interpolation for FX/ UP’)
NCAP_BND for all specified in
79
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
processes (see Table 7). UC_NAME.
NCAP_CLED NCAP_ICOM • Years • Provided when a Lead time • Applied to the
(r,datayear,p,c) COEF_ICOM • [open]; default commodity must be requirement for a investment
value: = available prior to commodity during variable
NCAP_ILED availability of a process. construction (VAR_NCAP) in
• Default i/e: So, if the process is (NCAP_ICOM), the commodity
standard available in the year B(v) prior to the initial balance
+NCAP_ILED-1, the availability of the (EQ(l)_COMBAL
commodity is produced capacity. ) of the investment
during the time span period or previous
[B(v)+ILED-CLED, B(v) periods.
+NCAP_ILED-1].
• Usually used when
modelling the need for
fabrication of reactor fuel
the period before a
reactor goes online.
NCAP_COM rpc_capflo, • Commodity unit • Provided when the Emission (or land- • Applied to the
(r,datayear,p,c,io) rpc_conly per capacity unit consumption or use) of commodity c capacity variable
• [open]; default production of a associated with the (VAR_CAP) in
value: none commodity is tied to the capacity of a process the commodity
• Default i/e: level of the installed for each year said balance
standard capacity. capacity exists. (EQ_COMBAL).
NCAP_COST OBJ_ICOST, • Monetary unit per • Provided whenever there Investment costs of • Applied to the
(r,datayear,p) OBJSCC, capacity unit is a cost associated with new installed investment
CST_INVV, • [open]; default putting new capacity in capacity according variable
80
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
PAR_OBJINV, value: none place. to the installation (VAR_NCAP)
TOT_INV • Default i/e: year. when entering the
standard objective function
(EQ_OBJNV).
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
NCAP_DCOST NCAP_DLAG, • Monetary unit per • Provided when there are Cost of dismantling • Applied to the
(r,datayear,p,cur) COR_SALVD, capacity unit decommissioning costs a facility after the current capacity
OBJ_DCOST, • [open]; default associated with a process. end of its lifetime. subject to
CST_DECV, value: none • Decommissioning of a decommissioning
PAR_OBJDEC, • Default i/e: process and the payment (VAR_NCAP+NC
TOT_DEC standard of decommissioning AP_PASTI) when
costs may be delayed by entering the
a lag time objective function
(NCAP_DLAG). (EQ_OBJNV).
NCAP_DELIF NCAP_DLIFE, • Years • Provided when the Economic lifetime • Applied to the
(r,datayear,p) COR_SALVD, • [open]; default timeframe for paying for of the investment
DUR_MAX, value: decommission is decommissioning variable
OBJ_CRFD, NCAP_DLIFE different from that of the activity. (VAR_NCAP)
SALV_DEC • Default i/e: actual decommissioning. when entering the
standard salvage portion of
the objective
function
81
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ_OBJSALV).
NCAP_DISC rp_dscncap • Capacity unit • Used for lumpy Size of capacity • Applied to the
(r,datayear,p,unit) • [open]; default investments. units that can be lumpy investment
value: none • Requires MIP. added. integer variable
• No i/e (VAR_DNCAP)
in the discrete
investment
equation
(EQ_DSCNCAP)
to set the
corresponding
standard
investment
variable level
(VAR_NCAP).
NCAP_DLAG COEF_OCOM, • Years • Provided when there is a Number of years • Delay applied to a
(r,datayear,p) DUR_MAX, • [open]; default lag in the delay before decommissioning
OBJ_DLAGC value: decommissioning of a decommissioning flow (VAR_FLO)
NCAP_DLIFE process (e.g., to allow the can begin after the in the balance
• Default i/e: nuclear core to reduce its lifetime of a equation
standard radiation). technology has (EQ(l)_COMBAL
ended. ) as production.
• Delay applied to
the current
capacity subject to
decommissioning
82
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(VAR_NCAP+NC
AP_PASTI) when
entering the
objective function
components
(EQ_OBJINV,
EQ_OBJFIX,
EQ_OBJSALV).
NCAP_DLAGC NCAP_DLAG, • Monetary unit per • Provided when there is a Cost occurring • Cost during delay
(r,datayear,p,cur) OBJ_DLAGC, capacity unit cost during any lag in the during the lag time applied to the
CST_FIXV, • [open]; default decommissioning (e.g., after the technical current capacity
PAR_OBJFIX, value: none security). lifetime of a process subject to
TOT_FIX • Default i/e: has ended and decommissioning
standard before its (VAR_NCAP+NC
decommissioning AP_PASTI) when
starts. entering the
objective function
components
(EQ_OBJFIX,
EQ_OBJSALV).
NCAP_DLIFE DUR_MAX • Years • Provided when a process Technical time for • Decommissioning
(r,datayear,p) • [open]; default has a decommissioning dismantling a time impacting
value: none phase. facility after the end (VAR_NCAP+NC
• Default i/e: its technical lifetime, AP_PASTI) when
standard plus any lag time entering the
(NCAP_DLAG). objective function
components
83
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(EQ_OBJINV,
EQ_OBJSALV).
NCAP_DRATE G_DRATE, • Percent • Provided if the cost of Technology specific • Discount rate
(r,datayear,p) COR_SALVI, • [open]; default borrowing for a process discount rate. applied to
COR_SALVD value: G_DRATE is different from the investments
• Default i/e: standard discount rate. (VAR_NCAP+NC
standard AP_PASTI) when
entering the
objective function
components
(EQ_OBJINV,
EQ_OBJSALV).
NCAP_ELIFE NCAP_TLIFE, • years • Provided only when the Economic lifetime • Economic lifetime
(r,datayear,p) COR_SALVI, • [open]; default economic lifetime differs of a process. of a process when
OBJ_CRF value: from the technical costing investment
NCAP_TLIFE lifetime (NCAP_TLIFE). (VAR_NCAP+NC
• Default i/e: AP_PASTI) or
standard capacity in the
objective function
components
(EQ_OBJINV,
EQ_OBJSALV,
EQ_OBJFIX).
NCAP_FOM OBJ_FOM, • Monetary unit per • Provided when there is a Fixed operating and • Fixed operating
(r,datayear,p,cur) CST_FIXV, capacity unit fixed cost associated with maintenance cost and maintenance
PAR_OBJFIX, • [open]; default the installed capacity. per unit of capacity costs associated
84
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
TOT_FIX value: none according to the with total installed
• Default i/e: installation year. capacity
standard (VAR_NCAP+NC
AP_PASTI) when
entering the
objective function
components
(EQ_OBJFIX).
NCAP_FOMM NCAP_FOM, • Integer number • Provided when shaping Period sensitive {See Related
(r,datayear,p) MULTI • Default value: based upon the period is multiplier curve Parameters}
0 (no multiplier desired. (MULTI) applied to
curve applied) • If more than one the fixed operating
• I/e: not possible multiplier curve are and maintenance
specified by the user, costs
only one is used (the one (NCAP_FOM).
having the highest
number).
NCAP_FOMX NCAP_FOM, • Integer number • Provided when shaping Age-based shaping {See Related
(r,datayear,p) SHAPE • Default value: 0 based upon age is curve (SHAPE) to Parameters}
(no shape curve desired. be applied to the
applied) fixed operating and
• Default i/e: none maintenance cost.
NCAP_FSUB OBJ_FSB, • Monetary unit per • Provided when there is a Subsidy per unit of • Fixed subsidy
(r,datayear,p,cur) CST_FIXV, capacity unit subsidy for associated installed capacity. associated with
PAR_OBJFIX, • [open]; default with the level of installed total installed
TOT_FIX value: none capacity. capacity
85
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
• Default i/e: (VAR_NCAP+NC
standard AP_PASTI) when
entering the
objective function
component
(EQ_OBJFIX)
with a minus sign.
NCAP_FSUBM NCAP_FSUB, • Integer number • Provided when shaping Period sensitive {See Related
(r,datayear,p) MULTI • Default value: based upon the period is multiplier curve Parameters}
0 (no multiplier desired. (MULTI) applied to
curve applied) • If more than one the subsidy
• I/e: not multiplier curve are (NCAP_FSUB).
possible specified by the user,
only one is used (the one
having the highest
number).
NCAP_FSUBX NCAP_FSUB, • Integer number • Provided when shaping Age-based shaping {See Related
(r,datayear,p) SHAPE • Default value: 0 based upon age is curve (SHAPE) to Parameters}
(no shape curve desired. be applied to the
applied) fixed subsidy
• Default i/e: none (NCAP_FSUB).
NCAP_FTAX OBJ_FTAX, • monetary unit per • Provided when there is a Tax per unit of • Fixed subsidy
(r,datayear,p,cur) CST_FIXV, capacity unit fixed tax based upon the installed capacity. associated with
PAR_OBJFIX, • [open]; default level of the installed total installed
TOT_FIX value: none capacity. capacity
• Default i/e: (VAR_NCAP+NC
86
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
standard AP_PASTI) when
entering the
objective function
components
(EQ_OBJFIX).
NCAP_FTAXM NCAP_FTAX, • Integer number • Provided when shaping Period sensitive {See Related
(r,datayear,p) MULTI • Default value: 0 based upon the period is multiplier curve Parameters}
(no multiplier desired. (MULTI) applied to
curve applied) • If more than one the tax
• I/e not possible multiplier curve are (NCAP_FTAX).
specified by the user,
only one is used (the one
having the highest
number).
NCAP_FTAXX NCAP_FTAX, • Integer number • Provided when shaping Age-based shaping {See Related
(r,datayear,p) SHAPE • Default value: 0 based upon age is curve (SHAPE) to Parameters}
(no shape curve desired. be applied to the
applied) fixed subsidy
• Default i/e: none (NCAP_FSUB).
NCAP_ICOM NCAP_CLED, • Commodity unit • Provided when a Amount of • Applied to the
(r,datayear,p,c) rpc_capflo, per capacity unit commodity is needed in commodity (c) investment
rpc_conly • [open]; default the period in which the required for the variable
value: none new capacity is to be construction of new (VAR_NCAP) in
• Default i/e: available, or before capacity. the appropriate
standard NCAP_CLED commodity
• If NCAP_CLED is constraints
87
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
provided, the commodity (EQ(l)_COMBAL
is required during the ) as part of
years consumption.
[B(v)+NCAP_CLED,B(v
)+NCAP_ILED-
NCAP_CLED]. If this
time spans more than one
period, the commodity
flow is split up
proportionally between
the periods.
• For the commodity
balance the commodity
requirement in a period is
converted in an average
annual commodity flow
for the entire period,
although the construction
may take place only for a
few years of the period
• Negative value describes
production (e.g.
emissions) at the time of
a new investment
NCAP_ILED COEF_CPT, • Years • Provided when there is a Lead time between • Applied to the
(r,t,p) COEF_ICOM, • [open]; default delay between when the investment decision investment
DUR_MAX and actual
88
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
value: none investment decision availability of new variable
• Default i/e: occurs (NCAP_ILED-1) capacity (= (VAR_NCAP)
standard and when the capacity construction time) balance
(new capacity or past constraints
investment) is initially (EQ(l)_COMBAL
available. ) as part of
• For past investment the consumption, if
investment costs are there is an
taken from the associated flow.
PASTYEAR. • In combination
• Impacts the timing of the with the period
shaping parameters. duration D used as
indicator to
distinguish small
and large
investments
(VAR_NCAP)
and thus
influences the way
the investment and
fixed costs are
treated in the
objective function
(EQ_OBJINV,
EQ_OBJFIX,
EQ_OBJSALV).
NCAP_ISUB OBJ_ISUB, • monetary unit per • Provided when there is a Subsidy per unit of • Applied to the
89
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(r,datayear,p,cur) OBJSCC, capacity unit subsidy for new new installed investment
CST_INVV, • [open]; default investments in a period. capacity. variable
CST_SALV, value: none (VAR_NCAP)
PAR_OBJINV, • Default i/e: when entering the
PAR_OBJSAL, standard objective function
TOT_INV, (EQ_OBJNV)
TOT_SAL with a minus sign.
• May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
NCAP_ITAX OBJ_ITAX, • monetary unit per • Provided when there is a Tax per unit of new • Applied to the
(r,datayear,p,cur) OBJSCC, capacity unit tax associated with new installed capacity investment
CST_INVV, • [open]; default investments in a period. variable
CST_SALV, value: none (VAR_NCAP)
PAR_OBJINV, • Default i/e: when entering the
PAR_OBJSAL, standard objective function
TOT_INV, (EQ_OBJNV).
TOT_SAL • May appear in
user constraints
(EQ_UC*) if
specified in
UC_NAME.
NCAP_OCOM NCAP_VALU, • Commodity unit • Provided when there is a Amount of • Applied to the
(r,datayear,p,c) OBJ_LATV, per capacity unit commodity release commodity c per investment
90
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
PAR_OBJLAT, • [open]; default associated with the unit of capacity variable
TOT_LAT, value: none decommissioning. released during the (VAR_NCAP) in
rpc_capflo, • Default i/e: • The year index of the dismantling of a the appropriate
rpc_conly standard parameter corresponds to process. commodity
the vintage year. constraints
• If the decommissioning (EQ(l)_COMBAL
time (NCAP_DLIFE) ) as part of
falls in more than one production in the
period, is split up appropriate
proportionally among the period.
periods.
• For the commodity
balance the commodity
release in a period is
converted in an average
annual commodity flow
for the entire period,
although the dismantling
may take place only for a
few years of the period.
NCAP_PASTI NCAP_PASTY, • capacity unit • Past investment can also Investment in new EQ(l)_COMBAL
(r,v,p) OBJ_PASTI, • [open]; default be specified for capacity made EQ_CPT
PAR_PASTI value: none milestoneyears, e.g. if the before the beginning EQ_OBJINV,
• No i/e milestoneyear is a of the model horizon EQ_OBJSALV,
historic year, so that (in the year specified EQ_OBJFIX
capacity additions are by pastyear).
91
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
known or if planned
future investments are
already known.
NCAP_PASTY NCAP_PASTI • Years • Provided to spread a Number of years to {See NCAP_PASTI}
(r,pastyear,p) • [open]; default single past investment go back to calculate
value: none (NCAP_PASTI) back a linear build-up of
• No i/e over several years (e.g., past investments
cars in the period before
the 1st milestoneyr were
bought over the previous
15 years).
• If overlaps with other
past investments, the
capacity values are
added.
NCAP_PKCNT com_peak, • Decimal fraction • If the indicator Fraction of capacity • Applied to
(r,datayear,p,s) com_pkts, • [0,1]; default PRC_PKAF is specified, that can contribute investments in
prc_pkaf, value: 1 the NCAP_PKCNT is set to peaking capacity
prc_pkno • Default i/e: equal to the availabilities equations. (VAR_NCAP,
standard NCAP_AF. NCAP_PASTI) in
• Direct inheritance. the peaking
• Weighted aggregation. constraint
(EQ_PEAK).
NCAP_TLIFE NCAP_ELIFE, • Years • Expected for all Technical lifetime of • Impacts all
(r,datayear,p) COEF_CPT, • [open]; default technologies. a process. calculations that
92
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
COEF_RPTI, value: G_TLIFE are dependent
DUR_MAX • Default i/e: upon the
standard availability of
investments
(VAR_NCAP)
including capacity
transfer
(EQ_CPT),
commodity flow
(EQ(l)_COMBAL
), costs
(EQ_OBJINV,
EQ_OBJFIX,
EQ_OBJVAR,
EQ_OBJSALV).
NCAP_VALU NCAP_OCOM, • Monetary unit / • Provided when a released Value of a • Applied to the
(r,datayear,p,c,cur) OBJ_LATV, commodity unit commodity has a value. commodity released investment related
PAR_OBJLAT, • [open]; default at decommissioning (VAR_NCAP,
TOT_LAT value: none (NCAP_OCOM). NCAP_PASTI)
• Default i/e: release flow at
standard decommissioning
in the objective
function
(EQ_OBJSALV).
PRAT PBT • Scalar • Provided for learning Progress ratio • Fundamental
(r,teg) PAT • [0,1]; default technologies (teg) when indicating the drop factor to describe
CCOST0 ETL is used. in the investment the learning curve
93
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
CCAPK value none cost each time there and thus effects
BETA is a doubling of the nearly all
ALPH installed capacity. equations and
variables related
to endogenous
technology
learning (ETL).
PRC_ACTFLO PRC_CAPACT, • Commodity unit / • Only (rarely) provided Conversion factor • Applied to the
(r,datayear,p,cg) prc_actunt, activity unit when the activity and from units of primary
prc_spg, rpc_aire • [open]; default flow variables of a activity to units of commodity
value: 1 process are in different those flow variables (prc_pcg) flow
• Default i/e: units. that define the variables
standard activity (primary (VAR_FLO,
commodity group). VAR_IRE) to
relate overall
activity
(VAR_ACT in
EQ_ACTFLO).
• When the
Reduction
algorithm
activated it is
applied to the
activity variable
(VAR_ACT) in
those cases where
the flow variable
94
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(VAR_FLO) can
be replaced by the
activity variable
(e.g. the activity is
defined by one
commodity flow).
PRC_CAPACT PRC_ACTFLO, • Activity unit / Conversion factor • Applied along
(r,p) prc_actunt capacity unit from capacity unit to with the
• [open]; default activity unit availability factor
value: 1 assuming that the (NCAP_AF) to
• Default i/e: capacity is used for the investment
standard one year. (VAR_NCAP +
NCAP_PASTI) in
the utilization
equation
(EQ(l)_CAPACT)
.
• Applied to the
investment
(VAR_NCAP +
NCAP_PASTI) in
the peak constraint
(EQ_PEAK).
• Applied to the
investment
(VAR_NCAP +
95
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
NCAP_PASTI) in
the commodity
specific capacity
utilization
constraint
(EQL_CAFLAC)
in the VTT
extension (see
Table 16).
• Applied to the
investment or
(VAR_NCAP +
NCAP_PASTI) in
the capacity
utilization
constraint for
extraction
condensing CHP
plants for
condensing mode
(ECT_AFCON)
and backpressure
mode
(ECT_AFCHP) in
the IER extension
(see Table 16).
• Applied to the
96
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
investment
(VAR_NCAP +
NCAP_PASTI) of
extraction
condension CHP
plants in the peak
constraint
(EQ_PEAK) with
a converison
factor converting
the input-oriented
capacity definition
into electricity
terms in the IER
extension (see
Table 16).
SC0 • Monetary unit / • For learning technologies Initial specific • Defines together
(r,teg) capacity unit teg when ETL is used. investment costs. with CCAP0
• [open]; default initial point of
value none learning curve and
affects thus the
core equations
and variables of
endogenous
technological
learning (ETL).
SEG • Integer • For learning technologies Number of • Influences the
97
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(r,teg) • [open]; teg when ETL is used. segments. piecewise linear
• Currently limited to six approximation of
segments by set kp. the cumulative
cost curve
(EQ_COS,
EQ_LA1,
EQ_LA2).
SHAPE FLO_FUNC, • Scalar • Provided for each age Multiplier table used {See Related
(j,age) FLO_SUM, • [open]; default dependent shaping curve for any shaping Parameters}
NCAP_AFX, value = none that is to be applied. parameters (*_*X)
NCAP_FOMX, to adjust the
NCAP_FSUBX, corresponding
NCAP_FTAXX technical data as
function of the age;
the table can contain
different multiplier
curves that are
identified by the
index j.
STG_EFF prc_nstts, • Decimal fraction • Only applicable to Efficiency of storage • Applied to the
(r,datayear,p) prc_stgips, • [open]; default storage processes (STG): process. storage output
prc_stgtss value: 1 timeslice storage, inter- flow
• Default i/e: period storage or night (VAR_SOUT) in
standard storage devices. the commodity
balance
(EQ(l)_COMBAL
) for the stored
98
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
commodity.
STG_CHRG prc_nstts, • Scalar • Only applicable to Annual exogenous • Exogenous
(r,datayear,p,s) prc_stgips, • [open]; default storage processes (STG): charging of a storage charging of
prc_stgtss value: none timeslice storage, inter- technology in a storage enters
• Default i/e: period storage or night particular timeslice storage equations
standard storage devices. s. (EQ_STGTSS,
EQ_STGIPS) as
right-hand side
constant.
STG_LOSS prc_nstts, • Scalar • Only applicable to Annual energy loss • Storage process
(r,datayear,p,s) prc_stgips, • [open]; default storage processes (STG): of a storage process between
prc_stgtss value: none timeslice storage, inter- per unit of average timeslices
• Default i/e: period storage or night energy stored. (EQ_STGTSS):
standard storage devices. applied to the
average storage
level
(VAR_ACT)
between two
consecutive
timeslices.
• Storage process
between periods
(EQ_STGIPS):
applied to the
average storage
level from the
99
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
preperiod
(VAR_ACT) and
the net inflow
(VAR_SIN-
VAR_SOUT) of
the current period.
STGIN_BND prc_nstts, • Commodity unit • Only applicable to Bound on the input • Storage input
(r,datayear,p,c,s,bd) prc_stgips, • [open]; default storage processes (STG): flow of a storage bound constraint
prc_stgtss value: none timeslice storage, inter- process in a (EQ(l)_STGIN)
• Default i/e: none period storage or night timeslice s. when s is above
storage devices. prc_tsl of the
storage process.
• Direct bound on
storage input flow
(VAR_STGIN)
when at the
prc_tsl level.
STGOUT_BND prc_nstts, • Commodity unit • Only applicable to Bound on the output • Storage output
(r,datayear,p,c,s,bd) prc_stgips, • [open]; default storage processes (STG): flow of a storage bound constraint
prc_stgtss value: none timeslice storage, inter- process in a (EQ(l)_STGIN)
• Default i/e: none period storage or night timeslice s. when s is above
storage devices. prc_tsl of the
storage process.
• Direct bound on
storage output
flow variable
100
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
(VAR_STGOUT)
when at the
prc_tsl level.
UC_ACT uc_n, uc_gmap_p • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default • Direct inheritance. activity variable
,p,s) value: none • Weighted aggregation. VAR_ACT in a user
• Default: i/e: constraint.
standard
UC_FLO uc_n • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default • Direct inheritance. flow VAR_FLO
,p,c,s) value: none • Weighted aggregation. variable in a user
• Default: i/e: constraint.
standard
UC_IRE uc_n • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default • Direct inheritance. trade variable
,p,c,s) value: none • Weighted aggregation. VAR_IRE in a user
• Default: i/e: constraint.
standard
UC_COMCON uc_n, uc_gmap_c • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default • No commodity
,c,s) value: none inheritance/aggregation consumption
• Default: i/e: (might be changed in the variable
standard future). VAR_COMCON in
a user constraint.
UC_COMPRD uc_n, uc_gmap_c • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default • No net commodity
101
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
,c,s) value: none inheritance/aggregation production variable
• Default: i/e: (might be changed in the VAR_COMPRD in
standard future). a user constraint.
UC_CAP uc_n, uc_gmap_p • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default activity variable
,p) value: none VAR_CAP in a user
• Default: i/e: constraint.
standard
UC_NCAP uc_n, uc_gmap_p • None • Used in user constraints. Coefficient of the EQ(l)_UCXXX
(uc_n,side,r,datayear • [open]; default activity variable
,p) value: none VAR_NCAP in a
• Default: i/e: user constraint.
standard
UC_RHS uc_n, uc_r_sum, • None • Used in user constraints. RHS constant with • RHS (right-hand
(uc_n,bd) uc_t_sum, • [open]; default bound type of bd of side) constant of a
uc_ts_sum value: none a user constraint. user constraint,
• Default i/e: none which is summing
over regions
(uc_r_sum),
periods
(uc_t_sum) and
timeslices
(uc_ts_sum)
(EQ(l)_UC).
UC_RHSR uc_n, uc_r_each, • None • Used in user constraints. RHS constant with • RHS constant of
(r,uc_n,bd) uc_t_sum, • [open]; default bound type of bd of user constraints,
102
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
uc_ts_sum value: none a user constraint. which are
• Default i/e: none generated for each
specified region
(uc_r_each) and
are summing over
periods
(uc_t_sum) and
timeslices
(uc_ts_sum)
(EQ(l)_UCR).
UC_RHST uc_n, uc_r_sum, • None • Used in user constraints. RHS constant with • RHS constant of
(uc_n,datayear,bd) uc_t_each, • [open]; default bound type of bd of user constraints,
uc_t_succ, value: none a user constraint. which are
uc_ts_sum • Default i/e: none generated for each
specified period
(uc_t_each) and
are summing over
regions
(uc_r_sum) and
timeslices
(uc_ts_sum)
(EQ(l)_UCT).
• If uc_t_succ
instead of
uc_t_each is
specified the
constraints will be
103
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
generated as
dynamic
constraint between
the two successive
periods
(EQ(l)_UCSU).
UC_RHSRT uc_n, uc_r_each, • None • Used in user constraints. RHS constant with • RHS constant of
(r,uc_n,datayear,bd) uc_t_each, • [open]; default bound type of bd of user constraints,
uc_t_succ, value: none a user constraint. which are
uc_ts_sum • Default i/e: none generated for each
specified region
(uc_r_each) and
period
(uc_t_each) and
are summing over
timeslices
(uc_ts_sum)
(EQ(l)_UCRT).
• If uc_t_succ
instead of
uc_t_each is
specified the
constraints will be
generated as
dynamic
constraint between
the two successive
104
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
periods
(EQ(l)_UCRSU).
UC_RHSTS uc_n, uc_r_sum, • None • Used in user constraints. RHS constant with • RHS constant of
(uc_n,datayear,s,bd) uc_t_each, • [open]; default • No bound type of bd of user constraints,
uc_t_succ, value: none inheritance/aggregation. a user constraint. which are
uc_ts_each • Default i/e: none generated for each
specified period
(uc_t_each) and
timeslice
(uc_ts_each) and
are summing over
regions
(uc_r_sum)
(EQ(l)_UCTS).
• If uc_t_succ
instead of
uc_t_each is
specified the
constraints will be
generated as
dynamic
constraint between
the two successive
periods
(EQ(l)_UCSUS).
UC_RHSRTS uc_n, uc_r_each, • None • Used in user constraints. RHS constant with • RHS constant of
(r,uc_n,datayear,s,bd uc_t_each, bound type of bd of
105
Units / Ranges & Instances 24 Description Affected equations
Input parameter Related Default values & (Required / Omit / Special or variables 25
(Indexes) 21 sets/parameters 22 Default inter- conditions)
/extrapolation 23
) uc_t_succ, • [open]; default • No a user constraint. user constraints,
uc_ts_each value: none inheritance/aggregation. which are
• Default i/e: none generated for each
specified region
(uc_r_each),
period
(uc_t_each) and
timeslice
(uc_ts_each)
(EQ(l)_UCRTS).
• If uc_t_succ
instead of
uc_t_each is
specified the
constraints will be
generated as
dynamic
constraint between
the two successive
periods
(EQ(l)_UCRSUS)
.
106
3.2 Internal parameters
Table 13 gives an overview of internal parameters generated by the TIMES preprocessor. Similar to the description of the internal
sets, not all internal parameters used within TIMES are discussed. The list given in Table 13 focuses mainly on the parameters used in
the preparation and creation of the equations in Chapter 5. In addition to the internal parameters listed here, the TIMES preprocessor
computes additional internal parameters which are either used only as auxiliary parameters being valid only in a short section of the
code or which are introduced to improve the performance of the code regarding computational time.
29
The first row contains the parameter name, the second row contains in brackets the index domain, for which the parameter is
defined.
107
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
COEF_AF • For each technology, at the level of Availability coefficient of the capacity (new investment variable
(r,v,t,p,s,bd) process operation (PRC_TSL). VAR_NCAP plus still existing past investments NCAP_PASTI) in
EQ(l)_CAPACT; COEF_AF is derived from the availability input
parameters NCAP_AF, NCAP_AFA and NCAP_AFS taking into
account any specified MULTI or SHAPE multipliers.
COEF_CPT • For each technology the amount of Fraction of capacity built in period v that is available in period t;
(r,v,t,p) an investment (VAR_NCAP) might be smaller than 1 due to NCAP_ILED in vintage period or the
available in the period. fact that the lifetime ends within a period.
COEF_ICOM • Whenever there is a commodity Coefficient for commodity requirement during construction in period
(r,v,t,p,c) required during construction, the t due to investment decision in period v (see also NCAP_ICOM).
consuming being taken from the
balance constraint
(EQ(l)_COMBAL).
• Applied to the investment variable
(VAR_NCAP) of period v in the
commodity balance
(EQ(l)_COMBAL) of period t.
• The duration during which the
commodity is produced starts in the
year B(v)+NCAP_ILED(v)-
NCAP_CLED(v) and ends in the
year B(v)+NCAP_ILED(v)-1.
108
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
COEF_OCOM • Whenever there is a commodity Coefficient for commodity release during decommissioning time in
(r,v,t,p,c) released during decomissioning, the period t due to investment made in period v.
production being added to the
balance constraint
(EQ(l)_COMBAL).
• Applied to the investment variable
(VAR_NCAP) of period v in the
commodity balance
(EQ(l)_COMBAL) of period t.
• The release occurs during the
decommissioning lifetime
NCAP_DLIFE.
COEF_PTRAN • For each flow through a process. Coefficient of flow variable of commodity c belonging to commodity
(r,v,t,p,cg,c,com_grp) group cg in EQ_PTRANS equation between the commodity groups
cg and com_grp.
COEF_RPTI • For each technology whose Number of repeated investment of process p in period v when the
(r,v,p) technical life (NCAP_TLIFE) is technical lifetime minus the construction time is shorter than the
shorter than the period. period duration; Rounded to the next largest integer number.
COR_SALVD • For each technology existing past Correction factor for decommissioning costs taking into account
(r,v,p,cur) the end of the modelling horizon technical discount rates and economic decommissioning times.
with decommissioning costs,
adjustment in the objective function.
COR_SALVI • For each process extending past the Correction factor for investment costs taking into account technical
(r,v,p,cur) end of the modelling horizon discount rates, economic lifetimes and a user-defined discount shift
adjustment in the objective function. (triggered by the control switch MIDYEAR (see Table 15).
D • For each period, D(t) = E(t)–B(t)+1. Duration of period t.
(t)
109
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
DUR_MAX • For the model. Maximum of NCAP_ILED + NCAP_TLIFE + NCAP_DLAG +
NCAP_DLIFE + NCAP_DELIF over all regions, periods and
processes.
M • For each period, if the duration of Middle year of period t.
(v) the period is even, the middle year
of the period is B(t) + D(t)/2 – 1, if
the period is uneven, the middle year
is B(t) + D(t)/2 –0.5 .
MINYR • For the model Minimum year over t = M(t) – D(t) +1; used in objective function.
MIYR_V1 • For the model First year of model horizon.
MIYR_VL • For the model Last year of model horizon.
NTCHTEG • For learning technologies teg when Number of processes using the same key technology teg.
(r,teg) ETL with technology clusters is
used.
OBJ_ACOST • For each process with activity costs. Inter-/Extrapolated variable costs (ACT_COST) for activity variable
(r,y,p,cur) • Enters the objective function (VAR_ACT) for each year.
(EQ_OBJVAR).
OBJ_CNCST • For each commodity with costs on Inter-/Extrapolated cost on net production (COM_CSTNET) of
(r,y,c,s,cur) the net production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMNET.
(EQ_OBJVAR).
OBJ_CNSUB • For each commodity with subsidies Inter-/Extrapolated subsidy on net production (COM_SUBNET) of
(r,y,c,s,cur) on the net production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMNET.
(EQ_OBJVAR).
110
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
OBJ_CNTAX • For each commodity with taxes on Inter-/Extrapolated tax on net production (COM_TAXNET) of
(r,y,c,s,cur) the net production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMNET.
(EQ_OBJVAR).
OBJ_CPCST • For each commodity with costs on Inter-/Extrapolated cost on production (COM_CSTPRD) of
(r,y,c,s,cur) the cumulative production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMPRD.
(EQ_OBJVAR).
OBJ_CPSUB • For each commodity with subsidies Inter-/Extrapolated subsidy on production (COM_SUBPRD) of
(r,y,c,s,cur) on the cumulative production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMPRD.
(EQ_OBJVAR).
OBJ_CPTAX • For each commodity with taxes on Inter-/Extrapolated tax on production (COM_TAXPRD) of
(r,y,c,s,cur) the cumulative production. commodity (c) for each year associated with the variable
• Enters the objective function VAR_COMPRD.
(EQ_OBJVAR).
OBJ_CRF • For each technology with Capital recovery factor of investment in technology p in objective
(r,y,p,cur) investment costs. function taking into account the economic lifetime (NCAP_ELIFE)
• Enters objective function and the technology specific discount rate (NCAP_DRATE) or, if the
(EQ_OBJINV). latter is not specified, the general discount rate (G_DRATE).
OBJ_CRFD • For each technology with Capital recovery factor of decommissioning costs in technology p
(r,y,p,cur) decommissioning costs. taking into account the economic lifetime (NCAP_DELIF) and the
• Enters objective function technology specific discount rate (NCAP_DRATE) or, if the latter is
(EQ_OBJINV). not specified, the general discount rate (G_DRATE).
OBJ_DCEOH • Enters objective function Discount factor for the year EOH + 1 based on the general discount
(r,cur) (EQ_OBJSALV). rate (G_DRATE).
111
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
OBJ_DCOST • For each technology with Inter-/Extrapolated decommissioning costs (NCAP_DCOST) for
(r,y,p,cur) decommissioning costs. each year related to the investment (VAR_NCAP) of process p.
• Enters objective function
(EQ_OBJINV).
OBJ_DISC • Enters objective function Annual discount factor based on the general discount rate
(r,y,cur) (EQ_OBJINV, EQ_OBJVAR, (G_DRATE) to discount costs in the year y to the base year
EQ_OBJFIX, EQ_OBJSALV, (G_DYEAR).
EQ_OBJELS).
OBJ_DIVI • Enters objective function Divisor for investment costs (period duration, technical lifetime or
(r,v,p) (EQ_OBJINV). investment lead time depending on the investment cases 1a, 1b, 2a,
2b).
OBJ_DIVIII • Enters objective function Divisor for decommissioning costs and salvaging of
(r,v,p) (EQ_OBJINV). decommissioning costs (period duration, technical lifetime or
decommissioning time depending on the investment cases 1a, 1b, 2a,
2b).
OBJ_DIVIV • Enters objective function Divisor for fixed operating and maintenance costs and salvaging of
(r,v,p) (EQ_OBJFIX). investment costs.
OBJ_DLAGC • Enters objective function Inter-/Extrapolated fixed capacity (VAR_NCAP+NCAP_PASTI)
(r,y,p,cur) (EQ_OBJFIX). costs between the end of the technical lifetime and the beginning of
the decommissioning for each year.
OBJ_FCOST • For each flow variable with flow Inter-/Extrapolated flow costs (FLO_COST) for each year for the
(r,y,p,c,s,cur) related costs. flow or trade variable (VAR_FLO, VAR_IRE) as well as capacity
• Enters objective function related flows (specified by NCAP_COM, NCP_ICOM,
(EQ_OBJVAR). NCAP_OCOM).
112
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
OBJ_FDELV • For each flow with delivery costs. Inter-/Extrapolated delivery costs (FLO_DELIV) for each year for
(r,y,p,c,s,cur) • Enters objective function the flow or trade variable (VAR_FLO, VAR_IRE) as well as
(EQ_OBJVAR). capacity related flows (specified by NCAP_COM, NCP_ICOM,
NCAP_OCOM).
OBJ_FOM • For each process with fixed Inter-/Extrapolated fixed operating and maintenance costs
(r,y,p,cur) operating and maintenance costs. (NCAP_FOM) for the installed capacity
• Enters the objective function (VAR_NCAP+NCAP_PASTI) for each year.
(EQ_OBJFIX).
OBJ_FSB • For each process with subsidy on Inter-/Extrapolated subsidy (NCAP_FSUB) on installed capacity
(r,y,p,cur) existing capacity. (VAR_NCAP+NCAP_PASTI) for each year.
• Enters objective function
(EQ_OBJFIX).
OBJ_FSUB • For each flow variable with Inter-/Extrapolated subsidy (FLO_SUB) for the flow or trade
(r,y,p,c,s,cur) subsidies. variable (VAR_FLO, VAR_IRE) for each year as well as capacity
• Enters objective function related flows (specified by NCAP_COM, NCP_ICOM,
(EQ_OBJVAR). NCAP_OCOM).
OBJ_FTAX • For each flow variable with taxes. Inter-/Extrapolated tax (FLO_TAX) for flow or trade variable
(r,y,p,c,s,cur) • Enters objective function (VAR_FLO, VAR_IRE) for each year as well as capacity related
(EQ_OBJVAR). flows (specified by NCAP_COM, NCP_ICOM, NCAP_OCOM).
OBJ_FTX • For each process with taxes on Inter-/Extrapolated tax (NCAP_FTAX) on installed capacity
(r,y,p,cur) existing capacity. (VAR_NCAP+NCAP_PASTI) for each year.
• Enters objective function
(EQ_OBJFIX).
OBJ_ICOST • For each process with investment Inter-/Extrapolated investment costs (NCAP_COST) for investment
(r,y,p,cur) costs. variable (VAR_NCAP) for each year.
• Enters objective function
(EQ_OBJINV).
113
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
OBJ_IPRIC • For each import/export flow with Inter-/Extrapolated import/export prices (IRE_PRICE) for
(r,y,p,c,s,all_r,ie,cur) prices assigned to it. import/export variable (VAR_IRE) for each year.
• Enters objective function
(EQ_OBJVAR).
OBJ_ISUB • For each process with subsidy on Inter-/Extrapolated subsidy (NCAP_ISUB) on new capacity
(r,y,p,cur) new investment. (VAR_NCAP) for each year.
• Enters objective function
(EQ_OBJINV).
OBJ_ITAX • For each process with taxes on new Inter-/Extrapolated tax (NCAP_ITAX) on new capacity
(r,y,p,cur) investment. (VAR_NCAP) for each year.
• Enters objective function
(EQ_OBJINV).
OBJ_PASTI • Enters objective function Correction factor for past investments.
(r,v,p,cur) (EQ_OBJINV).
OBJSIC • For learning technologies. Investment cost related salvage value of learning technology teg with
(r,v,teg) • Enters objective function vintage period v at year EOH+1.
(EQ_OBJINV).
OBJSSC • For processes with investment costs. Investment cost related salvage value of process p with vintage
(r,v,p,cur) • Enters objective function period v at year EOH+1.
(EQ_OBJSALV).
PAT • For learning technologies teg when Learning curve coefficient in the relationship:
(r,teg) ETL is used. SC = PAT * VAR_CCAP^(-PBT).
PBT • For learning technologies teg when Learning curve exponent PBT(r,teg) = LOG(PRAT(r,teg))/LOG(2).
(r,teg) ETL is used.
PYR_V1 • For the model Minimum of pastyears and MINYR .
114
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
RS_STGPRD • Only applicable to storage processes Number of storage periods in a year for each timeslice.
(r,s) (STG): timeslice storage, inter-
period storage or night storage
devices.
RTP_FFCX • The efficiency parameter Average SHAPE multiplier of the parameter FLO_FUNC and
(r,v,t,p,cg,c,cg) COEF_PTRAN is multiplied by the FLO_SUM efficiencies in the EQ_PTRANS equation in the period
factor (1+RTP_FFCX). (t) for capacity with vintage period (v). The SHAPE curve, which
• Enters EQ_PTRANS equation. should be used, is specified by the user parameter FLO_FUNCX.
The SHAPE feature allows to alter technical parameter given for the
vintage period as a function of the age of the installation.
115
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
RTCS_TSFR • You modified the description of The effective handling of timeslice aggregation/disaggregation. If ts
(r,t,c,s,ts) COM_FR by saying that it "Affects is below s in the timeslice tree, the value is 1, if s is below ts the
timeslice resolution at which a value is COM_FR(r,s) / COM_FR(r,ts) for demand commodities
commodity is tracked with COM_FR given and G_YRFR(r,s) / G_YRFR(r,ts) for all other
(RTCS_TSFR), and thereby may commodities.
affect when a process can operate The parameter is used to match the timeslice resolution of flow
(RTPS_OFF)". Actually COM_FR variables (VAR_FLO/VAR_IRE) and commodities. RTCS_TSFR is
affects the timeslice fractions the coefficient of the flow variable, which is producing or consuming
(RTCS_TSFR) of any commodity commodity c, in the commodity balance of c. If timeslice s
for which COM_FR has been corresponds to the commodity timeslice resolution of c and timeslice
provided. For example, if a process ts to the timeslice resolution of the flow variable two cases may
operates at the SEASON level but occur:
produces a DAYNITE level The flow variables are on a finer timeslice level than the
commodity, COM_FR will commodity balance: in this case the flow variables with timeslices s
determine the DAYNITE fractions being below ts in the timeslice tree are summed to give the
produced within each SEASON! As aggregated flow within timeslice ts. RTCS_TSFR has the value 1.
I have tried to say, this applies to all 1) The flow variables are on coarser timeslice level than the
commodities (this is not my design commodity balance: in this case the flow variable is split-up
at all, but might be useful). Thus, I on the finer timeslice level of the commodity balance
think that the previous description according to the ratio of the timeslice duration of s to ts:
was more correct ("affects all RTCS_TSFR has the value = COM_FR(r,s) / COM_FR(r,s1)
commodities through for demand commodities and G_YRFR(r,s) / G_YRFR(r,s1)
RTCS_TSFR"). otherwise. When COM_FR is used, the demand load curve is
moved to the demand process. Thus, it is possible to model
demand processes on an ANNUAL level and ensure at the
same time that the process follows the given load curve
COM_FR.
116
Internal Instances Description
parameter 29 (Required / Omit / Special conditions)
(Indexes)
SALV_DEC • For those technology with salvage Salvage proportion of decommissioning costs made at period v with
(r,v,p,k,ll) costs incurred after the model commissioning year k.
horizon the contribution to the
objective function.
SALV_INV • For those technology with salvage Salvage proportion of investment made at period v with
(r,v,p,k) costs incurred after the model commissioning year k.
horizon the contribution to the
objective function.
YEARVAL • A value for each year. Numerical value of year index (e.g. YEARVAL(‘1984’) equals
(y) 1984).
117
3.3 Report parameters
The parameters generated internally by TIMES to document the results of a model run are listed in Table 14. These parameters can be
imported into the VEDA-BE tool for further result analysis. The list of report parameters that are converted out of the GDX 30 file via
the gdx2veda GAMS utility into a VEDA-BE compatible format according to the file times2veda.vdd 31. Note that some of the
results are not transferred into parameters, but are directly accessed through the times2veda.vdd file (namely: shadow price of
commodity balance, of peaking equation, total discounted value of objective function). The following naming conventions apply to the
prefixes of the report parameters:
• CST_: detailed annual undiscounted cost parameters; note that also the costs of past investments, which are constants in the
objective function, are being reported;
• DPAR_: shadow prices;
• PAR_: primal solution;
• TOT_: Annual undiscounted costs by type.
30
GDX stands for GAMS Data Exchange. A GDX file is a binary file that stores the values of one or more GAMS symbols such
as sets, parameters variables and equations. GDX files can be used to prepare data for a GAMS model, present results of a GAMS
model, store results of the same model using different parameters etc. A GDX file does not store a model formulation or executable
statements.
31
The use of the gdx2veda tool together with the times2veda.vdd control file as well as the VEDA-BE software are described in
a separate document.
32
The first row contains the parameter name, the second row contains in brackets the index domain, for which the parameter is
defined.
118
Report parameter 32 Description
(Indexes)
CST_COMV Annual undiscounted commodity (c) related costs (caused by IRE_PRICE, COM_CSTNET,
(r,t,c,s) COM_TAXNET, COM_SUBNET, COM_CSTPRD, COM_TAXPRD, COM_SUBPRD) in
period (t).
CST_DECV Annual undiscounted decommissioning costs (caused by NCAP_DCOST) in period (t)
(r,v,t,p) associated with the dismantling of process (p) with vintage period (v).
CST_FIXV Annual undiscounted fixed operating and maintenance costs (caused by NCAP_FOM,
(r,v,t,p) NCAP_FTAX, NCAP_FSUB, NCAP_DLAGC) in period (t) associated with the installed
capacity of process (p).
CST_FLOV Annual undiscounted flow related costs (caused by FLO_COST, FLO_DELV, FLO_TAX,
(r,v,t,p,c,s) FLO_SUB) in period (t) associated with a commodity (c) flow in/out of a process (p) with
vintage period (v) as well as capacity related commodity flows (specified by NCAP_COM,
NCAP_ICOM, NCAP_OCOM).
CST_INVV Annual undiscounted investment costs (caused by NCAP_COST) in period (t) spread over the
(r,v,t,p) economic lifetime (NCAP_ELIFE) of a process (p) with vintage period (v).
CST_LATV Annual undiscounted late revenues, which are caused by sunk materials (NCAP_OCOM) in
(r,t,p) period (t) having a salvage value (NCAP_VALU), associated with process (p) with vintage
period (v).
CST_SALV Undiscounted salvage value of costs (NCAP_COST, NCAP_DLAGC, NCAP_DCOST)
(r,v,p) associated with investments (VAR_NCAP, NCAP_PASTI), of which the technical lifetime
exceeds the end of the model horizon; the total salvage value associated with the investment of
process (p) is reported for the vintage year (v).
F_IN Input flow (consumption) of commodity (c) in period (t) and timeslice (s) into process (p) with
(r,v,t,p,c,s) vintage period (v), including exchange processes.
F_OUT Output flow (production) of commodity (c) in period (t) and timeslice (s) into process (p) with
(r,v,t,p,c,s) vintage period (v), including exchange processes.
PAR_ACTL Level value of activity variable (VAR_ACT) in period (t) and timeslice (s) of process (p) with
(r,v,t,p,s) vintage period (v).
119
Report parameter 32 Description
(Indexes)
PAR_ACTM Undiscounted annual reduced costs of activity variable (VAR_ACT) in period (t) and timeslice
(r,v,t,p,s) (s) of process (p) with vintage period (v); the reduced costs describe in the case, that the activity
variable is at its lower (upper) bound, the cost increase (decrease) of the objective function
caused by an increase of the lower (upper) bound by one unit; the reduced costs can also be
interpretated as the necessary decrease=subsidy (increase=tax) of the cost coefficient of the
activity variable in the objective function, so that the activity variable will leave its lower
(upper) bound.
PAR_CAPL Existing capacity of process (p) in period (t) (derived from VAR_NCAP in previous periods and
(r,t,p) still existing past investments NCAP_PASTI).
PAR_CAPLO Lower bound on capacity variable (CAP_BND(‘LO’)), only reported, if the lower bound is
(r,t,p) greater than zero.
PAR_CAPM Undiscounted reduced costs of capacity variable (VAR_CAP); only reported in those cases, in
(r,t,p) which the capacity variabel is generated (bound CAP_BND specified or endogenous technology
learning is used); the reduced costs describe in the case, that the capacity variable is at its lower
(upper) bound, the cost increase (decrease) of the objective function caused by an increase of the
lower (upper) bound by one unit; the reduced costs can also be interpretated as the necessary
decrease=subsidy (increase=tax) of the cost coefficient of the capacity variable in the objective
function, so that the capacity variable will leave its lower (upper) bound.
PAR_CAPUP Upper bound on capacity variable (CAP_BND(‘UP’)), only reported; if the upper bound is
(r,t,p) smaller than infinity.
PAR_COMBALEM Undiscounted annual shadow price of commodity balance (EQE_COMBAL) being a strict
(r,t,c,s) equality. The marginal value describes the cost increase in the objective function, if the
difference between production and consumption is increased by one unit. The marginal value
can be determined by the production side (increasing production), but can also be set by the
demand side (e.g., decrease of consumption by energy saving or substitution measures).
120
Report parameter 32 Description
(Indexes)
PAR_COMBALGM Undiscounted annual shadow price of commodity balance (EQG_COMBAL) being an
(r,t,c,s) inequality (production being greater or equal consumption); positive number, if production
equals consumption; the marginal value describes the cost increase in the objective function, if
the difference between production and consumption is increased by one unit. The marginal value
can be determined by the production side (increasing production), but can also be set by the
demand side (e.g., decrease of consumption by energy saving or substitution measures).
PAR_COMNETL Level value of the variable corresponding the net level of a commodity (c) (VAR_COMNET).
(r,t,c,s) The net level of a commodity is equivalent to the total production minus total consumption of
said commodity. It is only reported, if a bound, cost is specified for it or it is used in a user
constraint.
PAR_COMNETM Undiscounted annual reduced costs of the VAR_COMNET variable of commodity (c). It is only
(r,t,c,s) reported, if a bound, cost is specified for it or it is used in a user constraint.
PAR_COMPRDL Level value of the commodity production variable (VAR_COMPRD). The variable describes the
(r,t,c,s) total production of a commodity. It is only reported, if a bound, costs is specified for it or it is
used in a user constraint.
PAR_COMPRDM Undiscounted annual reduced costs of the commodity production variable (VAR_COMPRD). It
(r,t,c,s) is only reported, if a bound, costs is specified for it or it is used in a user constraint.
PAR_FLO Flow of commodity (c) entering or leaving process (p) with vintage period (v) in period (t).
(r,v,t,p,c,s)
PAR_FLOM Discounted reduced costs of flow variable of commodity (c) in period (t) of process (p) with
(r,v,t,p,c,s) vintage period period (v); the reduced costs describe in the case, that the flow variable is at its
lower (upper) bound, the cost increase (decrease) of the objective function caused by an increase
of the lower (upper) bound by one unit; the reduced costs can also be interpretated as the
necessary decrease=subsidy (increase=tax) of the cost coefficient of the flow variable in the
objective function, so that the flow will leave its lower (upper) bound.
PAR_IRE Inter-regional exchange flow of commodity (c) in period (t) via exchange process (p) entering
(r,v,t,p,c,s,ie) region (r) as import (ie=’IMP’) or leaving region (r) as export (ie=’EXP’).
121
Report parameter 32 Description
(Indexes)
PAR_IREM Discounted reduced costs of inter-regional exchange flow variable of commodity (c) in period
(r,v,t,p,c,s,ie) (t) of exchange process with vintage period (v); the reduced costs describe in the case, that the
flow variable is at its lower (upper) bound, the cost increase (or decrease) of the objective
function caused by an increase of the lower (upper bound) by one unit; the reduced costs can
also be interpretated as the necessary decrease=subsidy (increase=tax) of the cost coefficient of
the flow variable in the objective function, so that the flow will leave its lower (upper) bound.
PAR_NCAPL Level value of investment variable (VAR_NCAP) of process (p) in period (v).
(r,v,p)
PAR_NCAPM Undiscounted reduced costs of investment variable (VAR_NCAP) of process (p); only reported,
(r,v,p) when the capacity variable is at its lower or upper bound; the reduced costs describe in the case,
that the investment variable is at its lower (upper) bound, the cost increase (decrease) of the
objective function caused by an increase of the lower (upper) bound by one unit; the reduced
costs can also be interpretated as the necessary decrease=subsidy (increase=tax) of the cost
coefficient of the investment variable in the objective function, so that the investment variable
will leave its lower (upper) bound.
PAR_OBJACT Annual discounted variable costs (caused by ACT_COST) in year (y) associated with the
(r,v,y,p,s,cur) operation (activity) of a process (p) with vintage period (v).
PAR_OBJCOM Annual discounted commodity (c) related costs (caused by IRE_PRICE, COM_CSTNET,
(r,y,c,s,cur) COM_TAXNET, COM_SUBNET, COM_CSTPRD, COM_TAXPRD, COM_SUBPRD) in year
(y).
PAR_OBJDEC Annual discounted decommissioning costs (caused by NCAP_DCOST) in year (y) associated
(r,v,y,p,cur) with the dismantling of process (p) with vintage period (v).
PAR_OBJELS Annual discounted changes in the objective function due to elastic demand changes of
(r,y,c,cur) commodity (c). When elastic demands are used the objective function describes the utility ( =
consumer surplus plus producer surplus), which reaches its maximum in the equilibrium of
demand and supply.
122
Report parameter 32 Description
(Indexes)
PAR_OBJFIX Annual discounted fixed operating and maintenance costs (caused by NCAP_FOM,
(r,v,y,p,cur) NCAP_FTAX, NCAP_FSUB, NCAP_DLAGC) in year (y) associated with the installed
capacity of process (p).
PAR_OBJFLO Annual discounted flow related costs (caused by FLO_COST, FLO_DELV, FLO_TAX,
(r,v,y,p,c,s,cur) FLO_SUB) in year (y) associated with a commodity (c) flow in/out of a process (p) with vintage
period (v) as well as capacity related commodity flows (specified by NCAP_COM,
NCAP_ICOM, NCAP_OCOM).
PAR_OBJINV Annual discounted investment costs (caused by NCAP_COST) in year (y) spread over the
(r,v,y,p,cur) economic lifetime (NCAP_ELIFE) of a process (p) with vintage period (v).
PAR_OBJLAT Annual discounted late revenues (see section 5.2 on objective function), which are caused by
(r,y,p,cur) sunk materials (NCAP_OCOM) released in year (y) having a salvage value (NCAP_VALU),
associated with process (p) with vintage period (v).
PAR_OBJSAL Discounted salvage value of costs (NCAP_COST, NCAP_DLAGC, NCAP_DCOST) associated
(r,v,p,cur) with investments (VAR_NCAP, NCAP_PASTI), of which the technical lifetime exceeds the end
of the model horizon; the total salvage value associated with the investment of process (p) is
reported for the vintage year (v).
PAR_PASTI Residual capacity of past investments (NCAP_PASTI) of process (p) still existing in period (t).
(r,t,p)
PAR_PEAKM Undiscounted annual shadow price of peaking equation (EQ_PEAK) associated with commodity
(r,t,c,s) (c); since the peaking equation is at most only binding for one timeslice (s), a shadow price only
exists for one timeslice. The shadow price can be interpretated as an additional premium to the
shadow price of the commodity balance, which consumers of commodity (c) have to pay for
consumption during peak times, the premium is used (besideds other sources) to cover the
capacity related costs (e.g., investment costs) of capacity contributing reserve capacity during
peak times.
REG_OBJ Discounted objective value (EQ_OBJ) for each region (r).
(r)
123
Report parameter 32 Description
(Indexes)
TOT_ACT Total annual discounted variable costs of all processes in a region (r).
(r,y,cur)
TOT_COM Total annual discounted commodity costs (incl. import/export prices) in region (r) over all
(r,y,cur) commodities.
TOT_DEC Total annual discounted decommissioning costs of all processes in region (r).
(r,y,cur)
TOT_FIX Total annual discounted fixed and operating maintenance costs of all processes in region (r).
(r,y,cur)
TOT_FLO Total annual discounted flow related costs of all commodity flows in region (r).
(r,y,cur)
TOT_INV Total annual discounted investment costs of all processes in region (r).
(r,y,cur)
TOT_LAT Total annual discounted late revenues of all processes in region (r).
(r,y,cur)
TOT_OBJ Total annual discounted objective function for each region (r).
(r,y,cur)
TOT_SAL Total annual discounted salvage costs of all processes in region (r).
(r,y,cur)
VDA_DISC Sum of annual present value factors OBJ_DISC over years within period t. The effect of one
(r,t) unit of variable cost on the objective coefficient of a variable in period t is the sum of annual
present value factors in that period. Thus, the sum of the annual present value factors is used for
period costs/shadow prices.
124
4 Variables
This chapter describes each variable name, definition, and role in the TIMES Linear
Program. To facilitate identification of the variables when examining the model’s source
code, all variable names start with the prefix VAR_. The value assigned to each variable
indexed by some time period, represents the average value in that time period, but the
case of VAR_NCAP(v) is an exception, since that variable represents a point-wise
investment decided at time period v. VAR_NCAP is discussed in detail below.
Table 4.1 is a list of TIMES variables by category, with brief decription of each variable.
125
Table 4.1. List of TIMES variables by category
126
Category Variable name Brief description
ELASTCOST Variable representing the demand loss portion
of a regional component of the objective
function
LATEREVENUES Parameter representing the late revenue portion
of a regional component of the objective
function.
SALVAGE Parameter representing the salvage value portion
of a regional component of the objective
function
33
User Constraint related
VAR_UC Variable representing the LHS expression of a
user constraint summing over regions
(uc_r_sum), periods (uc_t_sum) and timeslices
(uc_ts_sum).
VAR_UCR Variable representing the LHS expression of a
user constraint summing over periods
(uc_t_sum) and timeslices (uc_ts_sum) and
being generated for the regions specified in
uc_r_each.
VAR_UCT Variable representing the LHS expression of a
user constraint summing over regions
(uc_r_sum) and timeslices (uc_ts_sum) and
being generated for the periods specified in
uc_t_each.
VAR_UCRT Variable representing the LHS expression of a
user constraint summing over timeslices
(uc_ts_sum) and being generated for the
regions specified in uc_r_each and periods in
uc_t_each.
VAR_UCTS Variable representing the LHS expression of a
user constraint summing over regions
(uc_r_sum) and being generated for the periods
specified in uc_t_each and timeslices in
uc_ts_each.
VAR_UCRTS Variable representing the LHS expression of a
user constraint summing over periods being
generated for the regions specified in
uc_r_each, the periods in uc_t_each and
timeslices in uc_ts_each.
VAR_UCSU Variable representing the LHS expression of a
33
In case the dollar control parameter VAR_UC is set to YES, the user constraints are
always strict equalities (l=E) with the RHS constants replaced by the user constraint
variables given in the table. The RHS bound parameter (UC_RHS(R)(T)(S)) are then
applied to these user constraint related variables.
127
Category Variable name Brief description
dynamic user constraint summing over regions
(uc_r_sum) and timeslices (uc_ts_sum) and
being generated for the periods specified in
uc_t_succ.
VAR_UCSUS Variable representing the LHS expression of a
dynamic user constraint summing over regions
(uc_r_sum) and being generated for the periods
specified in uc_t_succ and timeslices in
uc_ts_each.
VAR_UCRSUS Variable representing the LHS expression of a
dynamic user constraint summing over periods
being generated for the regions specified in
uc_r_each, the periods in uc_t_succ and
timeslices in uc_ts_each.
VAR_UCRSU Variable representing the LHS expression of a
dynamic user constraint summing over
timeslices (uc_ts_sum) and being generated for
the regions specified in uc_r_each and periods
in uc_t_succ.
Notation for indexes: The following indexes are used in the remainer of this chapter:
4.1 VAR_ACT(r,v,t,p,s)
Definition: the overall activity of a process. VAR_ACT is defined by the
EQ_ACTFLO equation either as the sum of outflows or as the sum of inflows of a
particular (user selected) group of commodities, adequately normalized. If the
process is not vintaged, the vintage index v is by convention set equal to the
period index t.
Role: reports the activity of a process and implicitly defines how the capacity
is measured, since the activity is bounded by the available capacity in the
constraint EQ(l)_CAPACT, e.g. if the activity of a coal power plant is defined
over its electricity output, the capacity is measured in terms of the output
commodity, e.g. MWelectric. Similarly, if the activity variable represents the input
flow of coal, the capacity of the coal plant is measured in terms of the input
commodity, e.g. MWcoal.
128
4.2 VAR_BLND(r,ble,opr)
Definition: amount of the blending stock opr in energy, volume or weight
units needed for the production of the blending product ble in oil refinery
modeling.
4.3 VAR_CAP(r,t,p)
Definition: the installed capacity in place in any given year t, of all vintages
of a process determined by the equation EQ(l)_CPT. The variable is equal to the
sum of all previously made investments in new capacity, plus any remaining
residual capacity installed before the modeling horizon, that has not yet reached
the end of their technical lifetime.
4.4 VAR_COMNET(r,t,c,s)
Definition: the net amount of a commodity at period t, timeslice s. It is equal
to the difference between amount procured (produced plus imported) minus
amount disposed (consumed plus exported).
4.5 VAR_COMPRD(r,t,c,s)
Definition: the amount of commodity c procured at time period t, timeslice s.
4.6 VAR_DNCAP(r,t,p,u)
129
Definition: this variable is used only for processes selected by the user as being
discrete, i.e. for which investment at period t may only be equal to one of a set of
discrete sizes, specified by the user. For such processes, VAR_DNCAP is a binary
decision variable equal to 1 if the investment is equal to size ‘u’ and 0 otherwise.
Thanks to an additional constraint, only one of the various potential sizes allowed
for the investment at period t is indeed allowed.
4.7 VAR_ELAST(r,t,c,s,j,l)
Definition: these variables are defined whenever a demand is declared to be
price elastic. These variables are indexed by j, where j runs over the number of
steps used for discretizing the demand curve of commodity c (c = energy service
only). The jth variable stands for the portion of the demand that lies within
discretization interval j, on side l (l indicates either increase or decrease of demand
w.r.t. the reference case demand). Each ELAST variable is bounded upward via
equation EQ_BNDELAS.
Role: Each elastic demand is expressed as the sum of these variables. In the
objective function, these variables are used to bear the cost of demand losses as
explained in PART I, chapter 6.
4.8 VAR_FLO(r,v,t,p,c,s)
• Definition: these variables stand for the individual commodity flows in and
out of a process. If the process is not vintaged, the vintage index v is by
convention set equal to the period index t.
• Role: The flow variables are the fundamental quantities defining the detailed
operation of a process. They are used to define the activity of a process
(VAR_ACT) in a user chosen manner. They are also essential for expressing
various constraints that balance the flows of a commodity, or that control the
flexibility of processes.
4.9 VAR_IRE(r,v,t,p,c,s,ie)
130
similar to VAR_FLO for conventional processes. An option exists for trading
with an external region that is not modeled explicitly (exogenous trading). If
the process is not vintaged, the vintage index v is by convention set equal to
the period index t.
• Role: the role of an IRE variable is to embody the amount of a commodity in
or out of a trading process.
4.10 VAR_NCAP(r,v,p)
• Definition: the amount of new capacity (or what has traditionally been called
“investment” in new capacity, or capacity build-up) at period v. As already
mentioned, VAR_NCAP represents the total investment in technology p at
period v only when ILED+TLIFE ≥ D(v). When ILED+TLIFE < D(v), the
model assumes that the investment is repeated as many times as necessary
within the period so that the life of the last repetition is beyond the end of
period v. In this case VAR_NCAP represents the capacity level of the single
investments. Figure 1 illustrates a case where the investment is made twice in
period v (and some capacity still remains after period v). The average capacity
in period v resulting from the investment VAR_NCAP(v) is less than
VAR_NCAP(v), due to the delay ILED (it is equal to VAR_NCAP(v)*
D(v)/TLIFE). The average capacity in period v+1 due to VAR_NCAP(v) is also
less than VAR_NCAP(v) because the end of life of the second round of
investment occurs before the end of period v+1. These adjustments are made in
every equation involving VAR_NCAP by the internal parameter COEF_CPT.
VAR_NCAP
TLIFE TLIFE
ILED
D(v) D(v+1)
131
• Role: The new capacity (i.e. investment) variables are fundamental in defining
the investment decisions, and many other quantities derived from it (for instance
process capacities). They play a key role in the model structure and intervene in
the majority of constraints. They are notably used in equations that define the
conservation of capacity and those that tie the activity of a process to its capacity.
The omnipresence of VAR_NACP is in part due to the fact that the VAR_CAP
variable is not always defined in TIMES, by design. Note that residual capacity,
or capacity in place prior to the initial model year, is handled as a constant in
place of VAR_NCAP given by the input parameter NCAP_PASTI(y), which
describes the investment made prior to the first period in the pastyear y.
4.11.2 INVCOST(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to investments.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.3 INVTAXSUB(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to investment taxes and subsidies.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
132
4.11.4 INVDECOM(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to capital costs linked to decommissioning of a process.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.5 FIXCOST(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to fixed annual costs.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.6 FIXTAXSUB(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to taxes and subsidies attached to fixed annual costs.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.7 VARCOST(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to variable annual costs.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.8 ELASTCOST(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to the cost incurred when demands are reduced due to their price
elasticity.
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
4.11.9 LATEREVENUES(r,y)
Definition: equal to the portion of the cost objective for year y, region r, that
corresponds to certain late revenues from the recycling of materials from
dismantled processes that occur after the end-of-horizon.
Role: this is not a true variable in the GAMS code. It is used only as a
convenient place holder for writing the corresponding portion of the objective
function in this documentation. It may also be reported in VEDA-BE.convenient as
a replacement for the sum of the components of the total cost.
4.11.10 SALVAGE(r,y0)
Definition: equal to the portion of the cost objective for region r, that
corresponds to the salvage value of investments and other one-time costs. It is
discounted to some base year y0
Role: it is used mainly as a convenient place holder for writing the corresponding
portion of the objective function. It may also be reported in VEDA-BE.
133
4.12 VAR_SIN/SOUT(r,v,t,p,c,s)
Definition: flow entering/leaving at period t a storage process p, storing
commodity c. The process may be vintaged. If the process is not vintaged, the vintage
index v is by convention set equal to the period index t. For storages between
timeslices (prc_stgtss) and night-storage devices (prc_nsttss) the timeslice index s of
the storage flows is determined by the timeslice resolution of the storage (e.g.
DAYNITE for a day storage). For a storage operating between periods (prc_stgips),
the storage flows are always on an annual level and hence the timeslice s is then
always set to ANNUAL.
Role: to store some commodity so that it may be used in a time slice or period
different from the one in which it was procured; enters the expressions for the storage
constraints.
The remaining TIMES variables are all attached to user constraints. User constraints
are quite flexible, and may involve any of the usual TIMES variables. Two variants of
formulating a user constraints exist. In the first case a LHS expression, containing
expressions involving the different TIMES variables, are bounded by a RHS constant
(given by the input parameter UC_RHS(R)(T)(S)). In the second case, the constant on
the RHS is replaced by a variable. The bound UC_RHS(R)(T)(S) is then applied to
this variable. In the latter case, the user constraints are always generated as strict
equalities, while in the first case the equation sign of the user constraint is determined
by the bound type. The user constraint related variables are in fact redundant, but
quite useful in providing streamlined expressions for the user constraints (see chapter
5). By setting the dollar control parameter VAR_UC to YES in the run-file, the
variable based formulation is activated (second case). As a default, the formulation
without user constraint variables will be generated.
Each of the listed variables is related to a specific class of user constraint depending
on whether the user constraint is created for each period, region or time slice or only a
subset of these indices. In addition, some user constraints are defined for pair of
successive time periods (dynamic user constraint or growth constraint). Each variable
has at least one index (representing the user constraint uc_n for which this variable is
defined), and may have up to three additional indexes among r, t, and s.
134
4.13.2 VAR_UCR(uc_n,r)
Variable representing the LHS expression of the user constraint EQE_UCR(r,uc_n)
summing over periods (uc_t_sum) and timeslices (uc_ts_sum) and being generated for
the regions specified in uc_r_each.
4.13.3 VAR_UCT(uc_n,t)
Variable representing the LHS expression of the user constraint EQE_UCT(uc_n,t)
summing over regions (uc_r_sum) and timeslices (uc_ts_sum) and being generated for
the periods specified in uc_t_each.
4.13.4 VAR_UCRT(uc_n,r,t)
Variable representing the LHS expression of the user constraint EQE_UCRT(r,uc_n,t)
summing over timeslices (uc_ts_sum) and being generated for the regions specified in
uc_r_each and periods in uc_t_each.
4.13.5 VAR_UCTS(uc_n,t,s)
Variable representing the LHS expression of the user constraint
EQE_UCTS(uc_n,t,s) summing over regions (uc_r_sum) and being generated for the
periods specified in uc_t_each and timeslices in uc_ts_each.
4.13.6 VAR_UCRTS(uc_n,r,t,s)
Variable representing the LHS expression of the user constraint
EQE_UCRTS(r,uc_n,t,s) summing over periods being generated for the regions specified
in uc_r_each, the periods in uc_t_each and timeslices in uc_ts_each.
4.13.7 VAR_UCSU(uc_n,t)
Variable representing the LHS expression of a dynamic user constraint or a growth
constraint EQE_UCSU(uc_n,t) summing over regions (uc_r_sum) and timeslices
(uc_ts_sum) and being generated for the periods specified in uc_t_succ.
4.13.8 VAR_UCSUS(uc_n,t,s)
Variable representing the LHS expression of a dynamic user constraint or a growth
constraint EQE_UCSUS(uc_n,t,s) summing over regions (uc_r_sum) and being
generated for the periods specified in uc_t_succ and timeslices in uc_ts_each.
4.13.9 VAR_UCRSUS(r,uc_n,r,t,s)
4.13.10 VAR_UCRSU(uc_n,r,t)
Variable representing the LHS expression of a dynamic user constraint or a growth
constraint EQE_UCRSU(uc_n,r,t) summing over timeslices (uc_ts_sum) and being
generated for the regions specified in uc_r_each and periods in uc_t_succ.
135
5 Equations
This chapter is divided into four sections: the first section describes the main
notational conventions adopted in writing the mathematical expressions of the entire
chapter. The next two sections treat respectively the TIMES objective function and the
linear constraints of the model. The third section is devoted to the additional constraints
and objective function additions that are required for the two MIP options of the model,
Discrete (lumpy) Investments and Endogenous Technology Learning.
Each equation has a unique name and is described in a separate subsection. The
equations are listed in alphabetical order in each section. Each subsection contains
successively the name, list of indices, and type of the equation, the related variables and
other equations, the purpose of the equation, any particular remarks applying to it, and
finally the mathematical expression of the constraint or objective function.
The mathematical formulation of an equation starts with the name of the equation in
the format: EQ_XXXi,j,k,l , where XXX is a unique equation identifier, and i,j,k,.., are the
equation indexes, among those described in chapter 2. Some equation names also include
an index l controlling the sense of the equation. Next to the equation name is a logical
condition that the equation indexes must satisfy. That condition constitutes the domain of
definition of the equation. It is useful to remember that the equation is created in multiple
instances, one for each combination of the equation indexes that satisfies the logical
condition, and that each index in the equation’s index list remains fixed in the expressions
constituting each instance of the equation.
When an expression A(i,j,k,…) is summed, the summation must specify the range over
which the indexes are allowed to run. Our notational conventions are as follows:
When a single index j runs over a one-dimensional set A, the usual notation is used,
as in: ∑ Expression j where A is a single dimensional set.
j∈A
136
When a summation must be done over a subset of a multi-dimensional set, we use a
simplified notation where some of the running indexes are omitted, if they are not active
for this summation.
Example: consider the 3-dimensional set top consisting of all quadruples {r,p,c,io}
such that process p in region r, has a flow of commodity c with orientation io (see table 3
of chapter 2). If is it desired to sum an expression Ar,p,c,io over all commodities c, keeping
the region (r), process (p) and orientation (io) fixed respectively at r1, p1 and ‘IN’, we will
write, by a slight abuse of notation: ∑ A(r1 , p1 , c, ' IN ' ) , or even more simply:
c∈top ( r1 , p1 ,' IN ')
∑ A(r , p , c, ' IN ' ) , if the context is unambiguous. Either of these notations clearly
c∈top
1 1
indicates that r, p and io are fixed and that the only active running index is c.
(The traditional mathematical notation would have been: ∑ A(r1 , p, c1 , ' IN ' ) ,
{r1 , p1 , c , ' IN '}∈top
but this may have hidden the fact that c is the only running index active in the sum).
We use similar simplifying notation in writing the logical conditions of each equation.
A logical condition usually expresses that some parameter exists (i.e. has been given a
value by the user), and/or that some indexes are restricted to certain subsets.
A typical example of the former would be written as: ∋ ACTBNDr,t,p,s,bd, which reads:
“the user has defined an activity bound for process p in region r, time-period t, timeslice s
and sense bd”. The indexes may sometimes be omitted, when they are the same as those
attached to the equation name.
A typical example of the latter is the first condition for equation EQ_ACTFLOr,v,t,p,s
(see section 5.3.1), which we write simply as: rtp_vintyr , which is short for:
{r , v, t , p} ∈ rtp_vintyr , with the meaning that “some capacity of process p in region r,
created at period v, exists at period t”. Again here, the indices have been omitted from the
notation since they are already listed as indices of the equation name.
This notation often makes equations more legible and compact. A good example
appears in EQ_CAPACT.
137
5.2 Objective function EQ_OBJ
Equation EQ_OBJ Indices: region (r); state of the world (w);
process (p); time-slice (s); and perhaps
others ...
Type = Non Binding (MIN)
Purpose: the objective function is the criterion that is minimized by the TIMES model. It
represents the total discounted cost of the entire, possibly multi-regional system over the
selected planning horizon. It is also equal to the negative of the discounted total surplus
(plus a constant), as discussed in PART I, chapters 3 and 6.
34
The actual implementation of OBJ in the GAMS program is different from the one
described in the documentation, since the annualizing of the various cost components is
not performed in the GAMS code of the OBJ equation, but rather in the reporting section
of the program, for improved code performance. However, despite the simplification, the
GAMS code results in an objective function that is fully equivalent to the one in this
documentation.
138
For convenience, we repeat below that notation which is more especially used in the
objective function (see chapter 3 for the complete TIMES notation)
MILESTONEYEARS: the set of all milestone years (by convention: middle years, see
below M(t) )
PASTYEARS: Set of years prior to start of horizon, for which there is a past investment
(after interpolation of user data).
MODELYEARS: any year within the model’s horizon
FUTUREYEARS: set of years posterior to EOH
YEARS set of years before during and after planning horizon
t any member of MILESTONEYEARS or PASTYEARS. By convention, a
period t is represented by its middle year (see below M(t)). This convention
can be changed without altering the expressions in this document.
B(t) : the first year of the period represented by t
E(t) : the last year of the period represented by t
D(t) : the number of years in period t . By default, D(t)=1 for all past
years. Thus, D(t)=E(t)-B(t)+1
M(t): the “middle” year or milestone year of period t. Since period n may have
an even or an odd number of years, M(t) is not always exactly centered at
the middle of the period. It is defined as follows: M(t) = [B(t)+(D(t)-1)/2],
where [x] indicates the largest integer less than or equal to x. For example,
period from 2011 to 2020 includes 10 years, and its “middle year” is
[2011+4.5] or 2015 (slightly left of the middle), whereas the period from
2001 to 2015 has 15 years, and its “middle year” is : [2001+7] or 2008
(i.e. the true middle in this example)
y : running year, ranging over MODELYEARS, from B0 to EOH.
k : dummy running index of any year, even outside horizon
v: running index for a year, used when it represents a vintage year for some
investment.
v(p) vintage of process p (defined only if p is vintaged)
B0 : initial year (the single year of first period of the model run)
EOH : Last year in horizon for a given model run.
Similarly, by a slight abuse of notation, the above entities are extended as follows, when the
argument is a particular year, rather than a model year (I think that notation is not needed):
139
5.2.1.2 Other notation
d(y) : general (social) discount rate (time dependent, although not shown in
notation)
r(y) : general discount factor: r(y)=1/(1+d(y)) (time dependent, although not
shown in notation)
ds(t) : technology specific discount rate (model year dependent)
rs(t) : technology specific discount factor: rs(t)=1/(1+ds(t))
DISC(y,z): Value, discounted to the beginning of year z, of a $1 payment made at
beginning of year y, using general discount factor. DISC(y,z) = Πu=z to y-1 r(u)
CRFs(t): Capital recovery factor, using a (technology specific) discount rate and an
economic life appropriate to the payment being considered. This quantity
is used to replace an investment cost by a series of annual payments
spread over some span of time CRFs={1-rs(t)}/{1-rs(t)ELIFE}. Note that
a CRF using the genberal discount rate is also defined and udsed in the
SALVAGE portion of the objective function.
OBJ(z): Total system cost, discounted to the beginning of year z
INDIC(x): 1 if logical expression x is true, 0 if not
E is the smallest integer larger than of equal to E
There are two alternate discounting methods in TIMES. The default method is to assume
that all payments occur at the beginning of some year. The alternate method (activated by
a switch, see PART III) assumes that investments are incurred at the beginning of some
year, but that all annual (or annualized) payments occur at the middle of some year.
Section 5.1.11 explains the two methods.
The objective function is the sum of all regional objectives, all of them discounted to the
same user-selected base year, as shown in equation (A) below
140
EQ_OBJ(z) ∋ z ∈ MODELYEARS
Each regional objective OBJ(z,r) is decomposed into the sum of nine components, to
facilitate exposition, as per expression (B) below.
The regional index r is omitted from the nine components for simplicity of notation.
The first and second terms are linked to investment costs. The third term is linked to
decommissioning capital costs, the fourth and fifth terms to fixed annual costs, the sixth
term to all variable costs (costs proportional to some activity), the seventh to demand loss
costs. The eight cost (actually a revenue) accounts for commodity recycling occurring
after EOH, and the ninth term is the salvage value of all capital costs of technologies
whose life extends beyond EOH. The 9 components are presented in the nine subsections
5.1.2 to 5.1.10..
Remarks
a) The investment cost should be the overnight investment cost (excluding any interests
paid during construction) whenever the construction lead time is explicitly modeled
(i.e. cases 2 are used, see below). In such a case, the interests during construction are
endogenously calculated by the model itsef, as will be apparent in the sequel. If no
lead-time is specified (and thus cases 1 are used), the full cost of investments should
be used (including interests during construction, if any) 35.
b) Each individual investment physically occurring in year k, results in a stream of
annual payments spread over several years in the future. The stream starts in year
k and covers years k, k+1, …, k+ELIFE-1, where ELIFE is the economic life of
35
Ideally, it would be desirable that cases 1 be used only for those investments that
have no lead time (and thus no interests during construction). However, if a user employs
cases 1 for projects even though there are significant IDC’s, the latter should be included
in the investment cost.
141
the technology. Each yearly payment is equal to a fraction CRF of the investment
cost (CRF = Capital Recovery Factor). Note that if the technology discount rate is
equal to the general discount rate, then the stream of ELIFE yearly payments is
equivalent to a single payment of the whole investment cost located at year k,
inasmuch as both have the same discounted present value. If however the
technology’s discount rate is chosen different from the general one, then the
stream of payments has a different present value than the lump sum at year k. It is
the user’s responsibility to choose technology dependent discount rates, and
therefore to decide to alter the effective value of investment costs.
c) In addition to spreading the payments resulting from investment costs, a major
TIMES refinement is that the physical investment itself does not occur in a single
year, but rather as a series of annual increments. For instance, if the model invests
3 GW of electric capacity in a period extending from 2011 to 2020, the physical
capacity increase may be delayed and/or may be spread over several years. The
exact way the delaying and spreading are effected depends on several conditions,
which are specified further down as four separate cases, and which are function
both of the nature of the technology and of the length of the period in which the
investment takes place relative to the technology’s technical life. The spreading of
investments and the spreading of payments described in the previous paragraph,
help guarantee a smooth trajectory for most investment payments, a more realistic
representation than what happens in other models. Example I.1.a of figure 5.1
shows a case where the physical investment is spread over four years, and each
increment’s capital payments are further spread over 3 years.
d) The above two remarks entail that payments of investment costs may well extend
beyond the horizon. We shall also see that some investment payments occur in
years prior to the beginning of the planning horizon (cases 1 only).
e) Taxes and subsidies on investments are treated exactly as investment costs in the
objective function.
f) Since the model has the capability to represent sunk materials and energy carriers
(i.e. those embedded in a technology at construction time, such as the uranium
core of a nuclear reactor, or the steel imbedded in a car), these sunk commodities
have an impact on cost. Two possibilities exist: if the material is one whose
production is explicitly modeled in the RES, then there is no need to indicate the
cost corresponding to the sunk material, which will be implicitly accounted for by
the model just like any other flow. If on the other hand the material is not
specifically modeled in the RES, then the cost of the sunk material should be
included in the technology’s investment cost, and will then be handled exactly as
investment costs.
As mentioned above, the timing of the various types of payments and revenues is
made as realistic and as smooth as possible. All investment decisions result in increments
and/or decrements in the capacity of a process, at various times. These increments or
decrements may occur, in some cases, in one large lump, for instance in the case of a
large project (hydroelectric plant, aluminum plant, etc.), and, in other cases, in small
142
additions or subtractions to capacity (e.g. buying or retiring cars, or heating devices).
Depending on which case is considered, the assumption regarding the corresponding
streams of payments (or revenues) differs markedly. Therefore, the distinction between
small and large projects (called cases 1 and 2 below) will be crucial for writing the capital
cost components of the objective function. A second distinction comes from the relative
length of a project’s technical life vs. that of the period when the investment occurs.
Namely, if the life of an investment is less than the length of the period, then it is clear
that the investment must be repeated all along the period. This is not so when the
technical life extends beyond the period’s end. Altogether, these two distinctions result in
four mutually exclusive cases, each of which is treated separately. In what follows, we
present the mathematical expression for the INVCOST component and one graphical
example for each case.
Here, we make what appears to be the most natural assumption, i.e. that the
investment occurs in small yearly increments spread linearly over D(t) years. Precisely,
the capacity additions start at year M(t)-D(t)+1, and end at year M(t), which means that
payments start earlier than the beginning of the period, and end at the middle of the
period, see example. This seems a more realistic compromise than starting the payments
at the beginning of the period and stopping them at the end, since that would mean that
during the whole period, the paid for capacity would actually not be sufficient to cover
the capacity selected by the model for that period.
Investment
Case 1.a Example: D(t) and payment:
T LIFE
D(t)=4, T LIFE=5,ELIFE=3
M(t)=B(t)+1 Payment:
ELIFE only
B(t) M(t)
143
EQ_INVCOST(y) deals with linear investment buildup, over a span equal to
period length, ending at middle of period
Min{ M ( t ), y}
VAR _ NCAPt
INVCOST ( y ) = ∑ INDIC (1.a) × ∑
v = Max{ M ( t ) − D ( t ) +1, y − ELIFEt +1}
+ NCAP _ PASTI t
t∈MILESTONE ∪ PASTYRS D(t )
{M (t ) − D(t ) + 1 , M (t ) + ELIFEt − 1}
(I.1.a)
Comments: The summand represents the payment effected in year y, due to the
investment increment that occurred in year v (recall that investment payments are spread
over ELIFE). The summand consists of three factors: the first is the amount of investment
in year v, the second is the capital recovery factor, and the third is the unit investment
cost.
The outer summation is over all periods (note that periods later than T(y) are
relevant, because when y falls near the end of a period, the next period’s investment may
have already started). The inner summation is over a span of D(t) centered at B(t), but
truncated at year y. Also, the lower summation bound ensures that an investment
increment which occurred in year v has a payment in year y only if y and v are less than
ELIFE years apart.
Note that in this case the investment is repeated as many times as necessary to cover the
period length (see figure). In this case, the assumption that the investment is spread over
D(t) years is not realistic. It is much more natural to spread the investment over the
technical life of the process being invested in, because this ensures a smooth, constant
stream of small investments during the whole period (any other choice of the time span
over which investment is spread, would lead to an uneven stream of incremental
investments). The number of re-investments in the period is called C, and is easily
computed so as to cover the entire period. As a result of this discussion, the first investment
cycle starts at year B (t ) − TLIFEt / 2 (meaning the smallest integer not less than the
operand), and ends TLIFE years later, when the second cycle starts, etc, as many times as
necessary to cover the entire period. The last cycle extends over the next period(s), and that
is taken into account in the capacity transfer equations of the model. As before, each
capacity increment results in a stream of ELIFE payments at years v, v+1, etc.
144
Case 1.b Example D(t)
Investment
D=5, TLIFE=4, ELIFE=3 TLIFE and payment:
ELIFE
Payment
only:
B(t)
Comments: the expression is similar to that in case 1.a., except that i) the investment
is spread over the technical life rather than the period length, and ii) the investment cycle
is repeated more than once.
Here, it is assumed that construction is spread over the lead-time (a very realistic
assumption for large projects), and capacity becomes available at the end of the lead time,
in a lump quantity (see figure).
145
Investment:
and payment
D(t)
Payment
Case 2a Example: ILED
TLIFE only:
D(t)=8, ILED=4
TLIFE=6,ELIFE=3 ELIFE
B(t)
Comment: the main difference with case I.1.a) is that the investment’s construction
starts at year B(t) and ends at year B(t)+ILEDt-1 (see example). As before, payments for
each year’s construction spread over ELIFE years.
146
Case 2.b: ILED > ILEDMin , t and TLIFE t + ILEDt < D(t )
(Large, indivisible Projects, repeated investments in period)
Investment
2b Example : and payment:
D(t)=13, ILED=4
T LIFE=5,ELIFE=3 Investment
Payment only
C=2
D(t)
ILED
T LIFE T LIFE
B(t)
This case is similar to case I.2.a, but the investment is repeated more than once over
the period, each cycle being TLIFE years long. As in case I.2.a, each construction is
spread over one lead time, ILED. In this case, the exact pattern of yearly investments is
complex, so that we have to use an algorithm instead of a closed form summation.
Step 0: Initialization (NI(u) represents the amount of new investment made in year u)
D (t ) − ILEDt
C=
TLIFEt
147
B(t ) ≤ u ≤ B(t ) + ILEDt + (C − 1) ⋅ TLIFEt − 1
Compute:
For I = 1 to C
For u = B (t ) + ( I − 1) ⋅ TLIFEt to B (t ) + ( I − 1) ⋅ TLIFEt + ILEDt − 1
NCAP _ COSTB ( t ) + ( I −1) ×TLIFEt + ILEDt
NI t (u ) := NI t (u ) +
ILEDt
Next u
Next I
Step 3: Compute payments incurred in year y, and resulting from variable VAR_NCAPt
For each y in range:
END ALGORITHM
Remarks
a) Decommissioning physically occurs after the end-of-life of the investment, and may
be delayed by an optional lag period (e.g. a “cooling off” of the process before
dismantling may take place). The decommissioning costs follow the same patterns
and rules as those for investment costs. In particular, the same four cases that were
defined for investment costs are still applicable.
b) The same principles preside over the timing of payments of decommisioning costs as
were defined for investment costs, namely, the decomposition of payments into a
stream of payments extending over the economic life of decommissioning, DELIF.
148
c) At decommissioning time, the recuperation of embedded materials is allowed by the
model. This is treated as explained for investment costs, i.e. either as an explicit
commodity flow, or as a credit (revenue) subtracted by the user from the
decommissioning cost.
g) Decommissioning activities may also receive taxes or subsidies which are
proportional to the corresponding decommissioning cost.
EQ _ COSTDECOM ( y ) ∋ y ∈ MODELYEARS
VAR _ NCAPt
DECOMCOST ( y ) = ∑ INDIC (1.a ) × + NCAP _ PASTI t × NCAP _ DCOST y −TLIFEt
t∈MILESTONES ∪ PASTYEARS D (t )
t ≤T ( y )
1 if M (t ) − D (t ) + 1 + TLIFE t ≤ y ≤ M (t ) + TLIFE t
×
0 otherwise
(III.1.a)
Comment: Note that the cost attribute is indexed at the year when the investment
started to operate. We have adopted this convention throughout the objective function.
149
Example III.1.a: Investment:
D(t)=4, TLIFE=5
M(t)=B(t)+1 D(t) Decommissioning
DLIFE=DELIF=1 and payment
TLIFE
B(t) M(t)
This cost expression is similar to I.1.b, but with payments shifted to the right by
TLIFE (see example). The inner summation disappears because of the assumption that
DELIF=1. Note also that past investments have no effect in this case, because this case
does not arise when D(t)=1, which is always the case for past periods.
VAR _ NCAPt
DECOMCOST ( y ) = ∑ INDIC (1.b) × × NCAP _ DCOST y −TLIFEt
t∈MILESTONES
t ≤T ( y )
TLIFE t
TLIFE t TLIFE t
1 if B(t ) + ≤ y ≤ B(t ) + + C ⋅ TLIFE t − 1
× 2 2
0 otherwise
D(t )
where C =
TLIFE t
(III.1.b)
150
Example III.1.b D(t)
Both
B(t)
In this situation, it is assumed that decommissioning of the plant occurs over a period
of time called DLIFE, starting after the end of the technical process life plus a time
DLAG (see example). DLAG is needed e.g. for a reactor to “cool down” or for any other
reason. Furthermore, the payments are now spread over DELIF which may be lareger
than one year..
(III.2.a)
151
Investment:
Example II.2.a:
Decommissioning
Payments only:
D(t)
ILED
TLIFE DLAG DLIFE
B(t)
Case 2.b: ILEDt > ILEDMin , t and TLIFE t + ILEDt < D(t )
(Big projects, repeated investments in period)
Here too, the decommissioning takes place over DLIFE, but now, contrary to case 2.a,
the process is repeated more than once in the period. The last investment has life
extending over following periods, as in all similar cases. The resulting stream of yearly
payments is complex, and therefore, we are forced to use an algorithm rather than a
closed form summation. See also example below.
Step 0: Initialization
Where:
D(t ) − ILEDt
C=
TLIFEt
152
For I = 1 to C
For J =1 to DLIFEt
For L = 1 to DELIFt
Pt (B(t ) + ILEDt + I × TLIFE t + DLAGt + J + L − 2 ) :=
NCAP _ DCOSTB (t ) + ILEDt + ( I −1)×TLIFEt
same +
DLIFEt
Next L
Next J
Next I
END ALGORITHM
III.2.b
Example III.2.b:
Decommissioning
Payment only
D(t)
ILED
TLIFE TLIFE
B(t)
DLAG DLIFE DLAG DLIFE
The fixed annual costs are assumed to be paid in the same year as the actual operation
of the facility. However, the spreading of the investment described in subsection 5.1.1
153
results in a tapering in and a tapering out of these costs. Taxes and subsidies on fixed
annual costs are also accepted by the model.
There are two types of fixed annual costs, FIXCOST(y), which is incurred each year
for each unit of capacity still operating, and SURVCOST(y), which is incurred each year
for each unit of capacity in its DLAG state (this is a cost incurred for surveillance of the
facility during the lag time defore its demolition). Again here, the same classification of
cases is adopted as in previous subsections on capital costs. Note that by assumption,
SURVCOST(y) occurs only in cases 2. DLAG is allowed to be positive even in case 1a,
but that in this case the surveillance costs are assumed to be negligible. Finally, note that
FIXCOST(y) need be computed only for years y within the planning horizon, whereas
SURVCOST(y) may exist for years beyond the horizon
154
Case 1.a) If ILEDt ≤ ILEDMin , t and TLIFEt + ILEDt ≥ D(t )
(Small projects, single investment in period)
The figure of the example shows that payments made in year y may come from
investments made at periods before T(y), at T(y) itself, or at periods after T(y). Note that
the cost attribute is mutiplied by two factors: the SHAPE, which takes into account the
vintage and age of the technology, and the MULTI parameter, which takes into account
the pure time at which the cost is paid (the notation below for SHAPE and MULTI is
simplified: it should also specify that these two parameters are those pertaining to the
FOM attribute).
VAR _ NCAPt
Min ( M ( t ), y )
FIXCOST ( y ) = ∑ INDIC ( IV .1.a) × ∑
v = Max {M ( t ) − D ( t ) +1, y −TLIFEt +1}
+ NCAP _ PASTI t
t∈MILESTONES ∪ PASTYEARS D (t )
× NCAP _ FOM v × SHAPE (v, y − v) × MULTI ( y ) ( IV .1.a )
Example:
B(t) M(t)
155
Case 1.b, if ILEDt ≤ ILEDMin , t and TLIFE t + ILED < D(t )
(Small projects, repeated investments in period)
The figure shows that payments made at year y may come from investments made at,
before, or after period T(y). Note that our expression takes into account the vintage nd
age of the FOM being paid, via the SHAPE parameter, and also the pure time via MULTI,
both pertaining to the FOM attribute.
× SHAPE (t , y − v) × MULTI ( y )
(IV.1.b)
where
D (t )
C=
TLIFE t
TLIFE t TLIFE t
B (t ) − , B (t ) − + (C + 1) × TLIFE t
2 2
and
y ≤ EOH
Example:
Fixed cost
Payments only
B(t)
156
Case 2.a: ILEDt > ILEDMin , t and ILEDt + TLIFE t ≥ D(t )
(Large, indivisible projects, unrepeated investment in period)
i) FIXCOST(y)
The figure of the example shows that payments made in year y may come from
investments made at period T(y) or earlier, but not later. Again here the SHAPE has the
correct vintage year and age, as its two parameters, whereas MULTI has the current year
as its parameter. Both pertain to FOM.
1 if t ≤ y ≤ t + TLIFE t − 1
× × SHAPE (t , y − t ) × MULTI ( y )
0 otherwise
(IV.2.a)
ii) SURVCOST (Surveillance cost for same case 2.a. See same example)
157
+ ∑ INDIC ( IV .2.a ) ×(NCAP _ PASTI )× NCAP _ DLAGC
t∈PASTYEARS
t t
Surveillance
Cost payment
only
D(t)
ILED
TLIFE DLAG
B(t)
Remark: again here, the cost attribute is indexed by the year when investment started
its life. Also, note that, by choice, we have not defined the SHAPE or MULTI parameters
for surveillance costs.
158
Case 2.b: ILEDt > ILEDMin , t and TLIFE t + ILEDt < D(t )
(Big projects, repeated investments in period)
The cost expression takes into account the vintage and the age of the FIXOM being
paid at any given year y. See note in formula and figure for an explanation.
1 if 0 ≤ I ≤ C − 1
× SHAPE (t , y − B(t ) − ILEDt − I ⋅ TLIFE t ) ×
0 otherwise
where :
y − B(t ) − ILEDt I is the index of the
I = investment cycle where y lies. I
TLIFEt varies from 0 to C-1
and
D (t ) − ILEDt
C=
TLIFEt
Range for y:
(IV.2.b)
ii. SURVCOST(y) (surveillance cost for same case; the same example applies)
t ≤T ( y )
159
where :
y − B(t ) − ILEDt − TLIFE t
I =
TLIFE t
and
D(t ) − ILEDt
C=
TLIFE t
Note that y may exceed EOH
(IV.2.b’)
Construction
Example for IV.2.b and IV.2.b’:
C=2
Construction
and fixed cost
Surveillance
Cost payments
only
Surveillance
D(t)
and fixed cost
ILED payments
TLIFE TLIFE
DLAG DLAG
B(t)
It is assumed that these taxes (subsidies) are paid (accrued) at exactly the same time
as the fixed annual costs. Therefore, the expressions IV of subsection 5.1.4 are valid,
replacing the cost attributes by NCAP_FTAX - NCAP_FSUB.
160
In this subsection, the symbol VAR_XXXt is any variable of the model that represents an
activity at period t. Therefore, XXX may be ACT, FLO, COMX, COMT, etc. Note that, if and
when the technology is vintaged, the variable has an index v indicating the vintage year,
whereas T(y) indicates the period when the activity takes place. Similarly, the symbol
XXX_COSTk represents the value in year k of any cost attribute that applies to variable
VAR_XXX.
Finally, the expressions are written only for the years within horizon, since past years do
not have a direct impact on variable costs, and since no variable cost payments occur after
EOH. Note also that the SHAPE and MULTI parameters are not applicable to variable costs.
As stated in the introduction, the payment of variable costs is constant over each
period. Therefore, the expression below is particularly simple.
When elastic demands are used, the objective function also includes a cost resulting
from the loss of welfare due to the reduction (or increase) of demands in a given run
compared to the base run. See PART I chapter 6 for a theoretical justification.
1
( j − 1 / 2) × COM _ VOClo ,T ( y ) COM _ ELASTlo ,T ( y )
COM _ STEPlo
ELASTCOST ( y ) = ∑ COM _ BPRICET ( y ) × 1 − × VAR _ ELASTlo , j ,T ( y )
j =1 COM _ STEPlo
1
COM _ STEPup
( j − 1 / 2) × COM _ VOCup ,T ( y ) COM _ ELASTup ,T ( y )
− ∑ COM _ BPRICET ( y ) × 1 +
COM _ STEPup
× VAR _ ELASTup , j ,T ( y )
j =1
y ≤ EOH
(VII)
Investments whose technical lives exceed the model’s horizon, receive a SALVAGE
value for the unused portion of their technical lives. Salvage applies to several types of costs:
investment costs, sunk material costs, as well as decommissioning costs and surveillance
161
costs. SALVAGE is reported as a single lump sum revenue accruing precisely at the end of
the horizon (and then discounted to the base year like all other costs).
What are the costs that should trigger a salvage value? The answer is: any costs that are
directly or indirectly attached to an investment. These include investment costs and
decommissioning costs. Fixed annual costs and variable costs do not require salvage values,
since they are paid each year in which they occur, and their computation involves only years
within the horizon. However, surveillance costs should be salvaged, because when we
computed them in section 5.1.5, we allowed y to lie beyond EOH (for convenience).
The principle of salvaging is simple, and is used in other technology models such as
MARKAL, etc: a technology with technical like TLIFE, but which has only spent x years
within the planning horizon, should trigger a repayment to compensate for the unused
portion TLIFE-x of its active life. The computation of the salvage value obeys a simple
rule, described by the following result:
162
Result 1
S ( k , TL ) = 0 if k + TL ≤ EOH
S ( k , TL ) = 1 if k > EOH
(1 + d ) TL − EOH −1+ k − 1
S ( k , TL ) = otherwise
(1 + d ) TL − 1
Note that the second case may indeed arise, because some investments will occur
even after EOH.
Since we want to calculate all salvages at the single year (EOH+1), the above
expressions for S(k,TL) must be discounted (multiplied) by:
(1 + d )EOH +1−k
Finally, another correction must be made to these expressions, whenever the user
chooses to utilize a technology specific discount rate. The correction factor which must
multiply every investment (and of course every salvage value) is:
1 1
1 − × 1 − ELIFE
CRFs 1 + is (1 + i )
=
CRF 1 1
1 − × 1 −
1+ i (1 + i s ) ELIFE
Note: the time indexes have been omitted for clarity of the expression.
The final result of these expressions is Result 2 expressing the salvage value
discounted to year EOH+1, of a unit investment with technical life TL made in year k as
follows. Result 2 will be used in salvage expressions for investments and taxes/subsidies
on investments.
163
Result 2
CRFs
SAL(k , TL) = if k ≥ EOH + 1
CRF
M (t )
VAR _ NCAPt
SALVINV ( EOH + 1) = ∑ INDIC ( I .1.a ) × ∑ + NCAP _ PASTI t × NCAP _ COSTv × SAL(v)
t v = M ( t ) − D ( t ) +1 D(t )
B ( t ) − TL / 2 + C ×TLIFEt −1
VAR _ NCAPt
SALVINV ( EOH + 1) = ∑ INDIC ( I .1.b) × ∑ × NCAP _ COSTv × SAL(v)
t v = B ( t ) − TL / 2 + ( C −1)×TLIFEt TLIFE t
164
Case 2.a: ILEDt > ILEDMin , t and ILEDt + TLIFE t ≥ D(t )
(Large, indivisible projects, unrepeated investment in period)
Note that SAL ( B(t ) + ILEDt ) = 0 whenever B(t ) + ILEDt + TLIFE t ≤ EOH + 1
(VIII.2.a)
Case 2.b: ILED > ILEDMin , t and TLIFE t + ILEDt < D(t )
(Large, indivisible Projects, repeated investments in period)
SALVINV ( EOH + 1) = ∑ VAR _ NCAPt × NCAP _ COSTB (t ) + (C −1)×TLIFEt + ILEDt × SAL(B(t ) + (C − 1) × TLIFE t + ILEDt )
t
Note again that SAL(B(t ) + (C − 1) × TLIFE t + ILEDt ) = 0 whenever B(t ) + (C − 1) × TLIFE t + ILEDt + TLIFE t ≤ EOH + 1
(VIII.2.b)
NOTE: salvage cost of taxes/subsidies on investment costs are identical to the above,
replacing NCAP_COST by {NCAP_ITAX – NCAP_ISUB}.
For decommissioning costs, it should be clear that the triggering of salvage is still the
fact that some residual life of the investment itself exists at EOH+1. What matters is not
that the decommissioning occurs after EOH, but that some of the investment life extends
beyond EOH. Therefore, Result 1 derived above for investment costs, still applies to
decommissioning. Furthermore, the correction factor due to the use of technology
specific discount rates is also still applicable (with ELIFE replaced by DELIF).
165
In case 2.a k is fixed at B(t)+ILED+TLIFE, but l varies from
(B(t)+ILED +TLIFE+DLAG) to (same +DLIFE-1)
It is helpful to look at the examples for each case in order to understand these
expressions.
Result 3
SAL( k , l ) = 0 if k + TL ≤ EOH
CRFs
SAL( k , l ) = × (1 + i ) EOH +1−l if k ≥ EOH + 1
CRF
We are now ready to write the salvage values of decommissioning cost in each case.
166
Case 1.a ILEDt ≤ ILEDMin , t and TLIFEt + ILEDt ≥ D(t )
(Small divisible projects, non-repetitive, progressive investment in period)
SALVDECOM ( EOH + 1) =
M (t )
VAR _ NCAPt
∑ INDIC (1.a) × ∑
v = M ( t ) − D ( t ) +1
+ NCAP _ PASTI t × NCAP _ DCOSTv × SAL(v, v + TLIFE t )
t D(t )
SALVDECOM ( EOH + 1) =
B ( t ) − TL / 2 + C ×TLIFEt −1
VAR _ NCAPt
∑ INDIC (1.b) ×
t
∑
v = B ( t ) − TL / 2 + ( C −1)×TLIFEt TLIFE t
× NCAP _ DCOSTv × SAL(v, v + TLIFE t )
SALVDECOM ( EOH + 1) =
same + DLIFE −1
∑
t∈MILESTONESYEARS
INDIC (2.a ) × VAR _ NCAPt × NCAP _ COSTB (t ) + ILEDt × ∑ SAL( B(t ) + ILED , l )
l = B ( t ) +TLIFE + DLAG
t
167
Case 2.b: ILEDt > ILEDMin , t and TLIFE t + ILEDt < D(t )
(Large, indivisible Projects, repeated investments in period)
SALVDECOM ( EOH + 1) = ∑
t∈MILESTONYEARS
INDIC (2.b) × VAR _ NCAPt × NCAP _ DCOSTB ( t ) + ( C −1)×TLIFEt + ILEDt
same + DLIFE −1
× ∑ SAL[B(t ) + ILEDt + (C − 1) × TLIFE t , l ]
l = B ( t ) + ILEDt + C ×TLIFEt + DLAGt
where
D(t ) − ILEDt
C=
TLIFE t
Similarly to the salvaging of decommissioning costs, the basic salvage value fractions
S(k,m) defined in Result 1 at the beginning of Section 5.1.9 are used as the basis for the
salvage value of surveillance costs. However, unlike with decommissioning costs, there is
no need to make corrections for technology-specific discount rates, as the costs do not
represent capital costs. In addition, the discounting to EOH+1 must be made separately
for each surveillance year. Note that only Cases 2 have surveillance costs.
SALVSURV ( EOH + 1) =
∑ INDIC (2.a) × S ( B(t ) + ILED , TLIFE ) ×
t∈MILESTONESYEARS
t t
same + DLAGt −1
VAR _ NCAPt × NCAP _ DLAGC B (t ) + ILEDt × ∑ DISC (l , EOH + 1)
l = B ( t ) + ILEDt +TLIFEt
168
Case 2.b: ILEDt > ILEDMin , t and TLIFEt + ILEDt < D(t )
(Large, indivisible projects, repeated investments in period)
SALVSURV ( EOH + 1) =
same + DLAGt −1
NCAP _ DLAGC B ( t ) + ILED + ( C −1)×TLIFE × ∑ DISC (l , EOH + 1)
l = B ( t ) + ILEDt + C ×TLIFEt
D(t ) − ILEDt
where : C =
TLIFE t
Late revenues consist of revenues from any materials and energy which had been
embedded in some processes, and which are released after EOH. Such revenues exist
only if an exogenous salvage value was declared by the user for the sunk material.
Note: For materials released within the horizon, the revenue is either explicit (and then
it is the user’s responsibility to indicate a negative cost –credit-- at dismantling time), or the
revenue is implicit, and then the user must specify a physical release of the material at
dismantling time, and the model will correctly ‘price’ this material within the RES.
LATEREVENUES(y) y ≥ EOH+1
The late revenues come only from the resale at dismantling time, of materials and/or
energy that were sunk at construction time. Therefore, the LATEREVENUES expressions
are identical to the decommissioning cost expressions, with the NCAP_DCOST attribute
replaced by
where the summation extends over all commodities c for which an NCAP_OCOM
attribute is defined (defaults to zero if undefined)
169
5.2.11 The two discounting methods for annual payments
In the objective function of TIMES, all costs and payments are assumed to occur at
the beginning of each year. In the case of investment costs, this means that the
annualized payments made in the beginning of each year within the economic lifetime are
equivalent to a lump-sum investment cost paid at the beginning of the first operation
year, if the annual payments are discounted back to that point by the technology-specific
discount rate (for instance, in case 1a, each lump sum is equal to NCAP_COST/D(t)).
Similarly, in the case of operation costs (e.g. NCAP_FOM), the total annual costs are
assumed to occur at the beginning of each operating year.
In TIMES, there is an option to correct this small bias by using so-called mid-year
discounting. The option is activated by the switch MID_YEAR (see Part II, Control variables).
The corrections that are needed in order to use mid-year discounting in TIMES can be
made in the following two steps:
1. First, simply assume that instead of the beginning of each year, all payments are
made in the mid-point of each year in TIMES. As such, this assumption doesn't
change the objective function in any way; it is only a change in thinking.
However, it also means that instead of the beginning of the base year, all costs are
assumed to be discounted to the mid-point of the base year.
2. Second, make the necessary corrections to the discounting of all those cost
components that cannot be assumed to be actually paid at the mid-point of the year.
By going through the various cost components, the following conclusions hold for step 2:
• All variable costs and fixed operation and surveillance costs can be assumed to be
paid in the mid-point of each year. Therefore, no change is needed in the
discounting of these payments.
• The lump-sum investment costs in Cases 1 (NCAP_COST/D(T)) should be
assumed to occur at the beginning of the investment year instead of the mid-point
of that year.
• All the lump-sum investment costs in Cases 2 (NCAP_COST/ILED) can be
assumed to occur in the mid-point of each construction year. Therefore, no change
is needed in the discounting of the annualized investment payments.
• The decommissioning costs in Cases 1 can be assumed to be paid in the mid-point
of the year, because in these cases it is assumed that decommissioning takes
exactly one year, and it is therefore only natural to assume that, on the average,
the costs occur at the mid-point.
170
• The lump-sum decommissioning costs in Cases 2 (NCAP_DCOST/DLIFE) can be
assumed to occur at the mid-point of each year within the decommissioning lifetime.
Therefore, no change is needed in the discounting of the annualized payments.
Consequently, the overall conclusion is that the only correction needed in the
discounting of various cost components is related to the investment costs in Cases 1. If
we assume that the Capital Recovery Factor used in the beginning-of-year discounting
(CRFbeg) is still valid for mid-year discounting, we should simply shift the position of
both the lump-sum investment and the annualized payments half a year backwards. In
terms of discounting, this means that in Cases 1 the annualized investment payments
should be multiplied by the factor (1+d(y))0.5, where d(y) is the general discount rate.
Perhaps the simplest way to apply this correction in the objective function is to make the
adjustment to the Capital Recovery Factor. Thus, for Cases 1 we could define a 'CRF
corrected for mid-year discounting' (CRF1,mid) as follows:
However, one could additionally argue that the Capital Recovery Factor CRFbeg is no
longer valid for mid-year discounting. The annualized investment payments can also be
assumed to represent a continuous stream of costs, which should thus be assumed to be
paid at the mid-point of each year. The shortcoming of the original CRFbeg can be seen by
calculating its value for an investment with an economic lifetime of just one year. The
value of CRFbeg is in this case exactly 1, although it seems obvious that some interest
should be involved as well. Assuming that the single payment represents a continuous
stream of costs, the payment can be assumed to occur at the mid-point of the year, and
would thus include interest for half-year's time.
Accordingly, we should correct the definition of the CRF proper by assuming that the
annualized payments occur half a year forward in time with respect to the lump-sum
investment, which means that we must increase the nominal size of the payments by the
corresponding interest for the half-year's time. Combining these corrections together, the
general discount rate d(y) should be simply replaced by the technology-specific discount
rate dS(T(y)) in the expression above, because in addition to the nominal change in the
CRF, the time of the annualized payments has been restored back to original. However,
to maintain consistency between Cases 1 and 2, the same basic correction to the CRF
proper should be applied to all cases. Therefore, the total adjustments needed when
taking into account the correction to the CRF proper are the following:
0.5 (X
proper
CRFmid = CRFbeg × (1+dS(T(y)))
I.1)
0.5 –0.5
proper
CRF1,mid = CRFmid × (1+d(T(y))) × (1+d(T(y))) = CRFbeg × (X
0.5
(1+dS(T(y))) I.2)
–0.5 –0.5
proper
CRF2,mid = CRFmid × (1+d(T(y))) = CRFbeg × (1+d(T(y))) × (X
0.5
(1+dS(T(y))) I.3)
171
Consequently, in both cases the annualized investment payments are then assumed to
occur at the mid-point of each fiscal year starting at the time of the lump-sum investment, and
the annual payments are equivalent to the lump-sum investment when discounted back to that
point by the technology-specific discount rate. The implementation of the optional
corrections for mid-year discounting corresponds to equations (XI.1 to XI.3). To be
consistent, the expression (XI.3) for CRF2,mid should also be used for decommissioning costs.
5.3 Constraints
The constraints available in TIMES are shown in table 5.1 below, and later fully
described in the following subsections. The constraints rekated to the implementation of
Endogenous Technology Learning (ETL) and those related to the Climate Module are
shown and described in two separate chapters (chapters 6 and 7 respectively)
172
Equation Name Short description
EQ_IREBND Bound on exchange of a commodity between two regions
EQ_XBND Bound on total exchanges of a commodity by one region
EQ(l)_INSHR For a given process, expresses that the inflow of a commodity is tied to the
total inflows of all commodities in a certain group
EQ(l)_OUTSHR For a given process, expresses that the outflow of a commodity is tied to the
total outflows of all commodities in a certain group
EQ_PEAK Expresses that capacity available must exceed demand of a selected
commodity in any time slice by a certain margin
EQ_PTRANS Establishes an equality relationship between (groups of) inputs and certain
(groups of) outputs of a process
EQ_STGTSS Ensures the storage of a commodity between two timeslices
EQ_STGIPS Ensures the storage of a commodity between two time periods
EQ(l)_STGIN Bounds the input into a storage process
EQ(l)_STGOUT Bounds the output of a storage process
User Constraints of User defined constraints that have a user defined RHS
the LHS type
User Constraints of User defined constraints that involve more than one period
the Dynamic type
User Constraints of User defined constraints that express a limit on the growth
the Growth type
173
5.3.1 Equation: EQ_ACTFLO
Indices: region (r); investment year (v); model year (t), process (p), time slice (s)
Type: =
Purpose: This equation defines the VAR_ACT activity variable in terms of the “primary
flows” of a process. The primary flows are defined by the user through the prc_actunt
set attribute.
Remarks:
• The internal set rtp_vintyr ensures that (v,t) expressions are generated for the
vintaged processes and (t,t) for the non-vintaged ones.
• The constraint defines the activity of a process. The activity of a process is limited in
the equation EQ(l)_CAPACT by the available capacity.
• rtp_vara(r,t,p) controls valid periods, in which the process can operate.
• If the activity of a process is defined by a single flow, the flow variable is replaced by
the activity variable in case that the reduction algorithm is activated. Then, in all
equations, where the flow occurs, the activity variable is used instead. In this case the
equation EQ_ACTFLO is not generated.
Equation:
174
5.3.2 Equation EQ(l)_ACTBND
Indices: region (r); model year (t), process (p), time slice (s)
Type: Any type, as determined by the index bd of ACT_BND:
• l = ’G’ for bd = ‘LO’ (lower bound) yields ≥ .
• l = ’E’ for bd = ‘FX’ (fixed bound) yields = .
• l = ’L’ for bd = ‘UP’ (upper bound) yields ≤ .
Related variables: VAR_ACT
Related equations: EQ_COMBAL; EQ_ACTFLO; EQ_PTRANS
Purpose: This equation bounds the total activity of a process in a period independently of
the vintage years of the installed capacities. The equation will either be generated when the
activity bound is specified for a timeslice being at a timeslice level above the timeslice
level of the process (prc_tsl), e.g. ACT_BND is specified for an ANNUAL timeslice but
the process operates on a DAYNITE timeslice level, or irrespectively of the timeslices
when the process is characterized as a vintaged one (prc_vint). If activity bounds are
specified for timeslices below the process timeslice level (prc_tsl), the bounds will be
aggregated to the process timeslice level by standard aggregation (see para 3.1.2) and then
directly applied to the activity variable for non-vintaged processes. The same is true for
activity bounds specified at the process timeslice level of non-vintaged processes.
Remarks:
• The equation is required because for the two cases described above (bound specified
for a timelslice above the process timeslice level or process is characterized as a
vintaged one), no single variable exists which can be bounded directly.
• The bound is only directly applied to VAR_ACT for non-vintaged processes, when
ACT_BND is applied at the level prc_ts(r,p,s).
Interpretation of the results:
Primal: The level value of the equation describes the activity of the process in the
considered period t and timeslice s.
Dual: The dual variable describes in the case of a lower (upper) bound the cost
increase (decrease) caused by an increase of the activity bound by one unit.
EQ(l ) _ ACTBNDr ,t , p , s ∋ ACT _ BNDr ,t , p , s ,bd ∧ rtp_vara r,t,p ∧ rps_prcts r,p,s ∧ ( p ∈ prc_vint r,p ∨ s ∉ prc_ts r,p,s )
175
5.3.3 Equation: EQ(l)_BLND
Indices: region (r); year (t); refinery product (ble); specification (spe)
Type: Any type, as determined by the value of the input parameter BL_TYPE(r,ble,spe):
• l = ’L’ for a value of 1 yields ≤ .
• l = ’G’ for a value of 2 yields ≥ .
• l = ’E’ for a value of 3 yields = .
Purpose: The blending equations ensure that the characteristics of petroleum products
(e.g. sulfur content, density, octane number, etc.) lie within specified limits, if desired.
Remarks:
• Parameter BL_COM contains the values of the blending specifications spe for the
blending streams opr.
• Parameter BL_SPEC contains the value of the specification spe of the blending
product ble.
• The blending variables VAR_BLND are expressed in volume units. If the
characteristics of the blending streams opr and the product ble are not given in volume
units (indicated by input parameter REFUNIT), the user has to provide a conversion
parameter CONVERT which contains the density and energy content (by weight or by
volume) of each blending stream. The conversion parameters are used to derive the
coefficients RU_CVT of the blending streams in the blending equation.
Equation:
∑ BL _ COM
opr ∈ ble _ oprr ,ble ,opr
r ,ble ,opr ,spe ⋅ RU _ CVTr ,ble ,spe ,opr ⋅ VAR _ BLNDr ,t ,ble ,opr
{≤; =; ≥}
∑ BL _ SPEC
opr ∈ ble _ oprr ,ble ,opr
r ,ble ,opr ,spe ⋅ RU _ CVTr ,ble ,spe ,opr ⋅ VAR _ BLNDr ,t ,ble ,opr
176
5.3.4 Bound: BND_ELAST
Indices: region (r); year (t); commodity (c); time slice (s); linearization step (j);
direction of elastic demand change (l)
Type: ≤
Purpose: Upper Bounds on the step variables used to represent the demand when the
elasticity is non zero.
Remarks:
• These bounds are applied whenever a demand is price elastic, i.e. when the
COM_ELAST (elasticity) and COM_VOC (total range) parameters are specified and
not zero.
• If COM_ELAST and COM_VOC are specified, and COM_STEP (number of steps) is
not, the latter defaults to 1 (single step discretization)
• Attributes COM_VOC and COM_STEP do not have a timeslice index. The user can
still control elasticities in each time slice through COM_ELASTs.
Bound:
177
5.3.5 Equation: EQ(l)_BNDNET/PRD
Purpose: If the bound on the net or gross production of a commodity is specified for a
timeslice being above the timeslice level of the commodity, the equation described here is
generated. The bound on the net or gross production of a commodity is directly applied to
the variable (VAR_COMNET, VAR_COMPRD), if the bound parameter is specified for
a commodity timeslice (com_ts).
Remarks:
• The internal set rcs_comts used in the equation contains all timeslices at or above the
timeslice level being defined for the commodity.
• The internal set rtcs_varc used in the summation part of the equation contains all
timeslices (out of com_ts) and periods for which the commodity is available.
• The internal set ts_map(r,s,ts) used in the summation part of the equation contains for
a given timeslice (s) all timeslices (ts) being at or below s in the timeslice tree.
Equation
178
5.3.6 Equation: EQ(l)_CAPACT
Indices: region (r); vintage year (v), year (t); process (p); time slice (s)
Purpose: The capacity-activity equation relates the activity of a process to its available
existing capacity of a process in a period t. The existing capacity consists of investments
made in the current period (VAR_NCAP), investments made in previous periods
(VAR_NCAP) and investments that have been made before the beginning of the model
horizon (NCAP_PASTI). The availability of the existing capacity in a specific period t
and timeslice s is specified by the availability factor. Three availability factors exist:
• NCAP_AF(r,v,p,s,bd):
Availability factor specified for a specific period and timeslice. If this availability
factor is not specified for the process timeslices (prc_ts), the availabilities are
aggregated/inherited according to the timeslice tree. Thus, for a process operating on
the DAYNITE level it is sufficient to specify only one availability for the ANNUAL
timeslice, which is then inherited to the DAYNITE timeslices.
• NCAP_AFS(r,v,p,s,bd):
Availability factor specified for a specific period and timeslice. In contrast to
NCAP_AF, this availability is not inherited/aggregated along the timeslice tree. If
this availability is specified for a seasonal timeslice for a process operating on the
DAYNITE level, the capacity-activity constraint is generated for the seasonal
timeslice and sums over the DAYNITE activities. This gives the process
flexibility how to operate within the seasonal timeslice as long as the overall
seasonal availability restriction is fulfilled.
• NCAP_AFA(r,v,p,bd):
Annual availability factor similar to NCAP_AFS being specified for the
ANNUAL timeslice with the difference that NCAP_AFA is always applied in
such a way as if the process is non-vintage dependent, even if it is specified as a
vintaged one (prc_vint). Thus the annual availability factor is especially useful to
calibrate the activity of a process in the first period(s) to the statistics
irrespectively of its vintage structure and the vintage dependent activities
(NCAP_AFS), which can be specified in addition to NCAP_AFA.
If the process is defined as a vintages one (prc_vint), for each vintage year (v) of the
existing capacity stock in period (t) a separate capacity-activity constraint will be
generated (exception NCAP_AFA), while for a non-vintaged process one capacity-
179
activity constraint is generated that sums over all vintage years. In the latter case the
vintage index of the equation (EQ(l)_CAPACT(r,v,t,p,s)) always equals the period index
(v = t). The capacity-activity constraint
Remarks:
• For all process timeslices (prc_ts), NCAP_AF(r,t,p,s,’UP’) is by default set to 1.
Thus, it is ensured that the activity of a process can never exceeds its capacity. If
for example only NCAP_AFA is specified by the modeler as annual availability
for a process with a DAYNITE timeslice resolution, in addition to the annual
activity-capacity constraint activity-capacity constraints with an availability of
100% are generated for the process timeslices.
• An average value of the availability factors (NCAP_AF/S/A) is used when a
‘Shape’ is specified.
• rtp_cptyr identifies the capacities installed in period v still available in period t.
This set takes into account that investments may be turned-off for certain periods
(by PRC_NOFF). The condition is as under:
v,t such that
B(v) ≥ B(t) - (COEF_RPTI*TL) - IL + 1
and
B(v) ≤ E(t) - IL
• prc_vint is a set of processes for which attribute are changing over time and
vintaging is required.
• Entries in rtp_vintyr are controlled by the same logic as applied to COEF_CPT
combined with the vintaging consideration. Note v = t when no vintaging is
required, or vintaging is turned off for a particular processes, where the sum over
the previous investments is used instead of individual variables.
• COEF_AFr,v,t,p,s,bd will be read off a pre-processed table, after application of
SHAPE and MULTI to the user provided availabilities (NCAP_AF/A/S).
• COEF_AF is calculated in the following manner:
1) apply MULTI to NCAP_AF/A/S
2) aggregate if possible (pp_lvlbd.mod), otherwise inherit (in
ppmain.mod)
3) apply SHAPE
• For storage processes, the capacity describes the volume of the storage and the
activity the storage content. For storage processes between timeslices (prc_tgtss,
prc_nstts) parameter RS_STGPRD is used instead of G_YRFR.
RS_STGPRD(r,s) equals the number of storage periods for the timeslice s in a
year multiplied with the duration of its parent timeslice ts, which is the duration
of one storage period. Thus, the storage level VAR_ACT (and indirectly the
storage in- and output flows VAR_SIN and VAR_SOUT) are scaled-up for the
entire year.
RS_STGPRD(r,s) is:
o 1 for a seasonal storage,
o 365/7*G_YRFR(r,ts) for a weekly storage, where ts is the parent node of s,
o 365*G_YRFR(r,ts) for a weekly storage, where ts is the parent node of s.
180
Interpretation of the results:
Primal: In case of an inequality constraint and no past investments (i.e. RHS is zero), the
primal value describes the difference between the activity level and the
maximum possible activity due to the installed capacity in the considered period
and timeslice. If the primal value is negative, it means that the capacity is not
fully utilized. In case of past investments, the RHS is not zero 36, but has a
positive value and corresponds to the possible activity due to the past
investments. If the primal value equals the RHS value, the capacity is fully
utilized. If not the difference (RHS minus primal value), where the primal value
may also be negative, describes the possible unused activity production.
Dual: The dual value is in case of an inequality constraint a negative number, when the
constraint is binding. It describes the cost reduction caused by an additional
capacity unit and can thus be interpreted as the value of the capacity. For a
power plant for example it can be viewed as the part of the electricity price that
can be used for covering the fixed operating and investment costs of the capacity
(multiplied by the according coefficient in the dual equation of the electricity
flow variable). If NCAP_AFS or NCAP_AFA are applied for timeslices being
above the process timeslice level, in addition capacity-activity constraints (with
a default value for NCAP_AF of 1 as upper bound) are generated for the process
timeslices. The dual value of the constraints related to NCAP_AFS or
NCAP_AFA serve as benchmark value of the capacity between the process
timeslices. If for example NCAP_AFA is given for a power plant with a
DAYNITE timeslice resolution (e.g. WD, WN, SD, SN), the NCAP_AF related
capacity constraints with an availability of 1 are usually binding only in one
process timeslice level, e.g. WD. Now the dual variable of NCAP_AFA can be
seen as rent that must be covered in other process timeslices (WN, SD, SN) by
the then prevailing electricity price, so that the model would decide to shift the
scarce annual capacity from WD to another timeslice.
36
GAMS moves all constants (e.g. past investments) on the RHS and the variables on
the LHS of the equation. In the listing file the primal value of the equation can be found
in the solution report under the LEVEL column. The RHS value is given under the
column UPPER column in case of a <= inequality and in the LOWER column for a >=
inequality. For an equality LOWER, LEVEL and UPPER value are the same.
181
Equation:
(
∑VAR _ ACT
)
ts∈ prc_tsr,p, ts ∩ts_map r,s, ts
r ,v ,t , p ,ts
{≤; =; ≥}
∑[COEF _ AFr ,v 2,t , p,s,bd × COEF _ CPTr ,v 2,t , p × PRC _ CAPACTr , p ×
v 2∈rtp_cptyr
r, v, t, p
× ( p ∉ prc_vint r,p )
(VAR _ NCAPr ,v 2, p + NCAP _ PASTI r ,v 2, p )]
(in this case the vintage index v of EQ(l)_CAPACT is equal to the period index t )
+
COEF _ AF
r ,v ,t , p , s ,bd × COEF _ CPTr ,v ,t , p × PRC _ CAPACTr , p ×
× ( p ∈ prc_vint r,p )
(VAR _ NCAPr ,v , p + NCAP _ PASTI r ,v , p )
[
× G _ YRFRr , s × ( p ∉ prc_map r,'STG',p ) + RS _ STGPRDr , s × ( p ∈ prc_map r,'STG',p ) ]
182
COEF _ CPTr ,v ,t , p :
if v = t
D(t ) − NCAP _ ILED
= Max D(t ) If v has been a long time period, and t
0
is close enough to encounter a capacity
created at the end of v.
else
if t ≥ v ∧ D(v) > IL + TL ∧ B(t ) < E (v) + TL
where:
IL = NCAP_ILEDr,v,p
TL = NCAP_TLIFEr,v,p
B(t) = 1st year of the period containing t
E(t) = Last year of the period containing t
D(t) = Duration of the period containing t
183
5.3.7 Equation: EQ(l)_CPT
Type: Any type, as determined either by the bound index bd of CAP_BND or the need to
have a capacity variable (learning technology or capacity variable used in user
constraint):
• l = ’G’ for bd = ‘LO’ (lower bound) yields ≥ , if no upper bound at the same time
• l = ’E’ for bd = ‘FX’ (fixed bound), or for lower and upper capacity bound at the
same time, or for learning technology or for capacity variable used in user
constraint yields = .
• l = ’L’ for bd = ‘UP’ (upper bound) yields ≤ , if no lower bound at the same time.
Purpose: This equation adds up the investments (VAR_NCAP), which have been made
in the current and previous periods and still exist in the current period, and past
investments being made before the beginning of the model horizon and either assigns it to
the capacity variable VAR_CAP or applies directly lower or upper capacity bounds to it.
Remarks:
• It is generated only for those milestone year & process combinations that have a
corresponding CAP_BND specification, for processes where there is a user constraint
involving a capacity variable, and for processes being a learning technology (teg).
• In case that only a lower or an upper capacity bound is specified the capacity bounds
are directly used as RHS constants. In the other cases, the capacity variable is used
instead.
• The set rtp_varp(r,t,p) describes the cases where a capacity variable is needed:
• Capacity variable is used in a user constraint,
• Lower and upper capacity bound are specified for the same period. In this case it is
more efficient to generate one capacity variable by one EQE_CPT equation and
bound the variable instead of generating the two equations EQL_CPT and
EQG_CPT.
184
Equation:
where
185
5.3.8 Equation: EQ(l)_COMBAL
Purpose: This equation ensures that at each period and time-slice, the total procurement
of a commodity balances its total disposition. A commodity may be procured in several
different ways: imported, produced by technologies (activity and capacity based),
released at retirement of some investments. A commodity may be disposed of in several
other ways: exported, consumed by technologies (activity or capacity based) or by a
demand, or “sunk” at investment time of a process. The default type for the balance
constraint of an energy carrier and for an emission is ≥, which allows procurement to
exceed disposition. This may be important in order to avoid some infeasibilities dues to
rigid processes with many outputs or inputs. The default sign is = for materials. Both
defaults may be modified by the user by the set com_lim.
Remarks:
• The commodity balance is generated for the timeslices (s) according to the user
defined sets com_tsl or com_ts.
• When there are one or more of the attributes BND/CST/SUB/TAX/CUM relating to
production of the commodity, EQE_COMPRD is generated in addition to this equation.
EQE_COMPRD simply creates a new variable (VAR_COMPRD) equal to the
production part of the LHS of the balance constraint (see expression COMSUP below)
• Similarly, if there are relevant coefficients for the net production of the commodity,
the expression VAR_COMNET is created, containing the net production, and used in
the RHS (see below).
• Note that CAL_FLOFLO(r,t,p,c,s,io) table stores the complete expressions
(coefficients and variables) giving the flow of each commodity.
• The investment related input flows are assumed to be spread uniformly throughout the
commodity lead-time, NCAP_CLED, ending exactly at the end of NCAP_ILED
(default value for NCAP_CLED is NCAP_ILED).
• Commodity output flows related to dismantling are assumed to occur uniformly over
NCAP_DLIFE, and to start right after NCAP_DLAG (default value: NCAP_DLIFE =1).
186
• NCAP_COM have an 'io' or should it be just on the supply side for accounting
purpose? Examples exist for (physical) consumption as well as release, land use by
hydro dams and methane emissions from them, respectively.
Where COEF_FBRHS is 0 for all balance equations, except for demand balances where it
is equal to a positive parameter. In addition, COEF_FBRHS is equal to a variable when
the equation is used to define the variables VAR_COMPRD or VAR_COMNET.
37
The primal value and the RHS constant of an equation can be found in the GAMS
listing file in solution report part. The LEVEL value column corresponds to the primal
value, the LOWER level value equals the RHS of a constraint of type >= and the UPPER
level value equals the RHS of a constraint of a type <=.
187
Equation:
r, v, t, p
r , s1
Output of blending
+
∑ (BLE _ BALr,t ,c,opr × VAR _ BLNDr,t ,c,opr × RTCS _ TSFRr,t ,c,s,' ANNUAL' ) parameter
process; the
opr∈ble_opr
COM _ IE r ,t ,c × r,c,opr
BLE_BAL
converts the
blending streams
to energy units
NCAP _ COM × COEF _ CPT ×
r , v , p , c ,'OUT ' r , v ,t , p
+ ∑
v )∈rpc_capflor, v,p,c
VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s
if( p(,rtp_cptyr NCAP _ PASTI ∋ v ∈ PASTYEAR
∧
r, v, t, p
r ,v , p
NCAP _ COM r ,v , p ,c ,'OUT ' ) Flow produced by
Technology
Capacity
COEF _ OCOM r ,v ,t , p ,c ×
+ ∑
, v )∈rpc_capflor, v,p,c
VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s
if( pCOEF
_ OCOM r ,v ,t , p ,c NCAP _ PASTI r , v , p ∋ v ∈ PASTYEAR
Flow produced by
Technology
Invstment/Dismantling
COM _ STEPl
+ ∑VAR _ ELAST
j =1
r ,t , c . s , j ,l (∀l = lo)
Net reduction in
demand
COM _ STEPl
− ∑VAR _ ELAST
j =1
r ,t , c , s , j ,l (∀l = up )
188
This internal set gives the periods, at which
the commodity is available (usually all periods,
but the user can turn-off periods by the set
com_off), and the timeslices as defined by the user
in com_tsl or com_ts.
processes
+ ∑ ∑ CAL _ IRE r ,v ,t , p ,c ,c 2, s ,' EXP ' + AUX _ IRE r ,t ,c , s ,' IN ' of the
Export
p∈rpc_ire r,p,c,'EXP' v∈rtp_vintyrr,v,t,p
commodity
Storage of
commodity
1 if ts_mapr, s,s1
+
∑
( p ,v )∈rtp_vintyr s1∈prc_ts ∑ VAR _ SIN r ,v ,t , p ,c ,s1 × G _ YRFRr , s
r, v, t, p r,p,s1 otherwise
G _ YRFRr , s1
Input flow into
processes
storage
+
ble∈ble_opr∑ (BLE _ BALr ,t ,ble,c × VAR _ BLNDr ,t ,ble,c × RTCS _ TSFRr ,t ,c,s,' ANNUAL' ) di
−
r,ble,c
process; the
Output of blending
parameter BLE_BAL converts the
blending streams to energy units
NCAP _ COM × COEF _ CPT ×
r , v , p , c ,' IN ' r , v ,t , p
+ ∑
v )∈rpc_capflo r, v,p,c
VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s
if( p(,rtp_cptyr NCAP _ PASTI r ,v , p ∋ v ∈ PASTYEAR
∧
r, v, t, p
NCAP _ COM r ,v , p ,c ,'IN ' ) Input flow oftechnology
capacvity
COEF _ ICOM ×
r , v ,t , p , c
+ ∑
, v )∈rpc_capflo r, v,p,c
VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s
if( pCOEF
_ ICOM r ,v ,t , p ,c NCAP _ PASTI r , v , p ∋ v ∈ PASTYEAR
Commodity consumed by
Technology
Invstment/Dismantling
{≥; =} COEF _ FBRHS
189
We now show the detailed calculation of the Right-hand-side
COEF _ FBRHS :
Do Case
Case ∋ COM _ BNDNET ∨ COM _ CUMNET
∨COM _ CSTNET ∨ COM _ SUBNET ∨ COM _ TAXNET
Otherwise
COEF _ FBRHS = 0
Endcase
190
Flow Coefficients related to process activity (VAR_FLO)
The process has regular
CAL _ FLOFLOr ,v ,t , p ,c ,s ,io ∋ rp_flo r,p ∧ NOT rpc_conly r,t,p,c flow variables (VAR_FLO).
= ∑ VAR _ FLO
s1∈rtpcs_varfr,t,p,c,s1
r ,v ,t , p ,c , s1 ×RTCS _ TSFRr ,t ,c ,s ,s1 RPC_CONLY contains
commodities ONLY involved
in NCAP_I/O/COM
191
CAL _ IRE r ,v ,t , p ,c , s ,ie ∋ rpc_ire r, p,c, ie ∧ NOT rpc_conly r, t, p,c
Internal set indicating that commodity
(c) is imported/exported (ie) via
= ∑VAR _ IRE
s1∈rtpcs_varf r, t,p,c,s1
r , v ,t , p , c , s1,ie ×RTCS _ TSFRr ,t ,c , s , s1 process (p) in/from region (r).
IRE _ FLOSUM r ,t , p ,com , s1,ie,c ,io × VAR _ IRE r ,v ,t , p ,c , s1,ie
if ts_map
r, s, s1
= ∑ ∑ ∑ ×1 The timeslice (s1) of the flow
rpc_ire r,p,com,ie v∈rtp_vintyrr, v, t,p s1∈rtpcs_varf r, t,p,com,s1
( p , com ,ie )∈ else variable VAR_IRE is below
∧ IRE _ FLOSUM
r ,t , p ,com ,s ,ie ,c ,io
(s) in the timeslice tree.
G _ YRFRr , s
×
G _ YRFRr , s1
192
Investment Related Flow Coefficients
Intermediate Notation:
BCF = B( v ) + NCAP _ ILED − NCAP _ CLED Beginning year of commodity flow
ECF = B( v ) + NCAP _ ILED − 1 Ending year of commodity flow
COEF _ ICOM :
if (v = t ) ∧ ( IL + TL < D(t ))
NCAP _ ICOM v Case IV
= COEF _ RPTINV ×
D(t )
D(t ) − ILEDt Counts the number of
where COEF _ RPTINV = investments in a long period
TLIFE t
else
1 + Min(ECF , E (t ) ) − Max(BCF , B(t ) ) NCAP _ ICOM v Cases I, II, III
= Max × ,0
D (t ) NCAP _ CLED v
endif
Case I Case II
NCAP_CLED
t t
t t
193
Dismantling Related Flow Coefficients
Intermediate Notation:
BCF = B(v) + NCAP _ ILED + NCAP _ TLIFE + NCAP _ DLAG Start year of
commodity flow.
ECF = B( v ) + NCAP _ ILED + NCAP _ TLIFE + NCAP _ DLAG + NCAP _ DLIFE − 1
End year of commodity flow.
Either the current period is ‘long’ or there was
a long period that could have investments late
COEF _ OCOM : enough to be dismantled in ‘t’.
194
5.3.9 Equation: EQE_COMPRD
Type: =
Purpose: This equation generates a variable VAR_COMPRD equal to the total supply of
the commodity, i.e. import + production (activity and capacity based) + investment-time
outflow + dismantling related outflows, in each period and time slice. Note that this
excludes demand reduction (in the case of a demand commodity)
Remarks:
• Enables the application of bounds to the annual or cumulative production of
commodities. This is also needed to incorporate cost/sub/tax attributes on commodity
production.
Equation:
195
5.3.10 Equation: EQ(l)_CUMNET/PRD
Purpose: This equation generates a cumulative bound for net release or total gross
production of a commodity. The constraint concerns net release/production over an
arbitrary number of consecutive years between the year (y1) and year (y2) as given in the
bound parameter COM_CUMNET/PRD.
Remarks:
• It is possible to have multiple cumulative bounds of any type.
• The total time span for calculating the cumulative production needs not consist of an
exact number of periods.
• The cumulative bounds are expressed annually only.
• The sign of the bound is indicated by the l equation index.
196
Equation:
t =T ( y 2 )
t =T ( y 2 )
197
5.3.11 Equation EQ_DSCNCAP
Type: =
Purpose: The investment variable of the technology p in period t and region r can take
only specific unit sizes given by the parameter NCAP_DISC. This equation defines the
investment variable to be equal to the sum over the different unit sizes each multiplied by
the corresponding decision variable VAR_DNCAP. However, the sister equation
EQ_DSCONE restricts this sum to a single term only (i.e. a single unit –of a specific size,
is allowed to be invested in at period t).
Remarks:
• The set unit contains the names of capacity blocks/units that can be added, the set
contain integer numbers going from ‘0’ to ‘100’. The unit name ‘0’ is used to
describe the decision that no capacity should be added.
• The set rp_dscnap(r,p) contains the processes p (in region r) for which the
discrete capacity formulation should be used
• The parameter NCAP_DISC(r,t,p,u) is the allowed capacity size of unit u; e.g.
the size of unit ‘1’ could be 50 MW, unit ‘2’ 100 MW and unit ‘3’ 500 MW. The
size of unit ‘0’ is automatically set to zero (EPS). If all unit sizes are taken equal,
the formulation allows the repeated investment of a basic unit (as many as 100
times, in integer numbers).
• VAR_DNCAP(r,t,p,u) is a binary decision variable describing whether the
capacity unit unit of technology p should be added in period t or not. Some
solvers for mixed-integer problems, as CPLEX or XPRESS, allow the definition
of variables as so-called SOS1 sets (special ordered sets) in order to improve the
solution process. A SOS1 set is defined as a set of variables of which only one
variable can take a non-zero value. VAR_DNCAP is currently defined as SOS1
variable. Not all solvers support this option, in these cases the variable type
should be changed to a binary variable in the file mod_vars.dsc.
Equation
198
5.3.12 Equation: EQ_DSCONE
Type: =
Purpose: The equation ensures that only one of the multiple unit sizes allowed for
technology p (described by NCAP_DSC(r,t,p,u)) can be added in period t.
Equation
∑ VAR _ DNCAP
u∈unit
r ,t , p ,u =1
Note that VAR _ DNCAP must be declared as a binary var iable (taking values 0 or 1 only )
199
5.3.13 Equation: EQ(l)_FLMRK
Indices: region (r); period (t); process (p); commodity (c), time-slice (s)
Purpose: Relationship to facilitate constraints on the market share of process (p) in the
total production of commodity (c). Indicates that the flow of commodity (c) from/to
process (p) is bounded by the given fraction of the total production of commodity (c).
The time-slice level of the constraint is that of the commodity (c). In the present
implementation, the same given fraction is applied to all timeslices (this could be
generalized to allow time-slice-specific fractions, if deemed useful).
Variables involved
Parameters
Remarks
200
1. Market-share constraints can be specified for ordinary processes, as well as for exchange and
storage processes. For ordinary processes, the FLO_MARK parameter value should always be
non-negative. However, because exchange and storage processes can have both input and
output flows of the same commodity, for these processes negative values can also be specified.
Depending on the parameter value, the constraint is in these cases applied either to the input or
output flow by using the following simple conventional rules:
• Value > 0: Constraint is applied to the output flow (imports or storage discharge)
• Value < 0: Constraint is applied to the negative of input flow (exports or storage
charge)
• Value=EPS: Constraint is applied to the net output flow (output–input flow)
These simple rules provide reasonable flexibility for specifying market share bounds also for
exchange and storage processes, in addition to ordinary processes. Although these rules preclude
individually bounding the input or output flow to zero, this could always be accomplished by
using the IRE_BND, STG_OUTBND, and STG_INBND parameters when necessary.
2. In most cases, the commodity c to be specified in the FLO_MARK parameter is directly the
commodity of the process flow. All commodities defined in the topology can always be
directly used in the FLO_MARK parameter, when satisfactory. However, the commodity used
in the parameter does not actually need to be in the topology, but it should contain some
commodity that does exist in the process topology. This feature can be utilized for defining
market-share equations at the ANNUAL level for seasonal commodities. For example, if ELC
is a seasonal commodity, the user could define a new commodity ELC_ANN that includes
ELC as a group member (through COM_GMAP membership), and use the ELC_ANN
commodity in the FLO_MARK parameter insetad of ELC. If no timeslice level is defined for
ELC_ANN, the constraint will then by default be defined at the ANNUAL level.
Examples:
• Define an upper market share bound of 5% for technology WIND1 in total ELC
production in the 2010 period.
• Define an upper market share of 25% for diesel export (through exchange process
DSLXHG) of total DSL production in the 2010 period. Note that because the
bound is for exports, in this case the parameter value should be negative and the
bound type LO instead of UP.
PARAMETER FLO_MARK /
REG.2010.WIND1.ELC.UP 0.05
REG.2010.DSLXHG.DSL.LO –0.25
/;
201
has to be paid by the other technologies producing the same commodity. Thus,
the costs of these technologies are increased by the amount FLO_MARK*(dual
variable). The constraint can therefore be interpreted as a quote system for the
production of a specific technology, e.g. a certificate system for electricity by a
wind technology: each non-wind producer has to buy certificates according to
the quota. The price of the certificates equals the dual value of the constraint.
Equation:
VAR _ IRE r ,v ,t , p ,com ,ts ,imp COM _ IE r ,com ,ts if FLO _ MARK r ,t , p ,c ,s ,l ≥ 0
× −
VAR _ SOUTr ,v ,t , p ,com ,ts × STG _ EFFv , p 0 if FLO _ MARK r ,t , p ,c ,s ,l < 0
VAR _ IRE r ,v ,t , p ,com ,ts ,exp 1 if FLO _ MARK r ,t , p ,c ,s ,l ≤ 0
× 0 if FLO _ MARK ×
VAR _ SIN r , v , t , p , com , ts r , t , p , c , s , l > 0
1 if ts ∈ TS _ MAP ( r, s )
FR( s )
if ts ∈ RS _ BELOW ( r, s )
FR(ts )
{=; ≤; ≥}
202
5.3.14 Equation: EQ(l)_FLOBND
Indices: region (r), period (t), process (p), commodity group (cg), timeslice (s)
Purpose: Bound on the sum of process flows in a given commodity group (cg) for a
particular process (p) in period (t) and timeslice (s).
Remarks:
• The constraint bounds the flows in a specific period (t) irrespectively of the
vintage years of the process capacity.
• The bound can be defined for a single commodity or a group of commodities
linked to the process (p). In the latter case, a commodity group (cg) must be
defined by the user (through com_gmap).
• The constraint is generated, if one of the following conditions is true:
o Process (p) is vintaged, or
o the sum of several process flows given by the commodity group (cg), and
not only a single process flow, should be bounded, or
o the timeslice resolution of the flow variables are below the timeslice (s) of
the bound parameter.
In the other cases, the bound can be directly applied to the corresponding flow
variable, so that no extra equation is needed.
• The timeslice level (s) of the bound must be at or higher than the timeslice level
of the process flows (rtpcs_varf).
203
Equation
∑ ∑ ∑VAR _ FLO
c∈com_gmapr,cg,c ts∈rtpcs_varfr,t,p,c,ts v∈rtp_vintyrr, v,t,p
r ,v ,t , p ,c ,ts The timeslice resolution (ts) of
the process flow(s) is below the
timeslice resolution (s) of the
(≤ / ≥ / = ) FLO _ BNDr ,t , p ,cg ,s ,bd
bound.
where the equation sign is indicated by equation index l based on the bound type bd.
204
5.3.15 Equation: EQ(l)_FLOFR
Indices: region (r), period (t), process (p), commodity (c), timeslice (s)
Purpose: Relationship in period (t) between the total annual flow and the flow in a
particular timeslice (s) for a specific process (p). The parameter FLO_FR may be used to
define a load curve for a process flow.
Remarks:
The sign of the equation determines whether the flow in a given timeslice is rigidly
(=) or flexibly (≥ ; ≤) linked to the annual flow. The constraint bounds the flows
irrespectively of the vintage years of the process capacity.
Equation
EQ(l ) _ FLOFRr ,t , p , c , s ∋ ∑ ts_map r,s, ts ∧ FLO _ FRr ,t , p , c , s ,bd
ts∈rpcs_varr,p,c,ts
The timeslices of the process
(≤ / ≥ / = )
∑ [VAR _ FLO ]
See under EQ(l)_COMBAL for
∑
ts∈rtpcs_varf r,t,p,c,ts v∈rtp_vintyrr, v,t,p
r , v , t , p , c , ts × FLO _ FRr ,t , p , c , s ,bd the definition of the internal
parameter RTCS_TSFR .
205
5.3.16 Equations related to exchanges (EQ_IRE, EQ_IREBND, EQ_XBND)
The three equations in this section concern trade between regions. Since these equations
involve (directly or indirectly) more than one region, we start their presentation by a
complete description of the modeling approach used, which, as we shall see, involves
various schemes for representing different types of trade. The description already given
in chapter 2 is also relevant to these equations.
206
Supply Demand
regions regions
RS3 RM RD3
Figure 5.1. General structure of the pair-wise specification of the trading sub-
network allowed in TIMES for a single exchange process.
The general structure allowed for the trading sub-networks can be further divided into
four cases, which will be discussed below in more detail:
Export Import
R1 R2
Import Export
R1 R2=RM R1
207
and the trade through the exchange process is balanced between these two regions.
Whatever amount is exported from region i to region j is imported by region j from
region i (possibly with an adjustment for transportation losses). The basic structure is
shown in Figure 5.2. Bi-lateral trading can be fully described in TIMES by specifying the
two pair-wise connections in top_ire. The capacity and investment costs of the exchange
process can be described individually for both regions. For Cases 2 and 3, the general
structure of the trade relationships is shown in Figure 5.4. Also in these cases the
definition of the trading structure is easy, because the relationships can be unambiguously
described by pair-wise top_ire specifications between two regions.
RS3 RM RM RD3
RSm RDn
208
into the top_ire set. If there are n supply regions and m demand regions, the total number of
entries needed in top_ire for defining all the trade possibilities is n+m–2 (counting the
market region to be included in both the supply and demand regions. Although the market
region has to be defined to be an intermediate node in the structure, the model generator will
actually not introduce any intermediate step between the export and import regions.
The timeslice levels of the traded commodity may be different in each region (as well as the
commodity name). However, some appropriate common timeslice level must be chosen for
writing the market balance equation. That common level is the level attached to the exchange
process in the market region. In all other respects, the market region is not treated in any
way differently from the other regions participating in the market. Nevertheless, the user can
of course provide different data for the different regions, for example investment costs or
efficiencies for the exchange process can be differentiated by region.
If the sets of supply and demand regions participating in the market should actually be
disjoint, even in that case the user has to choose one of the regions to be used as the
intermediate market region. The imports to or exports from the market region can then
be switched off by using an IRE_XBND parameter, if that is considered necessary.
Remarks on flexibility
1. Any number of exchange processes can be defined for describing the total trade
relationships of a single commodity (but see warning 1 below).
2. The names of traded commodities can be different in each region participating in
the trade. In addition, also the import and export names of the traded commodities
can be different (but see warning 2 below). This could be useful e.g. in the case of
electricity, for which it is common to assume that the export commodity is taken
from the system after grid transport, while the import commodity is introduced
into the system before the grid.
3. Any number of commodities can be, in general imported to a region or exported
from a region through the same process (but see warning 2 below).
Warnings
1. For each exchange process of any traded commodity, the total structure of the
trading sub-network, as defined in top_ire, must comply with one of the basic
structures supported by TIMES (Cases 1–4). If, for example, several bi-lateral
trading relationships are defined for the same commodity, they should, of course,
not be defined under the same process, but each under a different process.
2. If the export and import names for a market-based commodity (c) are different in
the market region, no other commodities should be imported to the market region
through the same exchange process as commodity c.
3. The model generator combines the trading relationships of a single process into a
single market whenever there is an intermediate region between two different
regions. If, however, the intermediate exchange step should be explicitly included in
the model, the trading sub-network should be divided between two different
exchange processes.
209
Example
Assume that we want to set up a market-based trading where the commodity CRUD
can be exported by regions A, B, C, and D, and that it can be imported by regions C, D, E
and F. First, the exchange process and marketplace should be defined. For example, we
may choose (C,XP,CRUD) as the marketplace, where XP has been chosen to be the name
of the exchange process (recall that process XP is declared only once but exists in all
trading regions, possibly with different parameters). The trade possibilities can then be
defined simply by the following six top_ire entries:
SET PRC / XP /;
SET TOP_IRE /
A .CRUD .C .CRUD .XP
B .CRUD .C .CRUD .XP
D .CRUD .C .CRUD .XP
C .CRUD .D .CRUD .XP
C .CRUD .E .CRUD .XP
C .CRUD .F .CRUD .XP
/;
To complete the RES definition needed for the exchange process, in addition only the
set prc_actunt(r,p,c,u) needs be defined for the exchange process XP:
SET PRC_ACTUNT /
A .XP .CRUD .PJ
B .XP .CRUD .PJ
C .XP .CRUD .PJ
D .XP .CRUD .PJ
E .XP .CRUD .PJ
F .XP .CRUD .PJ
/;
These definitions are sufficient for setting up of the market-based trade. Additionally,
the user can of course specify various other data for the exchange processes, for example
investment and distribution costs, and efficiencies.
TIMES SETs related to endogenous trade
210
(importing) regions for the same exporting region. However, the user can also manually
specify a marketplace even for a bidirectional bi-lateral exchange. This can be done manually
by specifying one of the two demand regions to be the marketplace for the exported
commodity. Instead of two trade balance equations, only one market balance equation is then
generated.
prc_aoff(r,p,y1,y2): Override used to control in what years (not periods) a process is not
available. This set is not specifically related to exchange processes. However, in the case of
market-based trading it can be used to switch off the entire commodity market for periods
that fall within the range of years given by prc_aoff. The market will be closed for all
commodities exchanged through the process (p). It is also possible to specify multiple entries
of prc_aoff, if, for example trading should be possible only between selected years.
Remark
In market-based trade, the export regions participating in the market consist of all
those regions that export commodity c into region r through process p (as defined in
top_ire). Similarly, the import regions participating in the market consist of those regions
that import commodity c from region r through process p (as defined in top_ire). In
addition, the market region r by itself always participates in the market both as an import
and export region. However, the imports/exports of commodity (c) to/from the market
region (r) can be switched off by using an IRE_XBND parameter, if necessary.
Parameters
38
The indexing of auxiliary consumption flows or emissions of inter-regional
exchange processes is illustrated in the figure below.
211
IRE_BND(r1,t,c,s,r2,ie,l): To bound the total import/export in internal region r1, to/from
region r2, where region r2 may be internal or external 39; c is the name of commodity in
region r1. Default none.
IRE_XBND(r,t,c,s,ie,l): Limit on total import/export of commodity c in region r, to/from all
destinations/sources, where r may be an internal or external region (Default: none
IRE_CCVT(r1,c1,r2,c2) Conversion of commodities as part of inter-regional exchanges, both
internal and external. Default = 1 when exchange permitted. Units: none
IRE_TSCVT(r1,s1,r2,s2): A matrix that transforms time slices of region r1 to region r2 as
part of inter-regional exchanges, including both internal and external. Default = 1 when
exchange permitted. Units: none
Remarks:
In market-based trading the IRE_FLO parameter is taken into account on the export
side only (representing the efficiency from the export region to the common
marketplace). By using this convention, any bi-lateral exchange can be represented by a
fully equivalent market-based exchange simply by choosing one of the two regions to be
the marketplace, and adding the corresponding entry to the set rpc_market(r,p,c). The
efficiency of the exports from the market region itself to the marketplace should also be
specified with an IRE_FLO parameter, when necessary (r1=r2=market region).
If the user wants to specify efficiency on the import side of a market-based exchange,
this can be done by using an IRE_FLOSUM parameter on the import side.
Similarly to any other pair of regions, the total amount of commodity imported to a
region from the commodity market can be constrained by the IRE_BND parameter, by
specifying the market region as the export region. Correspondingly, the total amount of
commodity exported from a supply region to the marketplace can be constrained by the
IRE_BND parameter by specifying the market region as the import region.
Variables
VAR_IRE(r, v, t, p, c, s, ie)
Description: The total amount of traded commodity (c) imported/exported (ie) to/from
region (r), through process (p) vintage (v) in each time period (t)
Purpose: The trade variables facilitate trade of commodities between exporting and
importing regions
Bounds: The amount of commodity imported to a region from each exporting region can
be directly constrained by the IRE_BND parameter.
Remarks:
39
The equation EQ(l)_XBND may have an external regional as region index (bounding the import
from one external regions to all other regions).
212
• Note that there is a one-to-one correspondence between the VAR_IRE variables
and the m+n arcs shown in Figure 5.1 (one variable for each supply region and
one variable for each demand region).
• In market-based trade, the VAR_IRE variables for the market region still only
describe the net imports to, and exports from, the market region, not the total
market volume.
• There is no variable for the total volume of the commodity market in market-
based trade. The total volume can only be addressed by means of UC_IRE
parameters (summing over all imports to or exports from the market).
• In market-based trade, only the amount of commodity imported to a region from
the market, or exported from the region to the market, can be constrained by the
IRE_BND parameter. The imports and exports thus cannot be attributed to a
specific supply or demand region on the other side of the trade.
• The amount of commodity exported from / imported to a region may also be
limited by bounds specified on growth rates between periods (dynamic UC_IRE
with GROWTH attribute), as well as cumulative limits imposed on the resource
over the entire time horizon (cumulative UC_IRE). However, in these cases the
bounds can only apply to the total exports from or imports to a region, and cannot
apply to e.g. imports from a specific region.
There are only three trade equations, namely a generic trade balance equation
EQ_IRE, and two bounds, EQ(l)_IREBND and EQ(l)_XBND. The generic balance
equation, EQ_IRE, can be further divided into two flavors:
A. Balance equations for bilateral and other unidirectional trade into a single
destination region (Cases 1 and 2).
B. Balance equations for multidirectional trade from single export region and multi-
lateral market-based trade (Cases 3 and 4).
Indices: region (r), year (t), process (p), commodity (c), timeslice (s)
Type: =
Related variables: VAR_IRE
Purpose: This equation defines the balance between the imports of each traded
commodity (c) into region (r) and the corresponding exports trough each exchange
process (p) in each time period (t) and timeslice (s) of the process.
Units: Units of commodity traded. Normally PJ for energy, Mton or kton for materials
or emissions.
213
Remarks:
• Flows into individual regions may be limited by the IRE_BND and IRE_XBND
parameters.
• The equation has two flavors: The first one is for bilateral and unidirectional
trade with a single destination region, and the second is for market-based trade
and multidirectional trade from a single source region.
Equation
EQ _ IRE ∋ {r , t , p, c, s ∈ (rtpr,t,p ∧ rpcs_varr,p,c,s ∧ rpc_eqirer,p,c )}:
r , t , p , c, s
∑VAR _ IRE
v ∈rtp_vintyrr, v,t,p
r ,v ,t , p ,c ,s ,'IMP ' = This is the efficiency of process p for
the pair of regions and commodity c.
VAR _ IREr 2,v ,t , p ,c 2,ts ,'EXP ' × IRE _ FLOr 2,v , p ,c 2,r ,c ,s ×
∑ ∑ ∑ ∑ IRE _ TSCVTr 2,s 2,r ,s × IRE _ CCVTr 2,c 2,r ,c ×
rtpcs_varfr2,t,p,c2,ts
RTCS _ TSFR
( r 2 ,c 2 ) ∈ top_irer2,c2,r,c,p v ∈rtp_vintyrr2, v,t,p s 2∈IRE _ TSCVTr 2 , s 2 , r , s
ts∈
∩ rs_treer,s2,ts ´r 2 ,t ,c ,s 2 ,ts
s2 is the timeslice in region
r2 that corresponds to This converts
timeslice s in region r. The the units.
conversion table IRE_TSCVT
contains the conversion
coefficients. Coefficients for mapping
timeslices ts of VAR_IRE
with the timeslices s2. See
EQ(l)_COMBAL for the
The timeslices (ts) of the export flow in region
definition of RTCS_TSFR.
r2 are described by the set rtpcs_varf.
Remarks:
• The IRE_TSCVT conversion coefficients are in practice provided only for some pairs
of mapped timeslices between r2 and r. Therefore, the timeslice conversion is
actually done in two stages: First, the timeslices of the VAR_IRE variables are
converted to the mapped timeslices, and then the mapped timeslices in r2 to those in r
as follows:
• The mapping coefficients IRE_TSCVT do not have to be provided by the user, if
the timeslice definitions in both regions are identical.
• If the timeslice definitions are different, the user provides the mapping
coefficients IRE_TSCVT to convert the timeslice s2 in region r2 to the timeslice
s in region r. Since the timeslice level of s2 maybe different to the timeslice
214
level ts of the exchange variable in region r2, the parameter RTCS_TSFR is
used to match ts and s2.
• Note that the equation is generated for each period in rtp only, not for each vintage in
rtp_vintyr as in the original code. This is because prc_vint is region-specific. If
prc_vint is set to YES in one region and to NO in another, that would create serious
sync problems, if the equation were generated for each vintage in rtp_vintyr. In
addition, differences in e.g. NCAP_PASTI, NCAP_TLIFE, and NCAP_AF could
create sync problems, even if prc_vint would be set to YES in all regions.
Equation:
EQ _ IRE r ,t , p ,c , s ∋ {r, t , p, c, s ∈ (rtp r, t, p ∧ rpcs_varr, p,c, s ∧ rpc_eqire r, p,c )}:
VAR _ IRE r 2,v ,t , p ,c 2,ts ,' EXP ' × IRE _ FLOr 2,v , p ,c 2, r ,c , s ×
∑ ∑ ∑ ∑ IRE _ TSCVTr 2, s 2, r , s × IRE _ CCVTr 2,c 2, r ,c ×
( r 2 , c 2 )∈top_ire r2,c2,r,c,p v ∈rtp_vintyrr2, v, t,p s 2∈IRE _ TSCVTr 2 ,s 2 ,r ,s rtpcs_varf r2, t,p,c2, ts
ts∈
∩ rs_tree r,s2, ts RTCS _ TSFR´ r 2 ,t , c , s 2 ,ts
Remarks:
• The IRE_TSCVT conversion coefficients are in practice provided only for some pairs
of mapped timeslices between r2 and r. Therefore, the timeslice conversion is actually
done in two stages: First, the timeslices of the VAR_IRE variables are converted to
the mapped timeslices, and then the mapped timeslices in r2 to those in r.
• In the case of market-based trading, prc_aoff can be used to switch off the entire
commodity market for periods that fall within a range of years. It is also possible to
specify multiple entries of prc_aoff, if, for example trading should be possible only
between selected years.
• The top_ire entry between the export and import commodity in the market region
itself is automatically defined by the TIMES model generator when necessary, i.e.
there is no need to provide it by the user.
215
5.3.16.2 Equation: EQ(l)_IREBND
Indices: region (r), year (t), commodity (c), timeslice (s), region2 (all_r),
import/export (ie)
Description: Sets a bound for the amount of commodity (c) imported/exported (ie)
to/from region (r), from/to another region (all_r) in time period (t) and timeslice (s).
Purpose: The equation is optional and can be used to sets a bound for a pair-wise inter-
regional exchange. The generation of the equation is triggered by the user-specified
parameter IRE_BND.
Units: Units of commodity traded. Normally PJ for energy, Mton or kton for materials
or emissions.
Remarks:
• Total trade flows into/from individual regions may be limited by using the
IRE_XBND parameter.
216
Equation:
∑ ∑ ∑VAR _ IRE
p :( ∃c 2 : TOP _ IRE all _ r ,c 2 ,r ,c , p ) v ∈RTP _ VINTYR r ,v ,t , p s 2
r , v , t , p , c , s 2 , exp ×
1 if s 2 ∈ TS _ MAP ( r, s, s 2)
FR( s )
if s 2 ∈ RS _ BELOW ( r, s 2, s )
FR( s 2)
∑ ∑ ∑VAR _ IRE
( c 2 , p ) ∈TOP _ IRE all _ r ,c 2 ,r ,c , p v ∈RTP _ VINTYRall _ r ,v ,t , p s 2
all _ r , v , t , p , c 2 , s 2 , exp × IRE _ FLOall _ r , v , p , c 2, r , c , s1 ×
s1∈RPCS _ VAR r , p ,c ,s 1
1 if s1 ∈ TS _ MAP ( r, s, s1)
FR ( s )
IRE _ CCVTall _ r , c 2, r , c × IRE _ TSCVTall _ r , s 2, r , s1 ×
FR ( s1) if s1 ∈ RS _ BELOW ( r, s1, s )
217
Case C. Exports from a non-market region to an internal or external region
r, t , c, s, all _ r, ie : ( RCS _ COMTSr , c , s ∧
EQ (l ) _ IREBNDr ,t , c , s , all _ r ,ie ∀ :
(∃p : RPC _ IEr , p , c ,ie ) ∧ IRE _ BNDr ,t , c , s , all _ r ,ie )
∑ ∑ ∑VAR _ IRE
p :( ∃c 2:TOP _ IRE r ,c ,all _ r ,c 2 , p ) v ∈RTP _ VINTYR r ,v ,t , p s 2
r , v , t , p , c , s 2 , exp ×
1 if s 2 ∈ TS _ MAP ( r, s, s 2)
FR ( s )
if s 2 ∈ RS _ BELOW ( r, s 2, s )
FR( s 2)
∑ ∑ ∑VAR _ IRE
( c 2 , p ) ∈TOP _ IRE r ,c ,all _ r ,c 2 , p v ∈RTP _ VINTYRall _ r ,v ,t , p s 2
all _ r , v , t , p , c 2 , s 2 , exp ×
1 if s 2 ∈ TS _ MAP ( r, s, s 2)
FR( s )
IRE _ CCVTall _ r , c 2, r , c × IRE _ TSCVTall _ r , s 2, r , s ×
if s 2 ∈ RS _ BELOW ( r , s 2, s )
FR( s 2)
Remarks:
• The IRE_TSCVT conversion coefficients are in practice provided only for some pairs of
mapped timeslices between all_r and r. Therefore, the timeslice conversion is actually
done in two stages: First, the timeslices of the VAR_IRE variables are converted to the
mapped timeslices, and then the mapped timeslices in all_r to those in r.
218
5.3.16.3 Equation: EQ(l)_XBND
Indices: region (r), year (t), commodity (c), timeslice (s), imp/exp (ie)
Description: Bound on the total amount of traded commodity (c) imported/exported (ie)
to/from region (all_r) in a period (t) and timeslice (s).
Units: Units of commodity traded. Normally PJ for energy, Mton or kton for
materials or emissions.
219
Equation:
all_r is an internal
VAR _ IRE
all _ r , v ,t , p , c , s 2 ,ie ×
∑
p∈rpc_ire all_r,p,c,ie
∑ ∑
s 2∈(rtpcs_varf all_r, t,p,c,s2 ∩rs_tree all_r,s,s2 ) v∈rtp_vintyrall_r, v, t,p
1 if s 2 ∈ ts_map all_r, s, s2
G _ YRFR ( s ) if s 2 ∈ rs_below all_r,s2,s
G _ YRFR ( s 2)
{=; ≤; ≥} IRE _ XBNDall _ r,t,c,s,ie,bd
all_r is an external
220
5.3.17 Equations: EQ(l)_INSHR, EQ(l)_OUTSHR
Indices: region (r); year (t); process (p); commodity (c); commodity group (cg);
time-slice (s)
∑ FLO _ SHAR
c∈cg
r , v , p , c , cg , s ,' LO ' ∀( FLO _ SHARr ,v , p ,c ,cg , s ,' LO ' ∋ l =" ≥" ) ≤ 1 − ∑ FLO _ SHARr ,v , p ,c ,cg , s ,' FX '
c∈cg
∑ FLO _ SHAR
c∈cg
r , v , p , c , cg , s ,'UP ' ∀( FLO _ SHARr ,v , p ,c ,cg , s ,'UP ' ∋ l =" ≤" ) ≥ 1 − ∑ FLO _ SHARr ,t , p ,c ,cg , s ,' FX '
c∈cg
Remarks:
• Exchanging top(r,p,c,’IN’)=Input vs. top(r,p,c’OUT’) = Output in this equation
yields EQ(l)_OUTSHR since c is only member of one cg.
• The period index of the parameter FLO_SHAR is related to the vintage period (v) of
the process, i.e., if the process is vintaged (prc_vint), a constraint will be generated
for each period (t) the installation made in the vintage period (v) still exists (these
period pairs are internally provided by the set rtp_vintyr).
221
flow the shadow price of the produced commodity is too low to cover the
production costs of the flow variable (for an input flow the opposite is true, the
commodity is too expensive to be used in the process). The value of the subsidy,
which the flow receives, is equal to (1-FLO_SHAR)*(dual variable). This
subsidy has to be paid by the other flows forming the denominator in
FLO_SHAR constraint, thus, the costs for these flows are increased by the
amount FLO_SHAR*(dual variable). In a similar way, an upper bound
FLO_SHAR can be interpreted as a tax being added to the costs of a flow.
Equation:
{=; ≤; ≥}
∑VAR _ FLO
s 2∈rtpcs_varf r, t,p,c,s2
r , v ,t , p , c , s 2 × RTCS _ TSFRr ,t , p ,c , s , s 2
See EQ(l)_COMBAL
for the definition of
RTCS_TSFR.
222
5.3.18 Equation: EQ_PEAK
Type: ≥
Purpose: The commodity peaking constraint ensures that the capacity installed is enough
to meet the highest demand in any timeslice, taking into consideration both adjustments
to the average demands tracked by the model and a reserve margin requiring excess
capacity to be installed.
Remarks:
• In the description below reference is made to existing components of the production
and consumption parts of the EQ(l)_COMBAL commodity balance equation, where a
peak contribution/co-incident factor is applied to the terms. These factors are process
dependent and as such are actually applied within the referenced expression during
the summing operation.
• COMBALsup refers to all the components of production, other than those related
to capacity as releases from the capacity are not to be taken into consideration for
satisfying the peaking constraint.
223
• prc_pkaf(r,t,p,s) switch to set NCAP_PKCNT=NCAP_AF/1 as default. Default: no
Equation:
224
≥
∑ (1 + COM _ PKFLX
c∈cg
r ,t , c , s )×
∑ CAL _ FLOFLOr,v,t , p,c,s,'OUT ' × FLO _ PKCOI r,t , p,c,s
v∈rtp_vintyrr,v,t,p
+
∑ ∑ CAL _ IREr,v,t , p,c,s,' EXP' × FLO _ PKCOI r,t , p,c,s
p∈rpc_ire r,p,c,'EXP' v∈rtp_vintyrr,v,t,p
+
NCAP _ COM r ,v , p ,c ,' IN ' × COEF _ CPTr ,v ,t , p ×
∑
+
∑ VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s +
p∈(topr,p,c,'IN' ∪rpc_ire r,p,c,'EXP' )∧(NOT prc_pknor,p ) if ( rtp_cptyrr,v,t,p r,v,p,c NCAP _ PASTI r ,v , p ∋ v ∈ PASTYEAR
( p , v )∈rpc_capflo
∧
NCAP _ COM r ,v , p ,c ,' IN ' )
COEF _ ICOM r ,v ,t , p ,c ×
+ ∑
, v )∈rpc_capflor, v,p,c
VAR _ NCAPr ,v , p ∋ v ∈ MILESTONYR + × G _ YRFRr , s
if( pCOEF _ ICOM r ,v ,t , p ,c NCAP _ PASTI r , v , p ∋ v ∈ PASTYEAR
Case
Case COM _ DM c
COM _ PROJ c × COM _ FRc , s
COM _ STEPl COM _ STEPl
− ∑VAR _ ELAST j ,l , s (∀l = lo) + ∑VAR _ ELAST j ,l , s (∀l = up )
j =1 j =1
Otherwise
0
Endcase
225
5.3.19 Equation: EQ_PTRANS
Indices: region (r); year (y); process (p); commodity group1 (cg1); commodity
group2 (cg2) time-slice (s)
Type: "="
Remarks:
• Internal set rps_s1(r,p,s): The finer of (set of time slices of the most finely divided
member of the the commodities within the shadow primary group (commodities
being not part of primary commodity group and are on the process site opposite to the
primary commodity group) and the process timeslice level (prc_tsl)).
• The flow variables of the commodities within the primary commodity group are
modelled on the process level (prc_tsl). All other flow variables on the timeslice
level of rps_s1.
• The internal parameter COEF_PTRAN(r,v,t,p,cg1,c,cg2) is the coefficient of the flow
variables of commodity c belonging to the commodity group cg2. While
FLO_FUNC(r,v,p,cg1,cg2,s) establishes a relationship between the two commodity
groups cg1 and cg2, FLO_SUM(r,v,p,cg1,c,cg2,s) can be in addition specified as
multiplier for the flow variables of c in cg2.
COEF_PTRAN is derived from the user specified FLO_FUNC and FLO_SUM
parameters based on the following rules:
o If FLO_FUNC is given between cg1 and cg2 but no FLO_SUM for the
commodities c in cg2, it is assumed that the FLO_SUMs are 1.
o If FLO_SUM is specified but no FLO_FUNC, the missing FLO_FUNC is set to 1.
o If FLO_SUM(r,v,p,cg1,c,cg2) and FLO_FUNC(r,v,p,cg2,cg1,s) are specified,
the reciprocal of FLO_FUNC is taken to calculate COEF_PTRAN.
• FLO_SUMs can only be specified for the flows within one commodity group cg1 or
cg2 of EQ_PTRANS between these two commodity groups, but not for both
commodity groups at the same time.
• By specifying a SHAPE curve through the parameter FLO_FUNCX(r,v,p,cg1,cg2)
the efficiencies FLO_FUNC and FLO_SUM can be described as function of the age
of the installation. The internal parameter RTP_FFCX contains the average SHAPE
multiplier for the relevant years in a period (those years in which the installed
capacity exists).
226
Interpretation of the results:
Primal: The primal value of the transformation is usually zero.
Dual: Due to the flexibility of the transformation equation the interpretation of its dual
value depends on the specific case. For a simple case, a process with one input
flow c1 and one output flow c2 being linked by an efficiency
FLO_FUNC(c1,c2), the dual variable, which is being defined as the cost change
when the RHS is increased by one unit, can be interpreted as cost change when
the efficiency of the process is increased by 1/VAR_FLO(r,v,t,p,c1,s):
Equation:
∑ (
∑VAR _ FLO
)
c∈cg 2 s∈ ts_mapr,s,s1 ∩ rtpcs_varf r, t,p,c,s
r ,v ,t , p ,c , s × RTCS _ TSFRr ,t ,c , s1, s =
227
COEF _ PTRAN r ,v,t , p,cg1,c,cg 2,ts ts ∈ rpcs_varc r, p,c, ts
=
1 × (if ts_mapr, ts,s ) + ( )
G _ YRFRr ,ts
∑ G _ YRFRr , s
× if rs_below r, s, ts
s∈prc_ts r,p,s
if FLO _ FUNCr ,v,t , p,cg1,cg 2, s
× (1 × (if NOT FLO _ SUM r ,v ,t , p,cg1,c,cg 2, s ) + FLO _ SUM r ,v ,t , p,cg1,c,cg 2, s )
FLO _ FUNCr ,v,t , p,cg1,cg 2, s
×
FLO _ FUNCr ,v,t , p,cg 2,cg1, s × (if FLO _ SUM r ,v,t , p,cg1,c,cg 2, s ) ∨ FLO _ FUNCr ,v ,t , p,cg 2,cg1, s
Case A: Lifetime minus construction time is longer than the construction period
PRC _ YMIN r , v , p = Bv + NCAP _ ILEDr , v , p
PRC _ YMAX r , v , p = PRC _ YMIN r , v , p + NCAP _ TLIFEr , v , p − 1
( [
∑ SHAPE (FLO ]_) FUNCX r , v , p , cg 1, cg 2 ,1 + MIN ( y , PRC _ YMAX r , v , p ) − PRC _ YMIN r , v , p )
∑
y∈ periodyrt, y ∧ y ≤ MAX ( B ( t ), PRC _ YMAX r ,v , p )
−1
v∈rtp_vintyrr, v, t, p MAX [1, MIN ( E (t ), PRC _ YMAX r , v , p ) − MAX ( B (t ), PRC _ YMIN r , v , p ) + 1]
Case B: Lifetime minus construction time is shorter than the construction period =>
Investment is repeated in construction period
228
5.3.20 Equation: EQ_STGTSS/IPS
Type: "="
Purpose
• The model allows two kinds of storage: inter-period storage (IPS), and storage
across time-slices (or time-slice storage TSS). A special type of the TSS storage is
a night-storage device which may have an input commodity being different from
its output commodity. The input and output commodity of a night-storage device
are being given by the topology set top.
• Storage processes are special, as they have the same commodity as input and
output. Also, all other processes transform energy within their time-slices and
time periods. Since topology (with the exception of night-storage devices) does
not determine in/out, different variables have to be used for this purpose.
Similarly, since the transformation is special, EQ_PTRANS is replaced by new
equations for the two types of storage.
Sets:
• prc_stgips(r,p,c): The set of inter-period storage processes. They are forced to
operate annually.
• prc_stgtss(r,p,c): The set of time-slice storage processes. A storage process can
operate only at one particular time slice level.
• prc_nstts(r,p,s): The set contains the allowed charging timeslices for a night-storage
device.
Variables:
• VAR_SIN(r,v,t,p,c,s) - the average in flow to a process built in period v, during
time-slice s, during each year of period t. This variable would appear on the
consumption side of the balance equation, without any coefficients.
• VAR_SOUT(r,v,t,p,c,s) - the average out flow from a process built in period v,
during time-slice s, during each year of period t. This variable would appear on the
supply side of the balance equation, multiplied by STG_EFF and COM_IE.
• VAR_ACT(r,v,t,p,s) - the energy stored in a storage process at the beginning of
time-slice s (for a timeslice storage)or end of period t (for an interperiod storage).
Note that this is a special interpretation of 'activity', to represent 'storage level.'
Therefore, EQ_ACTFLO will not be generated for storage processes.
• In EQ_STGIPS only annual flows are allowed; the timeslice s index is set to
ANNUAL in this case.
229
Equations:
• EQ_STGTSS(r,t,p,s) - transforms input to output for the timeslice storage processes.
• EQ_STGIPS(r,t,p) - transforms input to output for the interperiod storage processes.
Parameters:
• STG_LOSS(r,v,p,s) - annual energy loss from a storage technology, per unit of
(average) energy stored.
• STG_CHRG(r,t,p,s) - exogenous charging of a storage technology. For timeslice
storage this parameter can be specified for each period, while for interperiod storage
this parameter can only be specified for the first period, to describe the initial content
of the storage.
+ STG _ CHRGr ,t , p , s −1
230
5.3.20.2 EQ_STGIPS: Storage between periods
∑VAR _ ACT r , v ,t , p ,' ANNUAL ' × PRC _ ACTFLOr ,v , p ,c × (cg is the primary commodtiy group ) =
v∈rtp_vintyrr, v, t, p
VAR _ ACTr ,v ,t −1, p ,' ANNUAL ' × PRC _ ACTFLOr ,v , p ,c × (cg is the primary commodtiy group )
∑
× (1 − STG _ LOSS r ,v , p ,' ANNUAL ' )
D (t )
v∈rtp_vintyrr, v, t −1, p
+ ∑ ∑ (VAR _ SIN r ,v ,t , p ,c ,' ANNUAL ' − VAR _ SOUTr ,v ,t , p ,c ,' ANNUAL ' ) × (1 − STG _ LOSS r ,v , p ,' ANNUAL ' )
v∈rtp_vintyrr, v, t, p
( E ( t ) − y + 0.5 )
y∈ periodyrt, y
231
5.3.21 Equations: EQ(l)_STGIN / EQ(l)_STGOUT
Indices: region (r), period (t), process (p), commodity (c), timeslice (s)
Type: Any type, as determined by the bound index bd of STGIN/OUT_BND:
• l = ’G’ for bd = ‘LO’ (lower bound) yields ≥ .
• l = ’E’ for bd = ‘FX’ (fixed bound) yields = .
• l = ’L’ for bd = ‘UP’ (upper bound) yields ≤ .
Related variables: VAR_SIN; VAR_SOUT
Related equations: EQ_STGTSS; EQ_STGIPS
Purpose: Bound on the input/output flow of a storage process of commodity (c) for a
particular process (p) in period (t) and timeslice (s).
Remarks:
• The constraint bounds the flows in a specific period (t) irrespectively of the
vintage years of the process capacity.
• The constraint is generated, if one of the following conditions is true:
o Process (p) is vintaged, or
o the timeslice resolution of the flow variables (VAR_SIN/OUT) are below
the timeslice (s) of the bound parameter.
In the other cases, the bound can be directly applied to the flow variable
(VAR_SIN/SOUT), so that no extra equation is needed.
• The timeslice level (s) of the bound must be at or higher than the timeslice level at
which the storage operates.
Interpretation of the results:
Primal: If the primal value equals the bound parameter, the constraint is binding.
Dual: The dual value describes for a lower/upper bound the cost increase/decrease in
the objective function, if the bound is increased by one unit. It may also be
interpreted as subsidy/tax needed to reach the given bound value.
Equation:
(
∑ )
∑VAR _ SIN / SOUT
ts∈ prc_tsr,p,ts ∧ts_mapr,s,ts v∈rtp_vintyrr, v,t,p
r ,v ,t , p ,c ,ts
All timeslices s at or
above the timeslice level
of the process (prc_tsl).
(≤ / ≥ / = ) STGIN / OUT _ BNDr ,t , p ,c ,s ,bd
where the equation sign is indicated by equation index l based on the bound type bd.
232
5.3.22 User Constraints
Indexes: region (r), time period (t), time slice (s), user constraint (uc_n)
Purpose: The user constraints in TIMES provide a modeler with a flexible framework to
add case-study specific constraints to the standard equation set embedded in TIMES.
With the help of the user constraints virtually any possible linear relationship between
variables in TIMES can be formulated. Examples of user constraints are quotas for
renewables in electricity generation or primary energy consumption, GHG reduction
targets, absolute bounds on the minimum amount of electricity generated by various
biomass technologies, etc.
In the following three subsections, the different types of user constraints are shortly
presented. Their mathematical formulations are then presented in a new section.
The so-called LHS user constraints have the following main structure:
UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),bd ∧ (r ∈ uc_r_eachr,uc_n )
EQ(l ) _ UC (R )(T )(S )( r ),uc _ n ,(t ),( s ) ∀
∧ (t ∈ uc_t_eachr,uc_n,t ) ∧ (s ∈ uc_ts_eachr,uc_n,s )
∑ ∑ ∑ LHS r ,t ,s {= / ≥ / ≤} UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),bd
r∈uc_r_sum t∈uc_t_sum s∈uc_ts_sum
r,uc_n r,uc_n, t r,uc_n,s
233
To identify the user constraint, the modeller has to give it a unique name uc_n. The
LHS expression LHS r ,t , s consists of the sum of various TIMES variables (VAR_ACT,
VAR_FLO, VAR_COMPRD, VAR_COMNET, VAR_NCAP, VAR_CAP), multiplied
by corresponding coefficients (UC_ACT, UC_FLO, UC_COMPRD, UC_COMCON,
UC_NCAP, UC_CAP). The coefficients are input data given by the modeller and serve
thus also as an indicator of which variables are being components of the user constraint.
With respect to region r, time period t and timeslice s, the user constraint is either
specified for specific regions, periods or timeslices or the expression within the user
constraint is summed over subsets of regions, periods and timeslices. In the first case, the
regions, periods or timeslices, for which the user constraint should be generated, are
given by the sets uc_r_each, uc_t_each or uc_ts_each, while in the latter case,
summation sets are specified by the sets uc_r_sum, uc_t_sum and uc_ts_sum. The
corresponding sets uc_x_each/sum are exclusive, so that for example, if uc_t_each has
been specified, the set uc_t_sum cannot be specified and vice versa. By choosing
uc_x_each/sum also the name and the index domain of the user constraint are specified,
e.g. if uc_r_each, uc_t_each and uc_ts_sum are given, the user constraint has the name
and index domain EQ(l ) _ UCRTr ,uc _ n ,t . It is generated for each region and period
specified by uc_r_each and uc_t_each, respectively, and is summing within the user
constraint over the timeslices given in uc_ts_each. The name of the RHS constraint
depends in the same way on the choice of uc_x_each/sum. In the previous example, the
RHS constant has the name and index domain UC _ RHSRTr ,uc _ n ,t ,bd . The knowledge of
these naming rules is important, since the modeller has to give the correct RHS
parameter names depending on the choice of uc_x_each/sum when defining a user
constraint.
Since for each of the three dimensions (region, period, timeslice), two options (EACH
or SUM) exist, this would result in 8 possible combinations of user constraint equations
(Figure 5.6). However, the combinations EQ(l)_UCS and EQ(l)_UCRS, which would
lead to a constraint being generated for specific timeslices while summing over time
periods at the same time, have been considered unrealistic, so that 6 variants remain. It
should be noted that the sets uc_r_each/sum, uc_t_each/sum and uc_ts_each/sum can
contain an arbitrary combination of elements, e.g. the periods specified in
uc_t_each/sum do not have to be consecutive.
234
User constraint
uc_n
Summing over
Each Region
regions
Each timeslice
Each timeslice
Each timeslice
Summing over
Summing over
Summing over
Summing over
timeslices
timeslices
timeslices
timeslices
EQl_UCRTS
_UCRS
EQl_UCRS
EQl_UCRT
EQl_UCTS
EQl_UCR
_UCS
EQl_UCS
EQl_UCT
EQl_UC
EQl
EQl
Figure 5.6: The allowed combinations of region, period and timeslice for user
constraints.
The RHS (right hand side) of this category of user constraint consists of a constant
UC _ RHS (R )(T )(S )( r ),uc _ n , (t ), ( s ),bd which is provided by the modeller. The RHS constant
also defines the equation type of the user constraint. If the RHS constant has the index
FX, the user constraint is generated as strict equality (=). If the RHS index is LO
(respectively UP), the constraint has ≥ (respectively ≤ ) inequality sign. It should be
noted, that a RHS user constraint is only generated when a RHS constant is specified (this
feature may be used to easily turn-on/off user constraints between different scenarios).
In addition to the coefficients UC_ACT, UC_FLO, etc. also some model input
attributes may be used as coefficient for the variables in a user constraint. The model
attribute being used as coefficient in a user constraint is specified by the set
UC _ ATTRr ,uc _ n ,' LHS ',VAR , ATTR with the indicator VAR for the variable (ACT, FLO, NCAP,
CAP) and the index ATTR representing the attribute being used (ACT_BND,
FLO_COST, FLO_DELIV, FLO_TAX, FLO_SUB, NCAP_COST, NCAP_ISUB,
NCAP_ITAX, CAP_BND).
235
Instead of defining different equality types of user constraints depending on the bound
type of UC _ RHS (R )(T )(S )( r ),uc _ n , (t ), ( s ),bd an alternative formulation can be used in
TIMES. In this formulation a variable VAR _ UC (R )(T )(S )( r ),uc _ n , (t ), ( s ) is created that is set
equal to the LHS expression. The RHS bounds are then applied to these variables.
UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),bd ∧ (r ∈ uc_r_eachr,uc_n )
EQE _ UC (R )(T )(S )( r ),uc _ n ,(t ),( s ) ∀
∧ (t ∈ uc_t_eachr,uc_n,t ) ∧ (s ∈ uc_ts_eachr,uc_n,s )
LHS r ,t ,s = VAR _ UC (R )(T )(S )( r ),uc _ n ,(t ),( s )
r∈uc _ r∑ ∑ ∑
_ sumr ,uc _ n t∈uc _ t _ sumr ,uc _ n ,t s∈uc _ ts _ sumr ,uc _ n , s
VAR _ UC (R )(T )(S ).LO( r ),uc _ n ,(t ),( s ) = UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),'LO '
VAR _ UC (R )(T )(S ).UP( r ),uc _ n ,(t ),( s ) = UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),'UP '
VAR _ UC (R )(T )(S ).FX ( r ),uc _ n ,(t ),( s ) = UC _ RHS (R )(T )(S )( r ),uc _ n ,(t ),( s ),'FX '
The alternative formulation is created when the dollar control parameter VAR_UC
(see Part III for the use of dollar control parameters) is set to YES by the modeller, while
in the default case the first formulation is used.
236
Dynamic user constraints
r∈uc _ r∑
∑
LHS r ,t , s {= / ≥ / ≤}
∑
∑ RHSr ,t +1, s + UC _ RHS (R )T (S )( r ),uc _ n,t , ( s ),bd
_ sum r ,uc _ n s∈uc _ ts _ sum r ,uc _ n , s r∈uc _ r _ sumr ,uc _ n s∈uc _ ts _ sumr ,uc _ n ,s
To build a dynamic user constraint between the periods t and t+1, the modeller
identifies the desired set of time periods that will be used as first periods in the pairs (t,
t+1). This set is named uc_t_succ (note that the sets uc_t_sum and uc_t_each are not
used in the context of dynamic user constraints, and are reserved for the LHS user
constraints described in the previous section). Only four combinations with respect to the
region and timeslice domain are possible:
As for LHS user constraints, setting the dollar control parameter VAR_UC to YES
yields a strict equality type of dynamic user constraint (EQE_UCSU, EQE_UCRSU,
EQE_UCRSUS, EQE_UCSUS) with the RHS constant replaced by a user constraint
variable (VAR_UCSU, VAR_UCRSU, VAR_UCRSUS, VAR_UCSUS). The bound
given by the RHS constant is then applied to the user constraint variable.
237
Growth constraints
Growth (or decay) constraints are a special type of dynamic constraints. A growth
constraint may for example express that the capacity increase between two periods is
limited by an annual growth rate. So, growth constraints relate variables in one period to
the ones in the previous or following period as in dynamic constraints described in the
previous section. In growth constraints, however, in addition some of the variable
coefficients UC_ACT, UC_FLO, UC_IRE, UC_COMCON, UC_COMPRD, UC_NCAP,
UC_CAP can represent annual growth (or decay) rates 40 by specifying the set
UC _ ATTRr ,uc _ n ,' LHS ',VAR , ATTR with the index ATTR being set to GROWTH. This will cause
the coefficient of the corresponding variable being interpreted as an annual growth rate. If
for example the input information UC _ ATTR' REG1','G _ 1',' LHS ','CAP ','GROWTH ' is given for the
user constraint G_1, the coefficient UC _ CAP'G _ 1',' LHS ',' REG1',' LHS ',t , P of the capacity variable
of technology p will be interpreted as annual growth rate and the final coefficient of the
variable VAR_CAP in the user constraint will be calculated in the following way:
With the help of the input set UC_ATTR, growth coefficients can be defined for
variables in LHS expression (as in the example) or for variables in RHS expression. If a
growth rate is defined for variables on the LHS, the exponent is M(t+1)-M(t), whereas for
RHS variables the exponent is equal to M(t)-M(t+1).
If at least one growth coefficient is defined for a LHS variable, the structure of the
dynamic constraint is similar to the dynamic constraints described in the previous section.
In these cases, growth constraints are generated for the period pairs t and t+1 for all
periods t of the model horizon with the exception of the last period. These types of
growth constraint are called of type (t,t+1).
If, however, all growth coefficients are specified for RHS variables, the growth
constraints will have the following form:
∑ ∑ LHS r ,t ,s {= / ≥ / ≤} ∑ ∑ RHS r ,t −1,s +
r∈uc_r_sum s∈uc_ts_sum
r,uc_n r,uc_n,s R∈UC _ R _ SUM S∈UC _ TS _ SUM
UC _ RHS (R )T (S )( r ),uc _ n ,t ,( s ),bd
40
If the coefficient UC_ACT, UC_FLO, etc. is greater than one, it represents an
annual growth rate, while a coefficient smaller than one describes an annual decay rate.
238
The growth constraints are now generated for the period pairs t-1 and t for all periods
of the model horizon. The exponent in the calculation of the growth coefficients on the
RHS is in these cases equal to the term M(t)-M(t-1). In this alternative RHS formulation,
it is possible to introduce boundary conditions, that are usually needed for the first period.
These growth constraints are called of type (t-1,t).
Example:
The annual capacity increase of technology E01 between two periods should not
exceed 2% for model covering the three ten-year periods 1990, 2000 and 2010. So one
wants to create user constraints expressing:
1.0210 × VAR _ CAP' REG1', '1990 ', ' E 01' + 1 ≥ VAR _ CAP' REG1', '2000 ', ' E 01'
1.0210 × VAR _ CAP' REG1', '2000 ', ' E 01' + 1 ≥ VAR _ CAP' REG1', '2010 ', ' E 01'
The summand 1 one the LHS expresses an initial capacity value, so that capacity
growth can start from this starting point, e.g. if VAR _ CAP'REG1','1990 ','E 01' is zero, the model
can invest at most 1 capacity unit in the year 2000: 1 ≥ VAR _ CAP'REG1','2000 ','E 01' .
Since growth constraints should be generated for the first two periods, but not the last
one, the growth constraint should be of type (t,t+1). The specification of the growth
constraint called ‘G_1’ in GAMS looks like:
SET UC_N
/
G_1
/
SET UC_R_REACH
/
REG1.G_1
/
SET UC_TS_REACH
/
REG1.G_1.ANNUAL
/
239
G1.LHS.REG1.2000.E01 1.02
* on RHS
G1.RHS.REG1.2000.E01 1
G1.RHS.REG1.2010.E01 1
/
One should note that the period index used for the UC_CAP on the LHS is related to
the period t, while the period index on the RHS is related to the period t+1. The RHS
UC_RHSRTS constant is provided for the time period t of the LHS.
Since a growth coefficient is specified for the LHS, the user constraint is
automatically identified as a dynamic growth constraint, so that the set uc_t_succ does
not need to be provided by the user. The constraint will be generated for all periods for
which the RHS parameter UC_RHSRTS is given.
In the following section, we give the full descriptions of the available user constraints
in each category, along with a reminder of the corresponding variables.
We first show the complete list of user constraints in the three categories.
The placeholder l reflects the equation type of the user constraint (l=E, G or L)
corresponding to the bound type of the RHS constant. In case the dollar control parameter
240
VAR_UC is set to YES, the user constraints are always strict equalities (l=E) with the
RHS constants replaced by the following user constraint variables:
The following types of dynamic user constraints and growth constraints exist:
• EQ(l ) _ UCSU uc _ n ,t : user constraint generated for periods uc_t_succ and
summing over regions uc_r_sum and timeslices
uc_ts_sum,
• EQ(l ) _ UCRSU r ,uc _ n ,t : user constraint generated for regions uc_r_each and periods
uc_t_succ and summing over timeslices uc_ts_sum,
• EQ(l ) _ UCSUS uc _ n ,t , s : user constraint generated for periods uc_t_succ, timeslices
uc_ts_each and summing over regions uc_r_sum,
• EQ(l ) _ UCRSUS r ,uc _ n ,t , s : user constraint generated for regions uc_r_each, periods
uc_t_succ and timeslices uc_ts_each.
The placeholder l reflects the equation type of the user constraint (l=E, G or L)
corresponding to the bound type of the RHS constant. In case the dollar control parameter
VAR_UC is set to YES, the user constraints are always strict equalities (l=E) with the
RHS constants replaced by the following user constraint variables:
The following sets and parameters are related to the user constraint framework in
TIMES.
Sets
Internal sets:
• side : set having the two elements LHS and RHS (elements are fixed and not under
user control),
241
• uc_grptype : set having the elements ACT, FLO, IRE, COMCON, COMPRD, NCAP,
CAP used in the multi-dimensional set UC_ATTR (elements are fixed and not under
user control),
• uc_name : set having the following attribute names as elements: ACT_BNDUP,
ACT_BNDLO, ACT_BNDFX, ACT_COST, FLO_COST, FLO_DELIV, FLO_SUB,
FLO_TAX, NCAP_COST, NCAP_ISUB, NCAP_ITAX, CAP_BNDUP, CAP_BNDLO,
CAP_BNDFX and GROWTH used in the multi-dimensional set UC_ATTR (elements
are fixed and not under user control).
User-specified sets:
• uc_n : unique name of the user constraint,
• uc_r_eachr,uc_n : regions r for which the user constraint uc_n is generated,
• uc_r_sum r,uc_n : regions r being summed over in the user constraint uc_n,
• uc_r_eachr,uc_n : periods t for which the user constraint uc_n is generated,
• uc_t_sum r,uc_n, t : periods t being summed over in the user constraint uc_n,
• uc_ts_eachr,uc_n, ts : timeslices ts for which the user constraint uc_n is generated,
• uc_ts_sum r,uc_n, ts : timeslices ts being summed over in the user constraint uc_n,
• uc_attrr,uc_n, side, uc_grptype,uc_name : indicator that the attribute uc_name on the RHS or
LHS side of the user constraint uc_n as coefficient of
the variable given by uc_grptype.
If neither uc_r_each nor uc_r_sum are given, the default is set to all uc_r_each
containing all internal regions. In a similar fashion uc_t_each being set to all
milestoneyears is the default, if neither uc_t_each or uc_t_sum are specified. The default
for the timeslice dimension is uc_ts_each being set to all timeslices for which the RHS
constants UC_RHSRS or UC_RHSRTS are being specified.
Parameters
242
• UC _ COMPRDuc _ n , side, r ,t ,c , s : coefficient of the net commodity production variable
VAR _ COMPRDr ,t ,c , s in the user constraint uc_n on the
LHS or RHS side,
• UC _ NCAPuc _ n , side, r ,t , p : coefficient of the investment variable VAR _ NCAPr ,t , p
in the user constraint uc_n on the LHS or RHS side,
• UC _ CAPuc _ n , side, r ,t , p : coefficient of the capacity variable VAR _ CAPr ,t , p in
the user constraint uc_n on the LHS or RHS side.
• UC _ RHS uc _ n ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCuc _ n of type l,
• UC _ RHSRr ,uc _ n ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCRr ,uc _ n of type l,
• UC _ RHSTuc _ n ,t ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCTuc _ n ,t of type l,
• UC _ RHSRTr ,uc _ n ,t ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCRTr ,uc _ n ,t of type l,
• UC _ RHSTS uc _ n ,t , s ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCTSuc _ n ,t , s of type l,
• UC _ RHSRTS r ,uc _ n ,t , s ,bd : RHS constant with bound type bd of the user constraint
EQl _ UCRTS r ,uc _ n ,t , s of type l.
243
Mathematical formulation of LHS user constraints
In the mathematical description of the different variants of LHS user constraints the
following placeholders are used for clarity reasons: ACTr ,t , p , s ,'LHS ' , FLOr ,t , p , s ,' LHS ' ,
IRE r ,t , p , s ,' LHS ' , COMPRDr ,t , s ,' LHS ' , COMCON r ,t , s ,' LHS ' , NCAPr ,t , p ,' LHS ' , CAPr ,t , p ,' LHS ' . For
example the placeholder ACTr ,t , p , s ,'LHS ' includes the part of the user constraint related to
the activity variable.
244
FLOr ,t , p , s , ' LHS '
=
∑ ∑
( c , ts )∈rtpcs_varf r,t,p,c,ts v∈rtp_vintyrr, v,t,p
1 if ts is below s
VAR _ FLOr , v ,t , p , c ,ts × UC _ FLOuc _ n , ' LHS ', r , v ,t , p , c ,ts ×
RTCS _ TSFR if ts is above s
r , ts , s
×
OBJ _ FCOSTr ,t , p , c , ts , cur if UC _ ATTRr , uc _ n , ' LHS ', ' FLO ', ' FLO _ COST ' is given
+
OBJ _ FDELV
if UC _ ATTRr , uc _ n , ' LHS ', ' FLO ', ' FLO _ DELIV ' is given
r , t , p , c , ts , cur
∑ +
cur∈rdcurr,cur
OBJ _ FSUBr ,t , p , c , ts , cur if UC _ ATTRr , uc _ n , ' LHS ', ' FLO ', ' FLO _ SUB ' is given
+
OBJ _ FTAX r , t , p , c , ts , cur if UC _ ATTRr , uc _ n , ' LHS ', ' FLO ', ' FLO _ TAX ' is given
245
COMCON r ,t , s , ' LHS '
VAR _ COMCON r ,t , c ,ts × UC _ COMCON uc _ n , ' LHS ', r ,t , c , s
1 if ts is below s
= ∑
(c , ts )∈rtcs_varc r,t,c,ts ×
G _ YRFR( s )
if ts is above s
G _ YRFT (ts )
−
∑ OBJ _ ISUB
cur ∈rdcurr,cur
r , t , p , cur if UC _ ATTRr ,uc _ n , ' LHS ', ' NCAP ', ' NCAP _ ISUB ' is given
+
∑ OBJ _ ITAX r ,t , p,cur if UC _ ATTRr ,uc _ n , ' LHS ', ' NCAP ', ' NCAP _ ITAX ' is given
cur ∈rdcurr,cur
246
5.3.22.1 Equation: EQ(l)_UC / EQE_UC
Purpose: The user constraint EQ(l)_UC is a user constraint, which is summing over
specified regions (uc_r_sum), periods (uc_t_sum) and timeslices (uc_ts_sum).
Equation:
ACTr ,t , p , s , ' LHS ' + FLOr ,t , p , s , ' LHS ' + IREr ,t , p , s , ' LHS '
∑ ∑ ∑
s∈uc_ts_sum + COMCON r , t , s , ' LHS ' + COMPRDr , t , s , ' LHS '
r ∈uc_r_sum t ∈uc_t_sum
+
∑ ∑ (NCAP
r ∈uc_r_sum t ∈uc_t_sum
r , t , p , ' LHS ' + CAPr ,t , p , ' LHS ' )
with
VAR _ UC.LOuc _ n = UC _ RHS uc _ n ,' LO '
VAR _ UC.UPuc _ n = UC _ RHSuc _ n ,'UP '
VAR _ UC.FX uc _ n = UC _ RHSuc _ n ,'FX '
247
5.3.22.2 Equation: EQ(l)_UCR / EQE_UCR
Purpose: The user constraint EQ(l)_UCR is a user constraint, which is created for each
region of uc_r_each and is summing over periods (uc_t_sum) and timeslices
(uc_ts_sum).
Equation:
ACTr ,t , p , s , ' LHS ' + FLOr ,t , p , s , ' LHS ' + IREr ,t , p , s , ' LHS '
∑ ∑
s∈uc_ts_sum + COMCON r , t , s , ' LHS ' + COMPRDr , t , s , ' LHS '
t ∈uc_t_sum
+
∑ (NCAP
t ∈uc_t_sum
r , t , p , ' LHS ' + CAPr ,t , p , ' LHS ' )
with
VAR _ UCR.LOr ,uc _ n = UC _ RHSRr ,uc _ n ,' LO '
VAR _ UCR.UPr ,uc _ n = UC _ RHSRr ,uc _ n ,'UP '
VAR _ UCR.FX r ,uc _ n = UC _ RHSRr ,uc _ n ,' FX '
248
5.3.22.3 Equation: EQ(l)_UCT / EQE_UCT
Purpose: The user constraint EQ(l)_UCT is a user constraint, which is created for each
period of uc_t_each and is summing over regions (uc_r_sum) and timeslices
(uc_ts_sum).
Equation:
ACTr ,t , p , s , ' LHS ' + FLOr ,t , p , s , ' LHS ' + IREr ,t , p , s , ' LHS '
∑ ∑
r ∈uc_r_sum s∈uc_ts_sum + COMCON + COMPRD
r , t , s , ' LHS ' r , t , s , ' LHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t , p , ' LHS ' + CAPr ,t , p , ' LHS ' )
with
VAR _ UCT .LOuc _ n ,t = UC _ RHSTuc _ n ,t ,'LO '
VAR _ UCT .UPuc _ n ,t = UC _ RHSTuc _ n ,t ,'UP '
VAR _ UCT .FX uc _ n ,t = UC _ RHSTuc _ n ,t ,'FX '
249
5.3.22.4 Equation: EQ(l)_UCRT / EQE_UCRT
Purpose: The user constraint EQ(l)_UCRT is a user constraint, which is created for each
region of uc_r_each and each period of uc_t_each and is summing over timeslices
(uc_ts_sum).
Equation:
ACTr ,t , p , s , ' LHS ' + FLOr ,t , p , s , ' LHS ' + IREr ,t , p , s , ' LHS '
∑
s∈uc_ts_sum + COMCON r , t , s , ' LHS ' + COMPRDr , t , s , ' LHS '
+
(NCAP r , t , p , ' LHS ' + CAPr ,t , p , ' LHS ' )
with
VAR _ UCRT .LOr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' LO '
VAR _ UCRT .UPr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,'UP '
VAR _ UCRT .FX r ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' FX '
250
5.3.22.5 Equation: EQ(l)_UCRTS / EQE_UCRTS
Indices: user constraint (uc_n), region (r), period (t), timeslice (s)
Purpose: The user constraint EQ(l)_UCRTS is a user constraint, which is created for
each region of uc_r_each, each period of uc_t_each and each timeslice of uc_ts_each.
Equation:
ACTr ,t , p , s ,' LHS ' + FLOr ,t , p , s ,' LHS ' + IRE r ,t , p , s ,' LHS '
+ COMCON + COMPRD
r , t , s , ' LHS ' r , t , s , ' LHS '
+
(NCAPr ,t , p,'LHS ' + CAPr ,t , p,'LHS ' )
when control parameter VAR_UC=NO:
{≤; =; ≥}
UC _ RHSRTS r ,uc _ n ,t , s ,l
with
VAR _ UCRTS .LOr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,' LO '
VAR _ UCRTS .UPr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'UP '
VAR _ UCRTS .FX r ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,' FX '
251
5.3.22.6 Equation: EQ(l)_UCTS / EQE_UCTS
Purpose: The user constraint EQ(l)_UCTS is a user constraint, which is created for each
period of uc_t_each and each timeslice of uc_ts_each and is summing over regions
(uc_r_sum).
Equation:
ACTr ,t , p , s , ' LHS ' + FLOr ,t , p , s , ' LHS ' + IREr ,t , p , s , ' LHS '
∑
r ∈uc_r_sum + COMCON r , t , s , ' LHS ' + COMPRDr , t , s , ' LHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t , p , ' LHS ' + CAPr ,t , p , ' LHS ' )
with
VAR _ UCTS .LOuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,' LO '
VAR _ UCTS .UPuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'UP '
VAR _ UCTS .FX uc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,' FX '
252
Mathematical formulation of dynamic user constraints and growth constraints of
type (t,t+1)
In the mathematical description of the dynamic user constraints and the growth
constraints of type (t, t+1), the following placeholders are used for variable terms on the
LHS (period t): ACT _ GROWr ,t , p , s ,'LHS ' , FLO _ GROWr ,t , p , s ,'LHS ' , IRE _ GROWr ,t , p , s ,'LHS ' ,
COMPRD _ GROWr ,t , s ,'LHS ' , COMCON _ GROWr ,t , s ,'LHS ' , NCAP _ GROWr ,t , p ,'LHS ' ,
CAP _ GROWr ,t , p ,'LHS '
and on the RHS (period T+1):
ACT _ GROWr ,t +1, p , s ,'RHS ' , FLO _ GROWr ,t +1, p , s ,'RHS ' , IRE _ GROWr ,t +1, p , s ,'RHS ' ,
COMPRD _ GROWr ,t +1, s ,'RHS ' , COMCON _ GROWr ,t +1, s ,'RHS ' , NCAP _ GROWr ,t +1, p ,'RHS ' ,
CAP _ GROWr ,t +1, p ,'RHS ' .
253
FLO _ GROWr ,t , p , s , ' LHS '
=
∑
(c , ts )∈rtpcs_varf r,t,p,c,ts
∑
v∈rtp_vintyrr, v,t,p
1 if ts is below s
VAR _ FLO r , v , t , p , c , ts × UC _ FLO uc _ n , ' LHS ', r , v , t , p , c , ts ×
RTCS _ TSFRr , ts , s if ts is above s
×
OBJ _ FCOSTr , t , p , c , ts , cur if UC _ ATTRr , uc _ n , ' LHS ', ' FLO ', ' FLO _ COST ' is given
+
OBJ _ FDELVr , t , p , c , ts , cur if UC _ ATTRr , uc _ n, ' LHS ', ' FLO ', ' FLO _ DELIV ' is given
∑ +
cur∈rdcurr,cur OBJ _ FSUBr , t , p , c , ts , cur if UC _ ATTRr , uc _ n, ' LHS ', ' FLO ', ' FLO _ SUB ' is given
+
OBJ _ FTAX r , t , p , c , ts , cur if UC _ ATTRr , uc _ n, ' LHS ', ' FLO ', ' FLO _ TAX ' is given
×
(UC _ FLOuc _ n, ' LHS ', r , v , t , p , c , ts )M ( t +1) − M ( t ) −1 if UC _ ATTRr , uc _ n, ' LHS ', ' FLO ', 'GROWTH ' is given
254
COMPRD _ GROWr ,t , s , ' LHS '
=
VAR _ COMPRDr ,t , c ,ts × UC _ COMPRDuc _ n , ' LHS ', r ,t , c , s
1 if ts is below s
×
∑
G _ YRFR( s ) if ts is above s
(c , ts )∈rtcs_varc r,t,c,ts
G _ YRFT (ts )
× (UC _ COMPRD
uc _ n , ' LHS ', r , t , c , s ) if UC _ ATTRr ,uc _ n , ' LHS ', 'COMPRD ', 'GROWTH ' is given
M ( t +1) − M ( t ) −1
255
NCAP _ GROWr ,t , p , ' LHS '
=
VAR _ NCAP × UC _ NCAP
r ,t , p uc _ n , ' LHS ', r , t , p
×
∑ OBJ _ ICOSTr , t , p , cur if UC _ ATTRr , uc _ n , ' LHS ', ' NCAP ', ' NCAP _ COST ' is given
cur∈rdcurr,cur
−
∑ OBJ _ ISUBr , t , p , cur if UC _ ATTRr , uc _ n , ' LHS ', ' NCAP ', ' NCAP _ ISUB ' is given
cur∈rdcurr,cur
+
∑ OBJ _ ITAX r , t , p , cur if UC _ ATTRr , uc _ n, ' LHS ', ' NCAP ', ' NCAP _ ITAX ' is given
cur∈rdcurr,cur
×
(UC _ NCAP
uc _ n , ' LHS ', r , t , p ) if UC _ ATTRr , uc _ n, ' LHS ', ' NCAP ', 'GROWTH ' is given
M ( t +1) − M ( t ) −1
256
ACT _ GROWr ,t +1, p , s , ' RHS '
=
1 if ts is below s
VAR _ ACTr ,v ,t +1, p ,ts × UC _ ACTuc _ n , ' RHS ', r , v ,t +1, p ,ts ×
G _ YRFR( s)
G _ YRFT (ts) if ts is above s
×
(ACT _ BNDr ,t +1, p ,ts , X ) if UC _ ATTRr ,uc _ n , ' RHS ', ' ACT ', ' ACT _ BNDX ' is given
∑ ∑
ts∈prc_ts r,p,ts ×
v∈rtp_vintyrr, v,t +1,p
∑ OBJ _ ACOSTr ,t +1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' ACT ', ' ACT _ COST ' is given
cur∈rdcurr,cur
×
(
UC _ ACTuc _ n , ' RHS ', r , v ,t +1, p ,ts )
M ( t ) − M ( t +1) −1
if UC _ ATTRr ,uc _ n , ' RHS ', ' ACT ', 'GROWTH ' is given
1 if ts is below s
VAR _ FLOr , v ,t +1, p , c ,ts × UC _ FLOuc _ n , ' RHS ', r , v ,t +1, p , c ,ts ×
RTCS _ TSFR if ts is above s
r , ts , s
×
OBJ _ FCOSTr ,t +1, p , c ,ts , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' FLO ', ' FLO _ COST ' is given
+
OBJ _ FDELVr ,t +1, p , c ,ts , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' FLO ', ' FLO _ DELIV ' is given
∑ +
cur∈rdcurr,cur OBJ _ FSUBr ,t +1, p , c ,ts , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' FLO ', ' FLO _ SUB ' is given
+
OBJ _ FTAX r ,t +1, p , c ,ts , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' FLO ', ' FLO _ TAX ' is given
×
(UC _ FLOuc _ n , ' RHS ', r , v ,t +1, p , c ,ts )M (t ) − M ( t +1) −1 if UC _ ATTRr ,uc _ n , ' RHS ', ' FLO ', 'GROWTH ' is given
257
IRE _ GROWr , t +1, p , s , ' RHS '
=
∑
(c , ts )∈rtpcs_varf r,t,p,c,ts
∑ ∑
v∈rtp_vintyrr, v,t +1,p ie∈rpc_ire r,p,c,ie
258
NCAP _ GROWr ,t +1, p , ' RHS '
=
VAR _ NCAP
r , t +1, p × UC _ NCAPuc _ n , ' RHS ', r , t +1, p
×
∑ OBJ _ ICOSTr ,t +1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ COST ' is given
cur∈rdcurr,cur
−
∑ OBJ _ ISUBr ,t +1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ ISUB ' is given
cur∈rdcurr,cur
+
∑ OBJ _ ITAX r ,t +1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ ITAX ' is given
cur∈rdcurr,cur
×
(UC _ NCAP
uc _ n , ' RHS ', r , t +1, p )
M ( t ) − M ( t +1) −1
if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', 'GROWTH ' is given
259
5.3.22.7 Equation: EQ(l)_UCSU / EQE_UCSU
Purpose: The dynamic user constraint or growth constraint of type (t,t+1) EQ(l)_UCSU
establishes a constraint between two successive periods t and t+1. For dynamic user
constraints the period t is specified by the set uc_t_succ, growth constraints are generated
for all periods bur the last. The constraint is summing over regions (uc_r_sum) and
timeslices (uc_ts_sum).
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑ ∑
r ∈uc_r_sum s∈uc_ts_sum + COMCON _ GROWr , t , s , ' LHS ' + COMPRD _ GROWr , t , s , ' LHS '
+
∑ (NCAP _ GROW
r ∈uc_r_sum
r , t , p , ' LHS ' + CAP _ GROWr ,t , p , ' LHS ' )
260
VAR _ UCTuc _ n ,t
+
ACTr ,t +1, p , s , ' RHS ' + FLOr ,t +1, p , s , ' RHS ' + IREr ,t +1, p , s , ' RHS '
∑ ∑
r ∈uc_r_sum s∈uc_ts_sum + COMCON + COMPRD
r , t +1, s , ' RHS ' r , t +1, s , ' RHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t +1, p , ' RHS ' + CAPr ,t +1, p , ' RHS ' )
with
VAR _ UCT .LOuc _ n ,t = UC _ RHSTuc _ n ,t ,'LO '
VAR _ UCT .UPuc _ n ,t = UC _ RHSTuc _ n ,t ,'UP '
VAR _ UCT .FX uc _ n ,t = UC _ RHSTuc _ n ,t ,'FX '
261
5.3.22.8 Equation: EQ(l)_UCRSU / EQE_UCRSU
Purpose: The dynamic user constraint or growth constraint of type (t,t+1) EQ(l)_UCSU
establishes a constraint between two successive periods t and t+1. For dynamic user
constraints the period t is specified by the set uc_t_succ, growth constraints are generated
for all periods but the last. The constraint is generated for each region of the set
uc_r_each and is summing over timeslices (uc_ts_sum).
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑
s∈uc_ts_sum + COMCON _ GROWr , t , s , ' LHS ' + COMPRD _ GROWr , t , s , ' LHS '
+
(NCAP _ GROWr ,t , p,' LHS ' + CAP _ GROWr ,t , p,' LHS ' )
When control parameter VAR_UC=NO:
{≤; =; ≥}
UC _ RHSRTr ,uc _ n ,t ,l
+
ACT _ GROWr ,t +1, p , s , ' RHS ' + FLO _ GROWr ,t +1, p , s , ' RHS ' + IRE _ GROWr ,t +1, p , s , ' RHS '
∑
s∈uc_ts_sum + COMCON _ GROWr , t +1, s , ' RHS ' + COMPRD _ GROWr , t +1, s , ' RHS '
+
(NCAP _ GROWr ,t +1, p,' RHS ' + CAP _ GROWr ,t +1, p,' RHS ' )
When control parameter VAR_UC=YES, the user constraint is created as strict
equality and the RHS constant UC_RHSRT is replaced by the variable VAR_UCRT. The
bounds UC_RHSRT are then applied to the variable VAR_UCRT.
=
262
VAR _ UCRTr ,uc _ n , t
+
ACTr , t +1, p , s , ' RHS ' + FLOr , t +1, p , s , ' RHS ' + IREr , t +1, p , s , ' RHS '
∑
s∈uc_ts_sum + COMCON + COMPRD
r , t +1, s , ' RHS ' r , t +1, s , ' RHS '
+
(NCAPr ,t +1, p,' RHS ' + CAPr ,t +1, p,' RHS ' )
with
VAR _ UCRT .LOr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' LO '
VAR _ UCRT .UPr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,'UP '
VAR _ UCRT .FX r ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' FX '
263
5.3.22.9 Equation: EQ(l)_UCRSUS / EQE_UCRSU
Indices: region (r), user constraint (uc_n), period (t), timeslice (s)
Equation:
ACT _ GROWr ,t , p , s ,'LHS ' + FLO _ GROWr ,t , p , s ,'LHS ' + IRE _ GROWr ,t , p , s ,'LHS '
+ COMCON _ GROW + COMPRD _ GROW
r ,t , s ,' LHS ' r ,t , s ,' LHS '
+
(NCAP _ GROWr ,t , p,'LHS ' + CAP _ GROWr ,t , p,'LHS ' )
When control parameter VAR_UC=NO:
{≤; =; ≥}
UC _ RHSRTS r ,uc _ n ,t , s ,l
+
ACT _ GROWr ,t +1, p , s ,' RHS ' + FLO _ GROWr ,t +1, p , s ,' RHS ' + IRE _ GROWr ,t +1, p , s ,' RHS '
+ COMCON _ GROW + COMPRD _ GROW
r , t +1, s , ' RHS ' r , t +1, s , ' RHS '
+
(NCAP _ GROW r ,t +1, p , ' RHS ' + CAP _ GROWr ,t +1, p ,' RHS ' )
264
VAR _ UCRTS r ,uc _ n ,t , s
+
ACTr ,t +1, p , s ,' RHS ' + FLOr ,t +1, p , s ,' RHS ' + IRE r ,t +1, p , s ,' RHS '
+ COMCON + COMPRD
r ,t +1, s , ' RHS ' r ,t +1, s , ' RHS '
+
(NCAPr ,t +1, p,'RHS ' + CAPr ,t +1, p,'RHS ' )
with
VAR _ UCRTS .LOr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'LO '
VAR _ UCRTS .UPr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'UP '
VAR _ UCRTS .FX r ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'FX '
265
5.3.22.10 Equation: EQ(l)_UCSUS / EQE_UCSUS
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑
r ∈uc_r_sum + COMCON _ GROW + COMPRD _ GROW
r , t , s , ' LHS ' r , t , s , ' LHS '
+
∑ (NCAP _ GROW
r ∈uc_r_sum
r , t , p , ' LHS ' + CAP _ GROWr ,t , p , ' LHS ' )
266
VAR _ UCTSuc _ n , t , s
+
ACTr , t +1, p , s , ' RHS ' + FLOr , t +1, p , s , ' RHS ' + IREr , t +1, p , s , ' RHS '
∑
r ∈uc_r_sum + COMCON r , t +1, s , ' RHS ' + COMPRDr , t +1, s , ' RHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t +1, p , ' RHS ' + CAPr , t +1, p , ' RHS ' )
with
VAR _ UCTS .LOuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'LO '
VAR _ UCTS .UPuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'UP '
VAR _ UCTS .FX uc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'FX '
In the mathematical description of growth constraints of type (t-1, t), the following
placeholders are used for variable terms on the RHS (period t-1):
ACT _ GROWr ,t −1, p , s ,'RHS ' , FLO _ GROWr ,t −1, p , s ,'RHS ' , IRE _ GROWr ,t −1, p , s ,'RHS ' ,
COMPRD _ GROWr ,t −1, s ,'RHS ' , COMCON _ GROWr ,t −1, s ,'RHS ' , NCAP _ GROWr ,t −1, p ,'RHS ' ,
CAP _ GROWr ,t −1, p ,'RHS ' .
For the LHS terms, the placeholders are the same ones as defined for the LHS user
constraints.
267
FLO _ GROWr ,t −1, p , s , ' RHS '
=
∑
(c , ts )∈rtpcs_varf r,t −1,p,c,ts
∑
v∈rtp_vintyrr, v,t −1,p
1 if ts is below s
VAR _ FLO r , v , t −1, p , c , ts × UC _ FLO uc _ n , ' RHS ', r , v , t −1, p , c , ts ×
RTCS _ TSFRr ,ts , s if ts is above s
×
OBJ _ FCOSTr ,t −1, p , c ,ts , cur if UC _ ATTRr , uc _ n , ' RHS ', ' FLO ', ' FLO _ COST ' is given
+
OBJ _ FDELVr ,t −1, p , c ,ts , cur if UC _ ATTRr , uc _ n , ' RHS ', ' FLO ', ' FLO _ DELIV ' is given
∑ +
cur∈rdcurr,cur OBJ _ FSUBr ,t −1, p , c , ts , cur if UC _ ATTRr , uc _ n , ' RHS ', ' FLO ', ' FLO _ SUB ' is given
+
OBJ _ FTAX r , t −1, p , c , ts , cur if UC _ ATTRr , uc _ n , ' RHS ', ' FLO ', ' FLO _ TAX ' is given
×
(UC _ FLOuc _ n , ' RHS ', r , v , t −1, p , c , ts )M ( t ) − M ( t −1) −1 if UC _ ATTRr , uc _ n, ' RHS ', ' FLO ', 'GROWTH ' is given
VAR _ IREr , v ,t −1, p , c ,ts ,ie × UC _ IREuc _ n , ' RHS ', r , v ,t −1, p , c ,ts ,ie
1 if ts is below s
×
RTCS _ TSFRr ,ts , s if ts is above s
× (UC _ IRE )M ( t ) − M ( t −1) −1
if UC _ ATTR is given
uc _ n , ' RHS ', r , v , t −1, p , c , ts , ie r , uc _ n , ' LHS ', ' IRE ', 'GROWTH '
268
COMPRD _ GROWr ,t −1, s , ' RHS '
=
VAR _ COMPRDr ,t −1, c ,ts × UC _ COMPRDuc _ n , ' RHS ', r ,t −1, c , s
1 if ts is below s
×
∑
G _ YRFR( s ) if ts is above s
(c , ts )∈rtcs_varc r,t −1,c,ts
G _ YRFT (ts )
× (UC _ COMPRD
uc _ n , ' RHS ', r , t −1, c , s ) if UC _ ATTRr ,uc _ n , ' RHS ', 'COMPRD ', 'GROWTH ' is given
M ( t ) − M ( t −1) −1
269
NCAP _ GROWr ,t −1, p , ' RHS '
=
VAR _ NCAP × UC _ NCAP
r , t −1, p uc _ n , ' RHS ', r , t −1, p
×
∑ OBJ _ ICOSTr ,t −1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ COST ' is given
cur∈rdcurr,cur
−
∑ OBJ _ ISUBr ,t −1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ ISUB ' is given
cur∈rdcurr,cur
+
∑ OBJ _ ITAX r ,t −1, p , cur if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', ' NCAP _ ITAX ' is given
cur∈rdcurr,cur
×
(UC _ NCAP
uc _ n , ' RHS ', r , t −1, p ) if UC _ ATTRr ,uc _ n , ' RHS ', ' NCAP ', 'GROWTH ' is given
M ( t ) − M ( t −1) −1
270
5.3.22.11 Equation: EQ(l)_UCSU / EQE_UCSU
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑ ∑
r ∈uc_r_sum s∈uc_ts_sum + COMCON _ GROWr , t , s , ' LHS ' + COMPRD _ GROWr , t , s , ' LHS '
+
∑ (NCAP _ GROW
r ∈uc_r_sum
r , t , p , ' LHS ' + CAP _ GROWr ,t , p , ' LHS ' )
271
VAR _ UCTuc _ n ,t
+
ACTr ,t −1, p , s , ' RHS ' + FLOr ,t −1, p , s , ' RHS ' + IREr ,t −1, p , s , ' RHS '
∑ ∑
r ∈uc_r_sum s∈uc_ts_sum + COMCON + COMPRD
r , t −1, s , ' RHS ' r , t −1, s , ' RHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t −1, p , ' RHS ' + CAPr ,t −1, p , ' RHS ' )
with
VAR _ UCT .LOuc _ n ,t = UC _ RHSTuc _ n ,t ,'LO '
VAR _ UCT .UPuc _ n ,t = UC _ RHSTuc _ n ,t ,'UP '
VAR _ UCT .FX uc _ n ,t = UC _ RHSTuc _ n ,t ,'FX '
272
5.3.22.12 Equation: EQ(l)_UCRSU / EQE_UCRSU
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑
s∈uc_ts_sum + COMCON _ GROWr , t , s , ' LHS ' + COMPRD _ GROWr , t , s , ' LHS '
+
(NCAP _ GROWr ,t , p,' LHS ' + CAP _ GROWr ,t , p,' LHS ' )
When control parameter VAR_UC=NO:
{≤; =; ≥}
UC _ RHSRTr ,uc _ n ,t ,l
+
ACT _ GROWr ,t −1, p , s , ' RHS ' + FLO _ GROWr ,t −1, p , s , ' RHS ' + IRE _ GROWr ,t −1, p , s , ' RHS '
∑
s∈uc_ts_sum + COMCON _ GROW + COMPRD _ GROW
r , t −1, s , ' RHS ' r , t −1, s , ' RHS '
+
(NCAP _ GROWr ,t −1, p,' RHS ' + CAP _ GROWr ,t −1, p,' RHS ' )
When control parameter VAR_UC=YES, the user constraint is created as strict
equality and the RHS constant UC_RHSRT is replaced by the variable VAR_UCRT. The
bounds UC_RHSRT are then applied to the variable VAR_UCRT.
=
273
VAR _ UCRTr ,uc _ n ,t
+
ACTr ,t −1, p ,s ,'RHS ' + FLOr ,t −1, p ,s ,'RHS ' + IREr ,t −1, p ,s ,'RHS '
∑
s∈uc_ts_sum + COMCON + COMPRD
r ,t −1, s ,'RHS ' r ,t −1, s ,'RHS '
+
(NCAPr ,t −1, p,'RHS ' + CAPr ,t −1, p,'RHS ' )
with
VAR _ UCRT .LOr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' LO '
VAR _ UCRT .UPr ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,'UP '
VAR _ UCRT .FX r ,uc _ n ,t = UC _ RHSRTr ,uc _ n ,t ,' FX '
274
5.3.22.13 Equation: EQ(l)_UCRSUS / EQE_UCRSU
Indices: region (r), user constraint (uc_n), period (t), timeslice (s)
Equation:
ACT _ GROWr ,t , p , s ,'LHS ' + FLO _ GROWr ,t , p , s ,'LHS ' + IRE _ GROWr ,t , p , s ,'LHS '
+ COMCON _ GROW
r ,t , s ,' LHS ' + COMPRD _ GROWr ,t , s ,' LHS '
+
(NCAP _ GROW r ,t , p ,' LHS ' + CAP _ GROWr ,t , p ,'LHS ' )
275
VAR _ UCRTS r ,uc _ n ,t , s
+
ACTr ,t −1, p , s ,'RHS ' + FLOr ,t −1, p , s ,'RHS ' + IRE r ,t −1, p , s ,'RHS '
+ COMCON + COMPRD
r ,t −1, s ,' RHS ' r ,t −1, s ,' RHS '
+
(NCAPr ,t −1, p,'RHS ' + CAPr ,t −1, p,'RHS ' )
with
VAR _ UCRTS .LOr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'LO '
VAR _ UCRTS .UPr ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'UP '
VAR _ UCRTS .FX r ,uc _ n ,t , s = UC _ RHSRTS r ,uc _ n ,t , s ,'FX '
276
5.3.22.14 Equation: EQ(l)_UCSUS / EQE_UCSUS
Equation:
ACT _ GROWr ,t , p , s , ' LHS ' + FLO _ GROWr ,t , p , s , ' LHS ' + IRE _ GROWr ,t , p , s , ' LHS '
∑
r ∈uc_r_sum + COMCON _ GROWr , t , s , ' LHS ' + COMPRD _ GROWr , t , s , ' LHS '
+
∑ (NCAP _ GROW
r ∈uc_r_sum
r , t , p , ' LHS ' + CAP _ GROWr ,t , p , ' LHS ' )
277
VAR _ UCTSuc _ n ,t , s
+
ACTr ,t −1, p , s , ' RHS ' + FLOr ,t −1, p , s , ' RHS ' + IREr ,t −1, p , s , ' RHS '
∑
r ∈uc_r_sum + COMCON + COMPRD
r , t −1, s , ' RHS ' r , t −1, s , ' RHS '
+
∑ (NCAP
r ∈uc_r_sum
r , t −1, p , ' RHS ' + CAPr ,t −1, p , ' RHS ' )
with
VAR _ UCTS .LOuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'LO '
VAR _ UCTS .UPuc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'UP '
VAR _ UCTS .FX uc _ n ,t , s = UC _ RHSTS uc _ n ,t , s ,'FX '
278
6 The Endogenous Technological Learning (ETL) option
As discussed in chapter 8 of PART I, there are situations in which the rate at which a
technology’s unit investment cost changes over time is a function of cumulative
investment in the technology. In these situations, technological learning is called
endogenous.
In this chapter we provide the data and modeling details associated with modeling
Endogenous Technological Learning (ETL) in TIMES. The implementation of ETL in
TIMES is based on the realization in the MARKAL model generator. The major part of
the MARKAL code for ETL could be transferred to TIMES. Accordingly the description
of ETL presented here follows the MARKAL documentation of ETL. To this end the
next three sections will address the Sets, Parameters, Variables, and Equations related to
the Endogenous Technological Learning option, including the special clustered learning
ETL option where a component common to several technologies learns, thereby
benefiting all the related (clustered) technologies.
Besides the basic data described in Table 6.1 the user controls whether or not the ETL
component is activated by means of the $SET ETL ‘YES’ switch. This switch is provided
by the data handling system when the user indicates that the ETL option is to be included
in a run. This permits the easy exclusion of the feature if the user does not want to
perform a MIP solve without having to remove the ETL data.
279
Table 6.1. Definition of ETL user input parameters
Input Parameter Alias/Internal Related Units/Range & Instance Description
(Indexes) Name Parameters Defaults (Required/Omit/
Special Conditions)
CCAP0 CCAP0 PAT • Units of capacity • Required, along The initial cumulative capacity (starting point on the
(r,p) CCOST0 (e.g., GW, PJa). with the other learning curve) for a (non-resource) technology that is
• [open]; no ETL input modeled as one for which endogenous technology
default. parameters, for learning (ETL) applies. Learning only begins once this
each learning level of installed capacity is realized.
technology • The CCAP0 parameter appears as the right-hand-side
(TEG). of the cumulative capacity definition constraint
(EQ_CUINV).
• Note that if the NCAP_PASTI parameter is specified
for an ETL technology, then its value in the first
period should match the value of CCAP0, otherwise
an infeasibility will occur.
CCAPM CCAPM CCOSTM • Units of capacity • Required, along The maximum cumulative capacity (ending point on
(r,p) (e.g., GW, PJa). with the other the learning curve) for a (non-resource) technology that
• [open]; no default ETL input is modeled as one for which endogenous technology
parameters, for learning (ETL) applies.
each learning • The parameter CCAPM does not appear in any of the
technology ETL constraints, but its value affects the values of a
(TEG). number of internal parameters that directly
contribute to one or more of the ETL constraints.
TEG TEG ETL-CUMCAP0 • Indicator. • Required to An indicator (always 1) that a process is modeled as
(p) ETL- • [1]; no default. identify the one for which endogenous technology learning (ETL)
CUMCAPMAX learning applies.
ETL-INVCOST0 technologies. • The set TEG controls the generation of the ETL
ETL-NUMSEG • For each TEG constraints. Each of the ETL constraints is generated
ETL- the other ETL only for those technologies that are in set TEG.
PROGRATIO input parameters
are required.
280
Input Parameter Alias/Internal Related Units/Range & Instance Description
(Indexes) Name Parameters Defaults (Required/Omit/
Special Conditions)
SC0 SC0 PAT • Base year • Required, along The investment cost corresponding to the starting
(r,p) monetary units with the other point on the learning curve for a technology that is
per unit of ETL input modeled as one for which endogenous technology
capacity (e.g., parameters, for learning (ETL) applies.
2000 M$/GW or each learning • The parameter SC0 does not appear in any of the
PJa). technology ETL constraints, but its value affects the values of a
• [open]; no (TEG).. number of internal parameters that directly
default. contribute to one or more of the ETL constraints.
SEG SEG ALPH • Number of steps. • Required, along The number of segments to be used in approximating
(r,p) BETA • [1-6]; no default. with the other the learning curve for a technology that is modeled as
CCAPK ETL input one for which endogenous technology learning (ETL)
CCOSTK parameters, for applies.
each learning • The SEG parameter appears in all of the ETL
technology constraints that are related to piecewise linear
(TEG).. approximation of the learning curve (EQ_CC,
EQ_COS, EQ_EXPE1, EQ_EXPE2, EQ_LA1,
EQ_LA2).
PRAT PRAT CCAPK • Decimal fraction. • Required, along The “progress ratio” for a technology that is modeled
(r,p) CCOST0 • [0-1]; no default. with the other as one for which endogenous technology learning (ETL)
CCOSTM ETL input applies. The progress ratio, which is referred to as the
PAT parameters, for learning rate, is defined as the ratio of the change in unit
PBT each learning investment cost each time cumulative investment in an
technology ETL technology doubles. That is, if the initial unit
(TEG). investment cost is SC0 and the progress ratio is PRAT,
then after cumulative investment is doubled the unit
investment cost will be PRAT * SC0.
• The parameter PRAT does not appear in any of the
ETL constraints, but its value affects the values of a
number of internal parameters (ALPH, BETA,
CCAPK, CCOST0) that directly contribute to one or
281
Input Parameter Alias/Internal Related Units/Range & Instance Description
(Indexes) Name Parameters Defaults (Required/Omit/
Special Conditions)
more of the ETL constraints.
CLUSTER CLUSTER • Decimal fraction. • Provided to The “cluster mapping and coupling factor” for a
(r,p,p) NCLUSTER • [0-1]; no default. model clustered technology that is modeled as a clustered technology is
endogenous associated with a key learning technology to which
technology endogenous technology learning (ETL) applies.
learning. Clustered technologies use the key ETL technology, and
• Each of the are subject to learning via the key technology.
learning • The first index of the CLUSTER parameter is a key
parameters must learning technology.
also be specified • The second index of the CLUSTER parameter is a
for the key clustered technology that is associated with this key
learning learning technology.
technology. • In general there may be several clustered
technologies each of which is associated with the
same key learning technology, and hence there may
be several instances of the CLUSTER parameter
each of which has the same key learning technology
as its first index.
• The numerical value of the CLUSTER parameter
indicates the extent of coupling between the
clustered technology and the key learning technology
to which it is associated.
282
Table 6.2. ETL-specific matrix coefficient and internal model parameters 41
Matrix Controls &
Coefficients Type Description & Calculations
(indexes)
ALPH I ALPH are the intercepts on the vertical axis of the line segments in the piecewise linear approximation of the
(r,k,p) cumulative cost curve. They are calculated in COEF_ETL.ETL from the starting and ending points of the cumulative
cost curve, its assumed form, the number of segments used in its piecewise linear approximation, and the choice of
successive interval lengths on the vertical axis to be such that each interval is twice as wide as the preceding one. The
parameter ALPH occurs in the ETL equation EQ_COS that defines the piecewise linear approximation to the
cumulative cost curve.
BETA I BETA are the slopes of the line segments in the piecewise linear approximation of the cumulative cost curve.
(r,k,p) They are calculated in COEF_ETL.ETL from the starting and ending points of the cumulative cost curve, its assumed
form, the number of segments used in its piecewise linear approximation, and the choice of successive interval
lengths on the vertical axis to be such that each interval is twice as wide as the preceding one. The parameter BETA
occurs in the ETL equation EQ_COS that defines the piecewise linear approximation to the cumulative cost curve.
CCAP0 A CCAP0 is the initial cumulative capacity (starting point on the learning curve). The parameter CCAP0 occurs in
(r,p) the ETL equation EQ_CUINV that defines cumulative capacity in each period.
CCAPK I CCAPK are the break points on the horizontal axis in the piecewise linear approximation of the cumulative cost
(k,p) curve. They are calculated in COEF_ETL.ETL from the starting and ending points of the cumulative cost curve, its
assumed form, the number of segments used in its piecewise linear approximation, and the choice of successive
interval lengths on the vertical axis to be such that each interval is twice as wide as the preceding one. The parameter
CCAPK occurs in the ETL equations EQ_LA1 and EQ_LA2 whose role is to ensure that variable R_LAMB(r,t,k,p)
lies in the kth interval, i.e., between CCAPK(r,k-1,p) and CCAPK(r,k,p), when its associated binary variable
R_DELTA(r,t,k,p) = 1.
CCOST0 I CCOST0 is the initial cumulative cost (starting point on the learning curve). It is calculated in COEF_ETL.ETL
(r,p) from the initial cumulative capacity (CCAP0) and corresponding initial investment cost (user input parameter SC0)
and the progress ratio (user input parameter PRAT). The parameter CCOST0 occurs in the ETL equation EQ_IC1
that defines first period investment costs (prior to discounting).
41
Parameters that occur in the ETL-specific equations but that also occur in non-ETL equations (e.g., TCH_LIFE) are not listed in this table.
283
Matrix Controls &
Coefficients Type Description & Calculations
(indexes)
SEG A The user input parameter SEG is the number of segments in the cumulative cost curve. The parameter SEG
(r,p) occurs in all of those ETL equations that are related to the piecewise linear approximation of the cumulative cost
curve.
TEG S TEG is the set of technologies to which endogenous technology learning (ETL) applies. Each of the ETL
(p) equations has set TEG as an index.
CLUSTER I The “cluster mapping and coupling factor” user input parameter CLUSTER is only relevant when modeling
(r,p,p) clustered endogenous technology learning. The parameter CLUSTER occurs in the special ETL cluster equation
EQ_CLU that defines investment in new capacity (VAR_NCAP) in the key learning technology as the weighted sum
of investments in new capacity of the clustered technologies that are attached to the key technology. (The weights
used are the numeric values of the CLUSTER parameter.)
NTCHTEG I The parameter NTCHTEG is only relevant when modeling clustered endogenous technology learning. If TEG is
(r,p) an ETL technology, then NTCHTEG(R,TEG) is the number of clustered technologies that are attached to key
technology TEG. NTCHTEG is calculated in COEF_ETL.ETL from the “cluster mapping and coupling factor”
(CLUSTER). It occurs in the special ETL cluster equation EQ_CLU.
PBT The learning index PBT is an internal parameter calculated in COEF_ETL.ETL. It is derived from the progress
(r,p) ratio PRAT using the formula: PBT(r,p) = -log(PRAT(r,p))/log(2). PBT does not occur directly in the equations, but
is used in the calculation of equation coefficients.
PAT The internal parameter PAT describes the specific investment costs of the first unit. It is derived in
(r,p) COEF_ETL.ETL using PBT, SC0 and CCAP0. PAT does not occur directly in the equations, but is used in the
calculation of equation coefficients.
K The set K has the members ‘1’-‘6’ and is used as indicator for the kink points of the piecewise linear
approximation of the cumulative cost curve. The number of elements can be changed in the *run file if desired.
WEIG I The internal parameter WEIG is calculated in COEF_ETL.ETL and is used as a factor in the calculation of the
(r,k,prc) length of the intervals being used in the piecewise linear approximation of the cumulative cost curve. The interval
lengths on the vertical axis are chosen in such a way that each interval is twice as wide as the preceding one.
SAL_ETLINV I This parameter credits back to the regional objective function (MR_PRICE) the discounted salvage cost of
(r,t,p) learning technology investments that remain available past the end of the modeling horizon. [Note that this
parameter does not specifically exist in the code, but rather the expression is explicitly written in MMEQTEG.ML.
See MR_SV in the equation section.]
284
6.2 Variables
The variables that are used to model the Endogenous Technological Learning option
in TIMES are presented in Table 6.3 below. As is the case with the modeling of lumpy
investments, the primary role of the variables and equations used to model ETL is to
control the standard TIMES investment variable (VAR_NCAP) and the associated
dynamic cost of these investments, so ETL is rather self-contained. That is the
VAR_NCAP variable links the ETL decisions to the rest of the model, and the VAR_IC
investment cost variable determines the associated contribution to the regional investment
costs (VAR_OBJINV). Note that the special clustered learning ETL option does not
require any additional variables, as compared with the modeling of endogenous
technology learning when there are no clusters.
285
6.2.1 VAR_CCAP(r,t,p)
Purpose and This variable tracks the cumulative investment in capacity for an ETL technology
Occurrence: which then determines, along with the progress ratio, how much the investment
cost is to be adjusted for the learning gains.
This variable is generated for each ETL technology in all time periods beginning
from the period that the technology is first available. It appears in the cumulative capacity
definition constraint (EQ_CUINV) that defines it as the initial cumulative capacity
(CCAP0) plus investments in new capacity (VAR_NCAP) made up to and including the
current period. It also appears in the cumulative capacity interpolation constraint
(EQ_CC). This constraint equates VAR_CCAP(r,t,p) to the sum over k of the variables
VAR_LAMBD(r,t,p,k) used to represent the cumulative investment in capacity lying in
the kth interval of the piecewise linear approximation of the cumulative cost curve.
Units: PJ/a, Gw, or Bvkm/a, or any other unit defined by the analyst to represent
technology capacity.
Bounds: This variable is not directly bounded. It may be indirectly bounded by specifying
a bound (NCAP_BND) on the level of investment in new capacity
(VAR_NCAP).
6.2.2 VAR_CCOST(r,t,p)
Purpose and This variable defines the interpolated cumulative cost of investment in capacity
in terms
Occurrence: of the continuous variables VAR_LAMBD and the binary variables
VAR_DELTA, and the internal model parameters ALPH and BETA. ALPH and
BETA represent the intercepts on the vertical axis and the slopes, respectively, of
the line segments in the piecewise linear approximation of the cumulative cost
curve.
This variable is generated for each ETL technology in all time periods beginning
from the period that the technology is first available. It appears in the cumulative
cost interpolation equation (EQ_COS) that defines it. It also appears in the
equations EQ_IC1 and EQ_IC2 that define the VAR_IC variables that represent
the portions of the cumulative cost of investment in capacity that are incurred in
period t.
Units: Million 2000 US$, or any other unit in which costs are tracked.
Bounds: None.
286
6.2.3 VAR_DELTA(r,t,p,k)
Description: Binary variable (takes the value 0 or 1) used for an ETL technology to indicate in
which interval of the piecewise linear approximation of the cumulative cost curve
the cumulative investment in capacity (VAR_CCAP) lies.
Purpose and To indicate which step on the learning curve a technology achieves. A value of 1
for
Occurrence: this variable for interval k, and zero values for intervals ≠ k, imply that the
cumulative investment in capacity (VAR_CCAP) lies in the kth interval of the
piecewise linear approximation of the cumulative cost curve.
6.2.4 VAR_IC(r,t,p)
Description: The portion of the cumulative cost of investment in capacity for an ETL
technology (VAR_CCOST) that is incurred in period t.
Purpose and This variable represents the portion of the cumulative cost of investment in
capacity for
Occurrence: an ETL technology that is incurred in period t, and so is subject to the same
discounting in the investment cost part of the objective function (EQ_OBJINV)
that applies to other period t investment costs.
287
first available. Apart from its appearance in the objective function, this variable
appears in the constraints EQ_IC1 and EQ_IC2 that define it in the first period
that the technology is available, and in subsequent periods, respectively. It also
appears in the salvage of investments constraint (EQ_OBJSALV) which
calculates the amount to be credited back to the objective function for learning
capacity remaining past the modeling horizon.
Units: Million 2000 US$, or any other unit in which costs are tracked.
Bounds: None.
6.2.5 VAR_LAMBD(r,t,p,k)
Description: Continuous variable used for an ETL technology to represent the portion of
cumulative investment in capacity (VAR_CCAP) that lies in the kth interval of
the piecewise linear approximation of the cumulative cost curve.
Purpose and A positive value for this variable for interval k, and zero values for intervals ≠ k,
th
Occurrence: imply that the cumulative investment in capacity (VAR_CCAP) lies in the k
interval of the piecewise linear approximation of the cumulative cost curve. This
continuous variable, along with the associated binary variable VAR_DELTA, are
generated for each ETL technology in all time periods beginning from the period
that the technology is first available (START), and for each interval in the
piecewise linear approximation.
Units: PJ/a, Gw, or Bvkm/a, or any other unit defined by the analyst to represent
technology capacity.
Bounds: The pair of constraints EQ_LA1 and EQ_LA2 that are discussed above have the
effect of either bounding VAR_LAMBD between CCAPK(k-1,p) and
CCAP(k,p), or forcing VAR_LAMBD to be zero.
288
6.3 Equations
The equations that are used to model the Endogenous Technological Learning option
in TIMES are presented in Table 6.4 below. Since the primary role of the variables and
equations used to model ETL is to control the standard TIMES investment variable
(VAR_NCAP) and the associated dynamic cost of these investments, ETL is rather self-
contained. That is the VAR_NCAP variable links the ETL decisions to the rest of the
model, and the VAR_IC investment cost variable determines the associated contribution
to the regional investment cost part objective function (EQ_OBJINV). Note that the
special clustered learning ETL option involves one additional equation (EQ_CLU), as
compared with the modeling of endogenous technology learning where there are no clusters.
Reminder: the ETL formulation is activated at run time from the data handling systems
(VEDA-FE,) which in turn set the $SET ETL ‘YES’ switch.
289
Constraints Constraint Description GAMS Ref
(Indexes)
EQ_DEL The constraint for an ETL technology that ensures that EQETL.ETL
(r,t,p) in each period, there is exactly one interval k for which the
binary variable R_DELTA(r,t,p,k) has value 1 (with zero
values for intervals ≠ k).
EQ_EXPE1 One of two constraints for an ETL technology to EQETL.ETL
(r,t,p,k) improve MIP solution time by reducing the domain of
feasibility of the binary variables VAR_DELTA.
EQ_EXPE2 Second of two constraints for an ETL technology to EQETL.ETL
(r,t,p,k) improve MIP solution time by reducing the domain of
feasibility of the binary variables VAR_DELTA.
EQ_IC1 The constraint for an ETL technology that defines the EQETL.ETL
(r,t,p) portion of the cumulative cost of investment in capacity
(VAR_IC) that is incurred in the first period of the model
horizon.
EQ_IC2 The constraint for an ETL technology that defines the EQETL.ETL
(r,t,p) portion of the cumulative cost of investment in capacity
(VAR_IC) that is incurred in each period but the first one.
EQ_LA1 The constraint for an ETL technology that sets a lower EQETL.ETL
(r,t,p,k) bound on the continuous variable VAR_LAMBD(r,t,p,k).
EQ_LA2 The constraint for an ETL technology that sets an upper EQETL.ETL
(r,t,p,k) bound on the continuous variable VAR_LAMBD(r,t,p,k).
EQ_OBJSAL For an ETL technology in periods appropriately close EQOBJSAL.M
(r,cur) to the model horizon part of the investment costs OD
(VAR_IC) exceed the model horizon. This part of the
investment cost is reflected in the calculation of the salvage
value variable VAR_OBJSAL.
EQ_OBJINV The endogenously calculated cost of investments for EQOBJINV.M
(r,cur) learning technologies (VAR_IC) needs to be discounted OD
and included in the regional investment cost part of the
objective function (EQ_OBJINV) in place of the traditional
investment calculation using variable VAR_NCAP.
290
6.3.1 EQ_CC(r,t,p)
Purpose and This constraint defines the cumulative investment in capacity for a technology in
a
Occurrence: period (VAR_CCAP) as the sum over all intervals k of the continuous variables
VAR_LAMBD(r,t,p,k) that represent cumulative investment in capacity as lying
in the kth interval of the piecewise linear approximation of the cumulative cost
curve. This constraint links the cumulative capacity investment variable
(VAR_CCAP) to the variables VAR_LAMBD. In combination with other ETL
constraints, it is fundamental to ensuring the validity of the piecewise linear
approximation of the cumulative cost curve.
This equation is generated in each time period for which the ETL technology
is available.
Equation
∑ VAR _ LAMBDr ,t , p, k
k
291
6.3.2 EQ_CLU(r,t,p)
Description: For a key learning ETL technology it defines investment in new capacity
(VAR_NCAP) as the weighted sum of investments in new capacity of the
attached clustered technologies. The weights used are the numeric values of the
CLUSTER parameter.
Purpose and Defines the relationship between investment in new capacity for a key learning
Occurrence: ETL technology and investment in new capacity for the associated clustered
technologies. This equation is generated in each time period for which the ETL
technology is available. It is a key learning technology, that is, that has associated
clustered technologies.
Units: Money units, e.g., million 2000 US$, or any other unit in which costs are tracked.
Remarks: Activation of the special clustered learning ETL option occurs automatically
if data is included for the CLUSTER parameter.
Equation
VAR _ NCAPr , t , p
{=}
The weighted sum of the investments in new capacity in period t of the
clustered technologies p’ attached to the key learning technology p ∈ teg, and
whose START period is less than or equal to t. The weights used are the
numeric values of the CLUSTER parameter.
292
∑
( )
(CLUSTERr , p, p ' *VAR _ NCAPr ,t , p ' )
p '$ CLUSTERr , p, p ' > 0 ∧
(r ,t , p'∈rtp )
6.3.3 EQ_COS(r,t,p)
Purpose and This constraint defines the interpolated cumulative cost of investment in capacity
Occurrence for a technology in a period (VAR_CCOST) in terms of the binary variables
VAR_DELTA and the continuous variables VAR_LAMBD, and the internal
model parameters ALPH and BETA, where ALPH and BETA represent the
intercepts on the vertical axis and the slopes, respectively, of the line segments in
the piecewise linear approximation of the cumulative cost curve. For a more
precise definition, see “Equation” below. In combination with other ETL
constraints, it is fundamental to ensuring the validity of the piecewise linear
approximation of the cumulative cost curve. This equation is generated in each
time for which the ETL technology is available.
Units: Money units, e.g., million 2000 US$, or any other unit in which costs are tracked.
Equation
293
∑ ( ALPH k , p *VAR _ DELTAr ,t , p, k + BETAk , p *VAR _ LAMBDr ,t , p, k )
k
294
6.3.4 EQ_CUINV(r,t,p)
Purpose and This constraint defines the cumulative investment in capacity of a technology in a
Occurrence: period (VAR_CCAP) as the initial cumulative capacity (CCAP0) plus the sum of
investments in new capacity made up to and including this period. This equation
is generated in each time period for which the ETL technology is available.
Equation
VAR _ CCAPr ,t , p
{=}
Cumulative investment in capacity at the start of the
learning process.
CCAP 0 r , p +
∑VAR _ NCAP
u∈rtpr ,u , p ∧ u ≤t
r ,u , p
295
6.3.5 EQ_DEL(r,t,p)
Description: The constraint for an ETL technology that ensures that in each time period, there
is exactly one interval k for which the binary variable VAR_DELTA(r,t,p,k) has
value 1 (with zero values for intervals ≠ k).
Purpose and To ensure that only one of the binary variable VAR_DELTA(r,t,p,k) has value 1
Occurrence: for each technology. This constraint, in combination with other ETL constraints,
is fundamental to ensuring the validity of the piecewise linear approximation of
the cumulative cost curve. This equation is generated in each time period for
which the ETL technology is available.
Units: None.
Equation
Sum over all intervals k (in the piecewise linear approximation of the cumulative cost
curve) of the binary variables VAR_DELTA in the current period t.
∑ VAR _ DELTAr ,t , p, k
k
{=} 1
296
6.3.6 EQ_EXPE1(r,t,p,k)
Description: One of two constraints for an ETL technology to improve MIP solution time by
reducing the domain of feasibility of the binary variables VAR_DELTA.
Purpose and To improve MIP solution time this constraint takes advantage of the observation
Occurrence: that cumulative investment is increasing with time, thus ensuring that if the
cumulative investment in period t lies in segment k, then it will not lie in
segments k-1, k-2, …, 1 in period t+1. This equation is generated for each ETL
technology in each time period, for which the technology is available, and
excluding the final period (TLAST), and for each interval k in the piecewise
linear approximation of the cumulative cost curve.
Units: None.
Equation
Sum over intervals j ≤ k of binary variables VAR_DELTA(r,t,p,j), for the kth interval,
in period t.
∑ (VAR _ DELTAr ,t , p, j )
j ≤k
{≥}
Sum over intervals j ≤ k of binary variables VAR_DELTA(r,t,p,j), for the k interval,
th
in period t+1.
297
6.3.7 EQ_EXPE2(r,t,p,k)
Description: Second of two constraints for an ETL technology to improve MIP solution time
by reducing the domain of feasibility of the binary variables VAR_DELTA. Both
constraints rely on the observation that cumulative investment is increasing as
time goes on.
Purpose and To improve MIP solution times this constraint is derived from the observation
Occurrence: that if cumulative investment in period t lies in segment k, then it must lie in
segment k or k+1 or k+2 etc … in period t+1.
This equation is generated for each ETL technology in each time period, for
which the technology is available, and excluding the final period (TLAST), and
for each interval k in the piecewise linear approximation of the cumulative cost
curve.
Units: None.
Equation
in period t.
∑ (VAR _ DELTAr ,t , p, j )
j ≥k
{≤}
Sum over intervals j ≥ k of binary variables VAR_DELTA(r,t,p,j), for the k interval,
th
in period t+1.
298
6.3.8 EQ_IC1(r,t,p)
Description: The constraint for an ETL technology that defines the portion of the cumulative
cost of investment in capacity (VAR_IC) that is incurred in period t, where t =
first period of model horizon.
Purpose and To determine the variable VAR_IC which represents the current investment cost
Occurrence: incurred in the first period a learning technology is available according to the
cumulative investments made in that period. where VAR_IC then enters the
regional investment cost part of the objective function (EQ_OBJINV) subject to
the same discounting that applies to other period t investment costs. This
equation is generated for the first period of the model horizon.
Units: Money units, e.g., million 2000 US$, or any other unit in which costs are tracked.
Equation
VAR _ ICr ,t , p
{=}
VAR _ CCOSTr ,t , p −
The initial cumulative cost of investment in new capacity for a learning technology.
CCOST 0
299
6.3.9 EQ_IC2(r,t,p)
Description: The constraint for an ETL technology that defines the portion of the cumulative
cost of investment in capacity that is incurred in each period t being not the first
period.
Purpose and To determine the variable VAR_IC which represents the current investment cost
Occurrence: incurred in period t according to the cumulative investments made thus far,
where VAR_IC then enters the regional investment cost part of the objective
function (EQ_OBJINV) subject to the same discounting that applies to other
period t investment costs. This equation is generated in each time period being
not the first period of the model horizon.
Units: Money units, e.g., million 2000 US$, or any other unit in which costs are tracked.
Equation
The portion of the cumulative cost of investment in capacity that is incurred in period t.
VAR _ ICr ,t , p
{=}
VAR _ CCOSTr ,t , p −
The cumulative cost of investment in new capacity as of the previous period t-1.
300
6.3.10 EQ_LA1(r,t,p,k)
Description: The constraint for an ETL technology that sets a lower bound on the continuous
variable VAR_LAMBD(r,t,p,k).
This equation is generated in each time period, for which the ETL technology is
available, and for each interval k in the piecewise linear approximation of the
cumulative cost curve.
Equation
th
Portion of the cumulative investment in capacity that lies in the k interval (of the
piecewise linear approximation of the cumulative cost curve), in the current period.
VAR _ LAMBDr ,t , p , k
{≥}
Left hand end of the kth interval (CCAPK(r,k-1,p)) times binary variable
VAR_DELTA(r,t,p,k), in the current period.
301
6.3.11 EQ_LA2(r,t,p,k)
Description: The constraint for an ETL technology that sets an upper bound on the continuous
variable VAR_LAMBD(r,t,p,k).
This equation is generated in each time period, for which the ETL technology is
available, and for each interval k in the piecewise linear approximation of the
cumulative cost curve.
Equation
th
Portion of the cumulative investment in capacity that lies in the k interval (of the
piecewise linear approximation of the cumulative cost curve), in the current period.
VAR _ LAMBDr ,t , p ,k
{≤}
th
Right hand end of the k interval (CCAPK(r,k,p)) times binary variable
R_DELTA(r,t,p,k), in the current period.
302
6.3.12 EQ_OBJSAL(r,cur)
Description: Regional salvage value part of objective function adjusted to include the salvage
value of endogenously determined investments (VAR_IC) in learning
technologies. A salvage value for a learning technology investment exists when
the technical lifetime of the investment exceeds the model horizon.
Purpose and The objective function part calculating the salvage value is changed (for learning
Ocurrence: technologies only) by replacing the traditional calculation of the salvage value of
investments with one based on the investment costs of learning technologies
(VAR_IC).
Units: Money units, e.g., million 2000 US$, or any other unit in which costs are tracked.
Equation
EQ _ OBJSALr ,cur
All the basic objective function term for calculating the salvage value
(section 5.2.8)
The calculated salvage value associated with the ETL technologies. The
internally derived parameter coefficient OBJSIC describing the portion of the
investment costs that has to be salvaged. It takes into account the discounting of
the salvage value.
303
6.3.13 EQ_OBJINV(r,cur)
Description: Regional investment cost part of objective function adjusted to include the
endogenously determined investment cost (VAR_IC) for new investments in
learning technologies.
Purpose and The objective function part calculating the investment costs is changed (for
Occurrence: learning technologies only) by replacing the traditional calculation of discounted
cost of investments in new capacity with that of the endogenously determined
value. This equation is generated for each region where the learning investment
costs occur in each time period beginning from the period, for which the ETL
technology is available.
Equation
EQ _ OBJINVr ,cur
All the basic objective function terms for investment costs (section 5.2.2)
…
The calculated investments costs associated with the ETL technologies.
304
7 The TIMES Climate Module
This chapter contains the full documentation on the Climate Module option for the
TIMES model. The chapter is divided in 8 sections: section 7.1 contains a detailed
description of the theoretical approach taken, sections 7.2 to 7.6 present the parameters,
variables, and equations required by the Climate Module. Section 7.7 discusses the
GAMS implementation of the Climate Option, and section 7.8 gives useful references for
the chapter’s material. 42
The Climate Module starts from global emissions as generated by the TIMES global
model, and proceeds to compute successively:
- the changes in CO2 concentrations in three reservoirs,
- the total change (over pre-industrial times) in atmospheric radiative forcing from
anthropogenic causes, and
- the temperature changes (over pre-industrial times) in two reservoirs.
The Climate Equations used to perform these calculations are adapted from Nordhaus
and Boyer (1999), who proposed linear recursive equations for calculating concentrations
and temperature changes. These linear equations give results that are good
approximations of those obtained from more complex climate models (Drouet et al.,
2004; Nordhaus and Boyer, 1999). In addition, the non-linear radiative forcing equation
used by these authors is the same as the one used in most models. The choice of the
Nordhaus and Boyer’s climate equations is motivated by the simplicity of their approach
and by the fact that their climate module is well-documented and acceptably accurate.
The equations used in the module are theoretically applicable only to the so-called
‘carbon cycle’, and therefore, the correct treatment of other greenhouse gases should be
done using different sets of equations for each GHG or aerosol (methane, N2O, ozone,
sulfates, etc.). However, following an approach used by many researchers (ref…), it is
also possible to use the CO2 equations to calculate the impact of other gases on climate.
To do so, it is necessary to first convert the emission of each gas into a CO2-equivalent
quantity, and to add these CO2-equivalents to form a fictitious emission of total CO2-
equivalent, which is then treated as if it were real CO2 emissions. The coefficients used
for coverting emissions of other gases into CO2-equivalents are those recommended by
42
A separate report is also available unpon request, containing an example of
application of the Climate Module for an instance of the Global multiregional TIMES
model.
305
the IPCC (ref), and reproduced in the Appendix. Therefore, in what follows, the term
CO2 should really be thought as CO2-equivalent.
We now describe the mathematical equations used at each of the three steps of the
climate module.
Matm (y) = E(y-1) + (1 – φatm-up) Matm (y-1) +φup-atm Mup (y-1) (1)
Mup (y) = (1 –φup-atm – φup-lo) Mup (y-1) + φatm-up Matm (y-1) + φlo-up Mlo (y-1) (2)
Mlo (y) = (1– φlo-up) Mlo (y-1) + φup-lo Mup (y-1) (3)
with
• Matm(y), Mup(y), Mlo(y): masses of CO2 in atmosphere, in a quicly mixing reservoir
representing the upper level of the ocean and the biosphere, and in deep oceans (GtC),
respectively, at period t (GtC)
• E(y-1) = CO2 emissions in previous year (GtC)
• φij, transport rate from reservoir i to reservoir j (i, j = atm, up, lo) from year y-1 to y
The relationship between GHG accumulations and increased radiative forcing, F(t),
is derived from empirical measurements and climate models.
ln (M atm ( t ) M 0 )
∆F(t) = γ * + O(t)
ln 2
where:
• M0 (i.e.CO2ATM_PRE_IND) is the pre-industrial (circa 1750) reference
atmospheric concentration of CO2 = 596.4 GtC
• γ is the radiative forcing sensitivity to atmospheric CO2 concentration doubling =
4.1 W/m2
• O(t) (i.e. EXOFORCING(t)), is the increase in total radiative forcing at period t
relative to pre-industrial level due to anthropogenic GHG’s not accounted for in
the computation of CO2 emissions. Units = W/m2. In Nordhaus and Boyer (1999),
only emissions of CO2 were explicitly modeled, and therefore O(t) accounted for
all other GHG’s. In TIMES, only some other gases are fully accounted for, but
some are not (e.g. CFC’s, aerosols, ozone). It is the modeler’s responsibility to
306
include in the calculation of O(t) only those gases not included in the CO2-
equivalent emissions.
The parameterization of the forcing equation is not controversial and relies on the
IPCC Second Assessment Report by Working Group I (1996). The major assumption
made in RICE is also made here: a doubling of CO2 concentrations leads to an increase
in radiative forcing γ = 4.1 W/m2. The IPCC Third Assessment Report by Working
Group I (2001) provides a slightly smaller value of 3.7 W/m2 (based on Table 6.2, p.358,
chapter 6). Users may want to experiment with other values of the γ parameter.
In the TIMES Climate Module as in many other integrated models, climate change is
represented by the global mean surface temperature. The idea behind the two-reservoir
model is that a higher radiative forcing warms the atmospheric layer, which then quickly
warms the upper ocean. In this model, the atmosphere and upper ocean form a single
layer, which slowly warms the second layer consisting of the deep ocean.
with
• ΔTup = globally averaged surface temperature increase above pre-industrial level,
• ΔTlow = deep-ocean temperature increase above pre-industrial level,
• σ1 = 1-year speed of adjustment parameter for atmospheric temperature,
• σ2 = coefficient of heat loss from atmosphere to deep oceans,
• σ3 = 1-year coefficient of heat gain by deep oceans,
• λ = imatic retroaction)
feedback (λ = (cl
parameter 4.1/Cs, Cs being the
temperature sensitivity to CO2 concentration doubling).
Remark: in contrast with most other parameters, the value of Cs , the temperature
sensitivity to CO2 concentration doubling, is highly uncertain, and may range from 1oC to
10oC. This parameter is therefore a prime candidate for sensitivity analysis, or for
treatment by probablilistic methods.
307
7.2 Input parameters of the Climate Module
This and the next 4 sections describe the parameters, variables, and equations of the
climate module. This section presents the input parameters, section 7.3 presents the
variables, section 7.4 the equations, and section 7.5 the reporting parameters (i.e.
expressions calculated in order to be reported as part of the solution, but not true GAMS
equations). Section 7.6 shows the default values of the input parameters.
The distinction between variables and reporting parameters is important: while the
former may be constrained or bounded, the latter are expressions that may contain true
variables, but themselves may not be bounded. They may only be used for passive
reporting purposes. In our implementation, only the concentrations of CO2 in the three
reservoirs are true variables, whereas radiative forcing and temperature changes are
treated as reporting parameters 43.
Input parameters
All input parameters are time-independent, except EXOFOR. Default values for all
parameters are discussed in section 7.6.
43
Allowing bounds and constraints on these parameters would result in a non-linear,
non-convex optimisation model
308
EXOFOR(y): radiative forcing from Non-CO2 gases in each year from 1995. Units:
Watts/m2
DT_FORC(t) is the total change in forcing in period t. Units: W/m2.
DT_TATM(t), and DT_TLOW(t): average global temperature changes in the atmosphere
and in deep ocean respectively, in period t, relative to the average global temperatures in pre-
industrial time. Units: oC
Internal parameters
In order to facilitate the writing of the equations, several intermediate quantities are
constructed. These are described in each equation section. An additional internal
parameter CM_DEFAULT is used to store the default values for the calibration quantities
(see chapter 2)
Reporting parameters
There are three reporting parameters, whose expressions are given in section 7.5
DT_FORC(t)
DT_ATM(t)
DT_LOW(t)
309
7.3 Climate related Variables
There are four Climate variables, each indexed by t only (time period).
7.3.1 VAR_CO2TOT(t)
Description: Masses in period t, of CO2 in the three quickly mixing reservoirs respectively
representing the atmosphere, the upper level of the ocean, and the deep oceanic layer.
Units: GtC
Type: =
Purpose: This equation defines the global emissions into the atmosphere, to atmospheric
CO2 emissions in each region in period t.
Remark:
A user provided conversion factor (CO2GTC) is required to convert emission units
used in the TIMES model to Gigatonnes of carbon. For instance, if CO2 emissions
are in Mt CO2, the conversion coefficient must be taken equal to: 0.00027272727.
Equation
EQ _ CO 2TOTt ∋ ( t ∈ MILESTONEYEARS )
310
7.4.2 Equation: EQ_CO2ATM
EQ _ CO 2 ATM t ∋ ( t ∈ MILESTONEYEARS ) ∧ ( t ≠ 1) :
− VAR _ CO 2 ATM ( t )
+ A11 × VAR _ CO 2 ATM ( t − 1)
+ A12 × VAR _ CO 2UP ( t − 1)
+ A13 × VAR _ CO 2 LOW ( t − 1)
+ BB11 × VAR _ CO 2TOT ( t )
+ CC11 × VAR _ CO 2TOT ( t − 1)
=0
EQ _ CO 2 ATM t ∋ ( t = 1)
VAR _ CO 2 ATM ( t ) = CO 2 ATM _ 0
where :
(
BB11 is the first coefficient of the first column of matrix : BB = PHI + PHI 2 + + PHI p )
CC11 is the first coefficient of the first column of matrix : CC = (PHI p +1
+ + PHI n
)
p is equal to D(t)/2
D( t ) is the number of years in period t
n is equal to y(t)-y(t-1 ) , also equal to D(t)/ 2 + D(t − 1 )/ 2
y( t ) is the milestone year of period t
x denotes the smallest integer larger than or equal to x
x denotes the largest integer smaller than or equal to x
311
7.4.3 Equation: EQ_CO2UP
EQ _ CO 2UPt ∋ ( t ∈ MODELYEARS ) ∧ ( t ≠ 1) :
− VAR _ CO 2UP ( t )
+ A21 × VAR _ CO 2 ATM ( t − 1)
+ A22 × VAR _ CO 2UP ( t − 1)
+ A23 × VAR _ CO 2 LOW ( t − 1)
+ BB21 × VAR _ CO 2TOT ( t )
+ CC 21 × VAR _ CO 2TOT ( t − 1)
=0
EQ _ CO 2UPt ∋ ( t = 1)
VAR _ CO 2UP ( t ) = CO 2UP _ 0
where :
(
BB21 is the second coefficient of the first column of matrix : BB = PHI + PHI 2 + + PHI p
)
CC 21 is the second coefficient of the first column of matrix : CC = (PHI p +1
+ + PHI n
)
p is equal to D(t)/2
D( t ) is the number of years in period t
n is equal to y(t)-y(t-1 ) , also equal to D(t)/ 2 + D(t − 1 )/ 2
y( t ) is the milestone year of period t
x denotes the smallest integer larger than or equal to x
x denotes the largest integer smaller than or equal to x
312
7.4.4 Equation: EQ_CO2LOW
Type: =
Purpose: This equation defines the mass of CO2 in the lower ocean layer in period t, as a
function of the masses of CO2 in the three reservoirs at the previous milestoneyear and of
the CO2 emissions from previous to current milestoneyear.
Remarks:
• The coefficients governing this equation depend on the lengths of periods t and t-1,
and therefore require the computation of intermediate quantities. We follow the
TIMES convention that each period t is represented by its milestone year m(t), situated
at or near the middle of the period. This explains the fact that the concentration at
period t depends on emissions at periods t-1 and t.
• The corresponding equations of the RICE-99 model are simpler for two reasons: first,
RICE has constant period length, and second, in RICE, the concentration variables
represent the first year of the period, rather than the middle year as in TIMES.
Equation:
313
EQ _ CO 2 LOWt ∋ ( t ∈ MODELYEARS ) ∧ ( t ≠ 1) :
− VAR _ CO 2 LOW ( t )
+ A31 × VAR _ CO 2 ATM ( t − 1)
+ A32 × VAR _ CO 2UP ( t − 1)
+ A33 × VAR _ CO 2 LOW ( t − 1)
+ BB31 × VAR _ CO 2TOT ( t )
+ CC 31 × VAR _ CO 2TOT ( t − 1)
=0
EQ _ CO 2 LOWt ∋ ( t = 1)
VAR _ CO 2 LO ( t ) = CO 2 LOW _ 0
where :
(
BB31 is the third coefficient of the first column of matrix : BB = PHI + PHI 2 + + PHI p
)
CC 31 is the third coefficient of the first column of matrix : CC = (PHI p +1
+ + PHI n
)
p is equal to D(t)/2
D( t ) is the number of years in period t
n is equal to y(t)-y(t-1 ) , also equal to D(t)/ 2 + D(t − 1 )/ 2
y( t ) is the milestone year of period t
x denotes the smallest integer larger than or equal to x
x denotes the largest integer smaller than or equal to x
Remark: The three concentration equations may be written as a single vector
equation, as follows, using the notation described above:
VAR _ CO 21ATM ( t ) VAR _ CO 21ATM ( t − 1) VAR _ CO 2TOT ( t ) VAR _ CO 2TOT ( t − 1)
− VAR _ CO 2UP ( t ) + PHI n • VAR _ CO 2UP ( t − 1) + BB • 0 + CC • 0 =0
VAR _ CO 2 LOW ( t ) VAR _ CO 2 LOW ( t − 1) 0 0
It is interesting to compare this to the RICE-99 vector equation (Nordhaus and Boyer,
1999), which writes:
314
7.4.5 Equation: EQ_MXCONC
Type: ≤
Equation:
EQ _ CO 2 MXCONC t ∋ ( t ∈ MODELYEARS )
where MAXCO 2( t ) is a user defined trajectory of maximum allowable atmospheric concentration values (GtC)
315
7.5 Reporting Parameters
7.5.1 DT_FORC
Purpose: This reporting parameter defines the total increase in radiative forcing due to
anthropogenic gases in the atmosphere, relative to pre-industrial times. It decomposes
into two main terms: forcing due to CO2 concentration (which is endogenous in TIMES),
and forcing due to other sources (which is considered exogenous in TIMES).
Expression
DT _ FORCt ∋ (t ∈ MODELYEARS )
DT _ FORC (t )
=
GAMMA VAR _ CO 2 ATM (t )
+ • ln
ln 2 CO 2 _ PREIND
+ EXOFORC (t )
where :
GAMMA is the forcing sensitivity to a doubling in atmospheric CO2 concentration
CO2 _ PREIND is the mass of atmospheric CO2 at pre - industrial times
EXOFORC(t) is the contribution of sources other than CO2 to the change in forcing at period t
316
7.5.2 DT_ATM
DT _ TATM (t )
=
+ DD11 × DT _ TATM (t − 1)
+ DD12 × DT _ TLOW (t − 1)
+ EE11 × SIGMA1 × DT _ FORC (t )
+ FF11 × SIGMA1 × DT _ FORC (t − 1)
DT_ATM t ∋ (t = 1)
DT _ TATM (t ) = DT _ TATM _ 0
where :
DD11 is the first element of the first row of the 2 × 2 matrix DD = SIG n
DD12 is the second element of the first row of the 2 × 2 matrix DD = SIG n
1 / SIGMA1 is the one - year thermal capacity coefficient of the atmospheric layer
1/SIGMA3 is the one - year temperature transfer rate from atmospheric layer to the lower ocean layer
SIGMA3 is the (dimensionless) ratio of the thermal capacity of the lower ocean layer to the transfer rate
from atmospheric to lower ocean layer
LAMBDA is a parameter representing the equilibrium impact of atmospheric CO2 concentration doubling
on global atmospheric temperature. Note that if Cs represents the sensitivity of global temperature to a doubling
in CO2 concentration, the following relationship holds : LAMBDA = GAMMA / Cs
EE11 is the first element of the first column of the 2 × 2 matrix EE = SIG + SIG 2 + + SIG p
FF11 is the first element of the first column of the 2 × 2 matriix FF = SIG p +1 + SIG p + 2 + + SIG n
p, n as defined in the concentration equations
317
7.5.3 DT_LOW
DT _ LOWt ∋ (t ∈ MODELYEARS ) ∧ (t ≠ 1)
DT _ LOW (t )
=
+ DD21 × DT _ TATM (t − 1)
+ DD22 × DT _ TLOW (t − 1)
+ EE 21 × SIGMA1 × DT _ FORC (t )
+ FF 21 × SIGMA1 × DT _ FORC (t − 1)
DT _ LOWt ∋ (t = 1)
DT _ TLOW (t ) = DT _ TLOW _ 0
where :
DD21 is the first element of the second row of the 2 × 2 matrix DD = SIG n
DD22 is the second element of the second row of the 2 × 2 matrix DD = SIG n
1 / SIGMA1 is the one - year thermal capacity coefficient of the atmospheric layer
1/SIGMA3 is the one - year temperature transfer rate from atmospheric layer to the lower ocean layer
SIGMA3 is the (dimensionless) ratio of the thermal capacity of the lower ocean layer to the transfer rate
from atmospheric to lower ocean layer
LAMBDA is a parameter representing the equilibrium impact of atmospheric CO2 concentration doubling
on global atmospheric temperature. Note that if Cs represents the sensitivity of global temperature to a doubling
in CO2 concentration, the following relationship holds : LAMBDA = GAMMA / Cs
EE 21 is the second element of the first column of the 2 × 2 matrix EE = SIG + SIG 2 + + SIG p
FF 21 is the second element of the first column of the 2 × 2 matriix FF = SIG p +1 + SIG p + 2 + + SIG n
p, n as defined in the concentration equations
318
Remark: The two temperature change eexpressions may be written as a single vector
equation, as follows, using the notation described above:
−
DT _ TATM ( t ) + SIG n • DT _ TATM ( t − 1) + SIGMA1 × EE • DT _ FORC ( t ) + SIGMA1 × FF DT _ FORC ( t ) = 0
DT _ TLOW ( t ) DT _ TLOW ( t − 1) 0 0
−
DT _ TATM (t ) + SIG10 • DT _ TATM (t − 1) + SIGMA1 × DT _ FORC (t − 1) = 0
DT _ TLOW (t ) DT _ TLOW (t − 1) 0
319
7.6 Default values of the climate parameters
Table 7.1 shows the assumed values of all parameters of the Climate Module except
exogenous forcing.
Table 7.1. Parameters of the climatic module (default values) (GAMS notation)
Parameter Default value
Important Note : The last 6 parameters are given for year 1995. Users whose starting
milestone year is different from 1995 must provide appropriate values.
Nordhaus and Boyer use the following formula to calculate the radiative forcing due to
all GHG’s except CO2. In the case of the TIMES global model, the energy related
methane and N2O emissions are already accounted for in the calculation of CO2
equivalent emissions. Therefore, the formula below constitutes an upper bound for the
radiative forcing due to other gases.
In Nordhaus and Boyer (1999), the forcings of other GHGs (CFCs, CH4, N2O,
ozone), and from aerosols are considered to be exogenous. Some of these gases are
poorly understood. Moreover, some of them are controlled by non-climate policies (e.g.
CFC’s, ozone, aerosols). These values are inspired by the MAGICC model (Wigley et al.,
1994). The IPCC TAR (2001) provides estimated ranges of the forcing of non-CO2
GHGs in 1998 (chapter 6) as well as simplified equations (Table 6.2, p.358, chapter 6).
However, no average value is provided for several of the gases, which makes it difficult
to compare the exogenous forcing proposed by Nordhaus and Boyer (1999) to these
updated estimations.
320
7.7 GAMS implementation
All required GAMS modules have been added to the code. The Climate Module is
implemented as a TIMES extension module, which is a modular way of adding code to
the standard TIMES code. The Climate Module is activated by adding the 'short name' of
the climate extension (namely: CLI) to the arguments of the call for initmty.mod. Thus,
the Climate Module is activated by the following call statement in the run file:
All the required climate parameters must also be specified, as explained in section
2.1, and the climate results are made available to the VEDA-BE report generator as
explained in section 2.4.
All parameters are also available from the VEDA-FE shell, where they may be
modified. The Appendix to chapter 2 shows the excel template used by VEDA to initially
import the parameter values. Thereafter, these values may be modified via the VEDA-FE
browser. If this is done, the modified value override the hard coded default values (if
any).
All parameter names have a prefix CM_ in the GAMS program. They are discussed in
four groups below:
321
2. The parameters CM_EXOFORC and CM_MAXCO2C are identical to those
described in chapter 1. CM_EXOFORC is automatically and CM_MAXCO2C
optionally interpolated and extrapolated.
3. The parameter CM_HISTORY is used for the calibration values. To improve
independence of data from model years, a year index is also included in this
parameter. The set CM_HISTS includes the quantity types for which the
calibration values are to be given:
PARAMETER CM_CONST(*) /
GAMMA 4.1
PHI-UP-AT 0.0495
PHI-AT-UP 0.0453
PHI-LO-UP 0.00053
PHI-UP-LO 0.0146
LAMBDA 1.41
SIGMA1 0.024
SIGMA2 0.44
SIGMA3 0.002
CO2-PREIND 596.4
/;
User-provided values (via the shell) will automatically override the hard-coded
default values shown above.
Internal parameters
These are equivalent to those used in writing the equations and reporting parameters
in Chapter 1. An additional internal parameter CM_DEFAULT is used to store the
default values for the calibration quantities (see INITMTY.CLI).
322
Reporting parameters
These reporting parameters correspond to the same ones in chapter 1, with the
adjonction of the prefix CM_
These variables are equivalent to those described in Richard’s document. However, the
reporting parameters described above replace the variables VAR_FORCING(t),
VAR_DELTAT_ATM(t), and VAR_DELTAT_LOW(t) in Richard’s document.
7.7.3 Equations
The equation EQ_CO2TOT(T) has been added (it is not included in chapter 1’s
description of equations). It combines all regional CO2 emissions into the variable
VAR_CO2TOT(t). All the other four equations are equivalent to those described in
chapter 1.
In addition, the mass balance equations can be calibrated for the first period by using
two approaches, of which the default is equivalent to the method described in chapter 1.
In the alternative calibration approach calibration values for the year B(MIYR_1) are
used instead of values for the milestone year. The alternative approach can be activated
by using the following setting in the run-file:
$SET CM_CALIB B
The equations 3.4, 3.5 and 3.6 have been replaced by parameter calculations, which
are done in the file RPT_EXT.CLI.
323
7.7.4 Example of use
Because all the constants and calibration values have hard-coded default values, you
can test the implementation in a very simple way. Just add into your data specification
the conversion factors from CO2 commodities to the amount of CO2 in GtC. For
example, if CO2 emissions are described by a commodity named ‘CO2SUM’ in region
‘REG’ and are expressed in Mt CO2, add the following parameter instance to your dd-file
(or directly into the run-file):
PARAMETER CM_CO2GTC /
REG.CO2SUM 0.0002727273
/;
Moreover, because the current implementation of the Climate Module has been
implemented as an extension module, the CLI extension module needs to be activated
e.g. by adding a CLI argument to the call of initmty.mod in the run file, as follows:
$ SET CM_CALIB B
For reporting the results of the climate module the following attributes have been
added and appear in VEDA_BE:
324
Since these attributes are only created by the model when the climate module
extension CLI is used, a special vdd file, called times2veda_clim.vdd has to be applied in
connection with gdx2veda.
325