You are on page 1of 346

# MESSAGE

## Model for Energy Supply Strategy Alternatives

and their General Environmental Impacts

User Manual

(DRAFT)

## International Atomic Energy Agency

June 2007

Chapter 1 Introduction
Chapter 2 User’s Guide for Running the MESSAGE Software
Chapter 3 Database Management
Chapter 4 Optimization of the Model and the Intermediate Results
Chapter 5 Extracting the Results in the MESSAGE

## Annexure A Mathematical formulation of MESSAGE

Annexure B Modelling of Combined Heat and electricity Production
Annexure C Nuclear Fuel Cycle Modeling Using MESSAGE
Chapter 1

CHAPTER ONE____________________________________________________________ 1
Introduction _____________________________________________________________ 1
1.1. Model Overview_____________________________________________________ 1
1.1.1. Energy Flows: Energy Carriers and Technologies _______________________ 1
1.1.2. Demand Fluctuations: the Load Curve ________________________________ 4
1.1.3. Capacities and Investments on Technologies ___________________________ 4
1.1.4. The Limits and Bounds on Technologies ______________________________ 4
1.1.5. Absolute and Dynamic Limits_______________________________________ 5
1.1.6. The Relations/Constraints __________________________________________ 5
1.1.7. The Time Horizon ________________________________________________ 5
1.1.8. The Optimization Criterion _________________________________________ 5
1.2. MESSAGE Software _________________________________________________ 6

## FIG. 1.1. Schematic Presentation of Some Energy Chains____________________________ 3

FIG. 1.2. Interrelationship between MESSAGE components. _________________________ 6
Chapter 1-1

CHAPTER ONE

Introduction

MESSAGE (Model for Energy Supply Strategy Alternatives and their General Environmental
Impacts) is software designed for setting up models of energy systems (i.e. energy supplies
and utilization) for optimization. MESSAGE was originally developed at International
Institute for Applied Systems Analysis (IIASA). The IAEA acquired latest version of
MESSAGE and several enhancements have been made in it, most importantly addition of a
user-interface to facilitate its application.

## The underlying principle of a model, built using the MESSAGE, is optimization of an

objective function under a set of constraints that define the feasible region containing all
possible solutions of the problem. The value of the objective function helps to choose the
solution considered best according to the criteria specified. In general categorization, models
built using the MESSAGE belong to the class of mixed integer programming models as they
may contain some integer variables. A set of standards solvers (e.g. glpk and cplex) can be
used to solve these models.

This manual describes the operational aspects of the MESSAGE software in which a model is
called a case study. Therefore, through out this manual, the phrases of “a model” and “a case
study” are synonymous. Furthermore, the MESSAGE can be used to develop a model of a
system other than energy system. The main objective of developing the MESSAGE software,
however, was to facilitate building of an energy system model. Therefore, through out this
manual energy system models are referred.

An energy model is designed to formulate and evaluate alternative energy supply strategies
consonant with the user-defined constraints such as limits on new investment, fuel availability
and trade, environmental regulations and market penetration rates for new technologies.
Environmental aspects can be analysed by accounting, and if necessary limiting, the amounts
of pollutants emitted by various technologies at various steps in energy supplies. This helps to
evaluate the impact of environmental regulations on energy system development.

## 1.1. Model Overview

The following subsections discuss the major building blocks for constructing a model/case
study in the MESSAGE.
1.1.1. Energy Flows: Energy Carriers and Technologies

In first approximation a model, built using the MESSAGE, could be labelled a physical flow
model. Given a vector of demands for specified energy goods or services, it assures sufficient
supply, utilizing the technologies and resources considered. MESSAGE allows modelling of
all steps in the energy flows from supply to demand, which is generally referred to as energy
chain and steps are called levels. Fig 1.1 shows the schematic representation of some energy
chains.

The backbone of the MESSAGE is a flexible framework that allows detailed description of
the energy system being modelled. This includes the definition of i) energy forms at each
level of energy chains, ii) technologies that are producing or using these energy forms, and
Chapter 1-2

iii) the energy resources. The energy forms and technologies can be defined for all steps of
energy chains.

Defining of energy forms includes identification of the levels in the energy chain starting
from the demand to the resources (e.g. useful, final and primary), the energy forms
(commodities) actually used (e.g. coal and district heat), as well as energy services (e.g. space
heat or hot water). Energy demand data, exogenous to the model, is given at the first level of
each energy chain and the model computes demands at the following levels of the chain up to
the energy resource level, as desired.
Chapter 1-3

## Coal Power Coal Coal Ind.

Plant Transport&
Coal
Extraction Distribution
Oil Ind.

Gas Power
Plant Gas Ind
Oil Transport&
Distribution

Residentail/Commercial Electricity
Elec. Ind.

Residential/Commercial Heat
Oil Power
Plant

Industrial Electricity
Coal Resources

Industrial Heat
Primary Coal

Primary Gas

District Heat

District Heat
Gas
Primary Oil

Coal R/C.

Electricity

Electricity

Transport
Hydro Power Transport&

Coal

Coal
Gas

Gas
Oil

Oil
Plant Distribution
Oil R/C
Oil Import
Electricity
Oil Heating Transport& Gas R/C
Plant Distribution

DH R/C
Gas Import
District Heat
Cogeneration Transport&
Distribution Elec. R/C

Oil Trp

## FIG. 1.1. Schematic Presentation of Some Energy Chains

Chapter 1-4

Technologies are defined by their inputs and outputs, their efficiency and degree of variability
if more than one input (output) is used (produced) for defining the possible production pattern
for some technologies such as a refinery or a pass-out-turbine. The MESSAGE also allows
operation of a technology in alternative modes such as a dual fired power plant that can be run
on gas or alternatively on heavy oil. Operation of technology is referred to as its activity, and
the user can define more than one activity of a technology for a mode of operation such as
generation of electricity and production of heat. A ratio of the main output of the main
activity to the main output of the alternative activity is defined to model relation between the
activities.

## 1.1.2. Demand Fluctuations: the Load Curve

For some energy carriers the timely availability causes considerable cost and management
efforts. Electricity has to be provided by the utility at exactly the same time it is consumed.
MESSAGE allows modelling and simulation of this situation by providing option to
subdivide each year into a number of parts, which are generally referred to “load regions”.
The parts of the year aggregated into one load region can be chosen according to different
criteria: just sorted according to the power requirements or aggregation of various typical
parts of the year for example representation of all days of summer by a typical summer day.
The MESSAGE calculates the load curves from the definition of these load regions and
distribution of the annual demand in these regions. Inclusion of load curves improves the
representation of power requirements and the utilization/building of different types of power
energy storage (e.g., transfer of energy from night to day, from summer to winter).

## The MESSAGE allows accounting of existing capacities of different technologies. In the

optimization process, the model computes the new capacity requirement taking into account
the exiting capacities and their retirement time. This modelling of the existing system
enhances the amount and quality of obtainable information considerably. By knowing the
investment requirement for additional capacity building, one can assess the effects of the
energy sector’s development on the economy.

The investment requirements can be distributed over the construction time of the plant and
they can be subdivided into different categories to allow accounting for the requirements from
some important industrial and commercial sectors. Furthermore, the MESSAGE allows
accounting of the needs for basic materials during construction of a technology as well as the
utilization of non-energetic inputs during the operation of a plant, for keeping track of the
industrial branches they originate from in monetary terms or just accumulating the needs in
physical units.

## 1.1.4. The Limits and Bounds on Technologies

The user can put limit or bound on an energy resource or a technology ⎯ such as maximum
capacity that can be built on a technology, or maximum and minimum levels of output from a
technology. There is variety of limits and bounds that can be defined on capacity building of
technologies and resources. Furthermore, there is a set of limits/bounds that can be defined
for variables related to activity of a technology i.e. its input, output and fuel inventory. If a
technology has more than one activity, limits and bounds can be defined on technology
Chapter 1-5

variables of each activity. Furthermore, a global limit on all activities of a technology can also
be defined.
1.1.5. Absolute and Dynamic Limits

The values of limits and bounds on technologies and resources can be given in absolute terms
or in the growth rate form. The development of an energy system over time can be more or
less predefined if relative or absolute limits for certain energy carriers or technologies are
given. But additionally MESSAGE gives the possibility to introduce maximal or minimal
growth (or decline) rates for the installation of new technologies and for the use of domestic
and imported resources. This allows predefining a range of variability of the system over
time, the MESSAGE dynamically chooses an optimal strategy within the range.

## 1.1.6. The Relations/Constraints

The most powerful feature of the MESSAGE is modelling of relationships between the
technologies or between technologies and resources. The model provides a flexible
framework to define various types of relationships such as:
i) limit on a technology in relation to some other technologies (e.g., a maximum share of
wind energy in total electricity generation),
ii) a common limit to be met by a set of technologies (e.g., maximum limit on emission of
SO2 from all technologies emitting it; given in millions tons of SO2),
iii) constraints between production and installed capacity (e.g., ensure take-or-pay clauses
in international gas contracts forcing customers to consume a minimum share of the
contracted level during summer months).
These relations/constraints are tools for modelling a specific strategy for development of
the energy system.
1.1.7. The Time Horizon

The time horizon of a case study has to be chosen according to the problem; it could be long
as well as short term. Even a model’s application for a single point in time could give
valuable results for complex problems. The time horizon of a case study is defined by the
interval between the user’s selected base year and the terminal year. This time horizon of a
case study is divided into periods, each of which is represented by a year which is referred to
as a model year. The length of periods (i.e. interval between the model years) is defined by
the user and can vary for different periods.

## 1.1.8. The Optimization Criterion

By default, minimization of the total system costs is the criterion used for optimisation of the
model developed using the MESSAGE. The total system cost includes investment costs,
operation cost and any additional penalty costs defined for the limits, bounds and constraints
on relations. For all costs occurring at later points in time, the present value is calculated by
discounting them to the base year of the case study. The sum of the discounted costs is used to
find the optimal solution.

Discounting makes the costs occurring in different points in time comparable; the discount
rate defines the weights different periods get in the optimization. In principle, it should be
equal to the long-term real interest rate, i.e. excluding inflation or any other opportunity costs.
A high discount rate gives more weight or importance to present expenditures than to future
Chapter 1-6

ones, while a low discount rate reduces these differences and thus favours technologies that
have high investment cost but low operation costs.

## 1.2. MESSAGE Software

The current version of the MESSAGE software consists of the following components.

• Databases.

## • An Optimization program called “opts”.

• A program for the post processing of the solution for extraction of results called “cap”.

Fig. 1.2 shows the flow of control and information between these components in execution of
the MESSAGE program. The user interface provides a set of windows to build a model and
preparation of its database. It also provides windows to run the mxg, opt and cap programs.
The mxg program uses the database to generate a matrix of the model which is solved by the
selected solver in the opt program. The cap program uses the solution file of the opt program
and prepares the results in a standard format covering some selected parts of the solution. The
user interface provides windows for extraction of these results. It also provides a window for
extraction of the other parts of the solution as selected by the user. In this window the user
can further process the extracted results to get the final output in the desired form.

User-Interface

## FIG. 1.2. Interrelationship between MESSAGE components.

Chapter 2– i

CHAPTER TWO...................................................................................................................... 1
USER’S GUIDE FOR RUNNING THE MESSAGE SOFTWARE ..................................................... 1
2.1. Installation of Software ............................................................................................... 1
2.2. Getting Started ............................................................................................................ 5
2.3. Management of Case Studies ...................................................................................... 8
2.3.1. Opening a Case Study to Work on....................................................................................8
2.3.2. Creating a New Case Study...............................................................................................10
2.3.3. Copying an Existing Case Study ......................................................................................14
2.3.4. Back-up of a Case Study....................................................................................................19
2.3.5. Restore a Case Study..........................................................................................................20
2.3.6. Delete a Case Study............................................................................................................21
2.3.7. Saving and Closing of a Case Study.................................................................................22
2.3.8. Setting up Some Parameters for Execution of the Program .......................................22
2.3.9. Default Units ......................................................................................................................24
2.3.10. Change Instance ...............................................................................................................25
2.3.11. Edit Instance Defaults.....................................................................................................27
2.3.12. Create New Instance .......................................................................................................31
2.4. Management of Scenarios in a Case Study ............................................................... 32
2.5. Help Command.......................................................................................................... 35

List of Figures

## FIG. I.1. Window for Installation of MESSAGE Program......................................................... 2

FIG. I.2. Window Showing License Agreement of MESSAGE Program. .................................. 2
FIG. I.3. User Name for Installation of MESSAGE Program.................................................... 3
FIG. I.4. Folder to Install MESSAGE Program......................................................................... 3
FIG. I.4a. Error in Defining of Folder to Install MESSAGE Program. .................................... 4
FIG. I.5. Options for Installation of MESSAGE Program. ........................................................ 4
FIG. I.6. Folder to Create Shortcut for MESSAGE Program.................................................... 5
FIG. 2.1. Background Window of the MESSAGE Program..................................................... 6
FIG. 2.1a. Main Window of the User Interface of the MESSAGE Program. ............................ 6
FIG. 2.2. Window for Management of Case Studies................................................................ 7
FIG. 2.3a. Window to Select a Single-region Case Study for Opening ..................................... 9
FIG. 2.3b. Window to Select a Multi-region Case Study for Opening....................................... 9
FIG. 2.4. Window to Get the Options for Creating a New Case Study.................................. 10
FIG. 2.5. Window to Create a Single-region Case Study from Scratch................................. 11
FIG. 2.6. Window to Select tdb for a New Single-region Case Study.................................... 12
FIG. 2.7. Window to Create a Multi-region Case Study from Scratch. ................................. 13
FIG. 2.7a. Window to Select tdb for Main Region of a Multi-region Case Study. .................. 13
FIG. 2.7b. Window to Create a Sub Region in a Multi-region Case Study. ............................ 14
FIG. 2.8. Window to Create a New Case Study by Copying.................................................. 15
FIG. 2.9. Window to Select an Existing Case Study for Copying. ......................................... 16
FIG. 2.10. Window to Create a Multi-region Case Study by Copying an existing Multi-
regional Study. ......................................................................................................................... 17
FIG. 2.11. Window to Copy Existing Case-studies into a Multi-region Case Study. ............. 18
FIG. 2.11a. Window to Copy Existing Case-studies into a Multi-region Case Study ............. 18
FIG. 2.12. Window for Selecting Case Studies to Make Backup. ........................................... 19
FIG. 2.13. Window for Selecting a Place for Saving Backup File.......................................... 20
Chapter 2– ii

FIG. 2.13a. Window for Network Selection to Save a Backup File. ........................................ 20
FIG. 2.14. Window for Selection of Case Studies to Restore.................................................. 21
FIG. 2.15. Window to Select a Case Study for Deleting. ........................................................ 22
FIG. 2.16. Window for Settings............................................................................................... 23
FIG. 2.17. Data Fields Showing Labels.................................................................................. 24
FIG. 2.18. Window to See the Default Data Types. ................................................................ 25
FIG. 2.19. Window for Setting Environment........................................................................... 26
FIG. 2.19a. Window for Saving Environment Variables in an Other File. ............................. 26
FIG. 2.19b. The Default Environment File (.msguric)............................................................. 27
FIG. 2.20. Window to Edit Instance Defaults. ........................................................................ 27
FIG. 2.20a. Window to Edit/Define Default Values for Some Data Entities. .......................... 28
FIG. 2.20b. Window for Changing the Tdb.............................................................................. 29
FIG. 2.21. Window Showing Names and Paths of Programs. ................................................. 29
FIG. 2.22. Window Showing Default Paths of All Directories. .............................................. 30
FIG. 2.23. Window Showing Directories of All Exisiting Case Studie. .................................. 30
FIG. 2.24. Window for Management of Case Studies............................................................. 31
FIG. 2.24a. Window to Create New Instance. ......................................................................... 31
FIG. 2.25. Window for Scenario Management. ...................................................................... 32
FIG. 2.26. Window to Create a New Scenario by Copying. ................................................... 33
FIG. 2.27. Window to Create an Empty Scenario................................................................... 33
FIG. 2.28. Window to Select a Scenario for Deleting............................................................. 34
FIG. 2.29. Window Showing Help Option. ............................................................................. 35
FIG. 2.30. Window Showing toDo Option. ............................................................................. 36
Chapter 2– 1

CHAPTER TWO

## The MESSAGE software provides a user-friendly environment for developing models of an

energy system, preparation of its input databases, computation of the model and preparation
of the reports. A case study is a framework in which a model of an energy system is
developed and computed under a set of assumptions referred to as a scenario. This chapter
discusses installation procedure of the MESSAGE software and management of case studies
and scenarios in it.

## 2.1. Installation of Software

The MESSAGE can be installed in the MS Windows 2000/XP operating system or later
versions. The user installing MESSAGE should have the right to create a new directory. The
CD-ROM for MESSAGE software contains an application file “MESSAGE_setup.exe” and a
pdf file of this manual?.
Running of the application file opens a window to install the MESSAGE software (Fig. I.1).
As instructed in this window, the user should close all other windows and make sure that no
other program is running at the installation time. The next window (Fig. I.2) shows the
License agreement and the user has to agree on the given terms and conditions to proceed
with the installation. The next window (Fig. I.3) gives two fields to enter the user name and
the company name.
To put the MESSAGE software on a system, the installation program suggests a sub-folder
named MESSAGE_V, in the folder for Programs (Fig. I.4). However, the user can edit/enter
name of the folder and the path to install MESSAGE in some other location. Alternatively,
the user can click on the change button and the program opens a window to select a location
for MESSAGE installation. In selection of another folder, the user should make sure that i)
the folder-name does not contain any blank character and ii) the selected folder has sufficient
space to install MESSAGE. The installation program gives the space required and the space
available on the selected drive (Fig. I.4). The program gives an error message if the path name
is not correct or the folder name contains a blank character. For example, selection of
“Program Files” will give an error message because of the blank character (Fig. I.4a).
There are three options to install the MESSAGE software (Fig. I.5): The first option (Full) is
to install the software from the scratch. This option is used if MESSAGE is being installed for
the first time on a machine or the existing installation is being replaced completely. In the
later case, the first option will delete all the work previously done.
The second option is given to update the existing MESSAGE installation keeping the work
done earlier (model developed and setting made) using the previous version. However, to
make sure that the problem of incompatibility does not arise, between the new version and the
models developed using the earlier version, the user may like to install the program on
another drive or in a different folder and run all his/her models on the new version before
updating the existing version using the second option.
The third option is to install help which enables the user to open the electronic file of this user
manual while using the MESSAGE program. This file is also given outside the software if the
user wants to read the manual before installing the package.
Chapter 2– 2

Chapter 2– 3

Chapter 2– 4

## FIG. I.5. Options for Installation of MESSAGE Program.

Chapter 2– 5

By default, the shortcut folder is made in the IAEA program group (Fig. I.6) but the user can
also select another group. MESSAGE can be installed either for the current user only, who is
installing MESSAGE, or for all users of that machine. However, the MESSAGE should not
be installed on a network, to allow multiple-user at the same time, as it will not work
properly.
The installation program creates four folders in the MESSAGE_V folder (message_bin,
message_doc, message_help and models). The user works with this setting of the sub-folders
most of the time. Only, some advance users may some time like to change this setting. In
Chapter 2 of this manual, Sub-sections 2.3.10 to 2.3.12 discuss commands to do so.
The installation program also set the command to uninstall MESSAGE. The user can see this
“Uninstall MESSAGE-V” command in the side menu of the IAEA program folder or the
other program folder in which the shortcut is installed (a click on the Start button of the
operating system the program groups). It is recommended that the user makes back up of their
models/case studies and uninstalls MESSAGE if s/he wants to install MESSAGE again in the
machine for any reason.

## 2.2. Getting Started

On the Icon of the MESSAGE program, a double click opens two windows. The first window
(Fig. 2.1) is the commands window for the MESSAGE software, and the second one is the
main window to start the user interface for working in the interactive mode (Fig. 2.1a). The
first window remains in the background during execution of the MESSAGE program and is
closed when the user exits from the program.
Chapter 2– 6

## FIG. 2.1. Background Window of the MESSAGE Program.

The second window, that provides the user interface, is called the main window (Fig. 2.1a) as
all major commands to run the program are initiated from the menu bar given in this window.

FIG. 2.1a. Main Window of the User Interface of the MESSAGE Program.

To start with, this window shows name of the user and a menu bar on which Cases and Help
commands are active (Fig. 2.1a). The following paragraphs discuss the Cases command while
Section 2.5 discuses the Help command.

The Cases command is used for opening, creating, copying, making backing up, restoring,
and deleting of case studies. It is also used for selecting a set of additional tools required to
Chapter 2– 7

run with the program. The rest of the commands of the main menu remain disabled unless a
case study is opened to work on a model.

## FIG. 2.2. Window for Management of Case Studies.

A Click on the Cases command drops down a menu (see Fig. 2.2). This menu provides the
followings options to select one (i.e. a click on it).

Open to open one of the existing case studies, which include case studies given
with the MESSAGE program as examples and case studies already created
by the user.

## New to create a new single region or multiple region case study.

Copy to copy an existing case study for creation of a new case study.

## Backup to save case studies in a condensed form.

Restore to restore a case study from its backup file (i.e. the condensed form).

Delete to delete one of the existing case studies from the system.

## Settings to choose the environment for execution of the program.

Default units to get the list of all input data fields defined in the MESSAGE model and
units of measurement of the input variables set by default.

Change instance to change the default directories for case studies, MESSAGE profile,
MESSAGE program and its executable file, the user name and a file
containing all these information.
Chapter 2– 8

## Edit instance defaults:

defaults: Default parameters like discount rate, base-year and steps are given
for a new scenario.

## glob.dir: It shows a table which has information about important directories

and files used for Message.

## default def: It has information about optimizer, editor, holiday etc.

mms pro: It keeps the list of files along with path about different cases to see
the detail of their related files.

Create new instance: This feature is used to change the directory for storing the models;
the program creates a new directory instantly in some given path to
save the models.

window.

## 2.3. Management of Case Studies

The program allows the users to build various models, each referred to as a case study,
therefore the starting point for running the program is management of the case studies i.e.
opening, creating, copying and deleting of the case studies. This section discusses set of
windows for management of case studies.

## The program allows building of multi-regions model. A multi-region model comprises of

model for one main region and model/s for sub-region/s. The program keeps each model in a
separate case study and accordingly one database file for each model. There are some
differences in opening and creation of the single- and multi-region studies. Sub-sections
2.3.1a and 2.3.2a discuss these operations for a single-region study, respectively, while Sub-
section 2.3.1b and 2.3.2b discuss opening and creating of a multi-region study, respectively.

## (a) Single-region study

On the dropdown menu of the Cases command in the main window (Fig. 2.2), a click on
Open gives the list of all the existing case studies (see Fig. 2.3a). A click on one of the names
(followed by a click on the Ok button) opens a case study to work on. The program shows
name of the case study in the centre of the main window form beside the Case study title and
also in title of the Message window.

For each case study, the program keeps a database file called its adb, and database files for
alternative scenarios in a case study are called ldbs (see Chapter 3 for details). After opening a
case study, the user can work on its databases or can create /compute a scenario. For a new
case study, it is appropriate to work on its adb rather than creating a scenario and working on
an ldb. As the user opens a case study, a few new commands appear in the dropdown list of
Chapter 2– 9

the Cases command for management of scenarios (see Section 2.4), saving and closing of the
selected case study (Sub-section 2.3.6).

## (b) Multi-region Case Study

On the dropdown menu of the Cases command in the main window (Fig. 2.2), a click on
Open gives the list of all the existing case studies (see Fig. 2.3a). For a multi-region study, a
click on its name gives a list of case studies for the main region and sub-regions (Fig. 2.3b).
The program always put name of the case study for the main region on top of this list. A click
on one of these names opens that case study. The program shows name of the case study in
the centre of the main window form beside the Case study title and also in title of the Message
window. If the user opens case study of a main-region, the program also shows names of case
studies of all its sub-regions within brackets along with the main-region name in title of the
Message window.
Chapter 2– 10

## (a) Single-region study

There are two methods to create a new case study in the MESSAGE:
i) Creating a new case study from the scratch.
ii) Copying an existing case study.

On the dropdown menu of the Cases command, (see Fig. 2.4), New and Copy commands do
these functions. The section discusses the New command, while Sub-section 2.3.3 discusses
the Copy command. It may be noted that creation of a case study only adds the new case
study into the list of the existing case studies. The user needs to open this new case study to
work on it (see Para (a) in Sub-section 2.3.1).

FIG. 2.4. Window to Get the Options for Creating a New Case Study.

The program allows creation of a case study from the scratch i.e. creating a case study without
any data entities in the application database. On the dropdown menu of the Cases command, a
click on New gives two options (see Fig. 2.4). If a case study is open, the user needs to close
it to get the New command on the menu.

A click on the first option opens a new window (Fig. 2.5) to enter name of the case study, its
brief identification called synopsis and the technology database to be used with the case study.
The use can define a long name of a case study but it is highly recommended that at least first
8 characters of these names should not be the same.

Synopsis which is a brief name of a case study, and it is used for identification of the
study in other parts of the program. For example, the program automatically
adds this synopsis in names of all scenarios created in this case study.
Chapter 2– 11

tdb name which is name of a technology database (referred to as tdb). Initially, an empty
database is given for the user to prepare her/his own technology database (see
Chapter 3 for details). The user can create more than one tdb, and the program
gives the empty tdb or any other tdb available to the user to select one.

Description which is a brief introduction of the case study. It can also help in keeping
history of the new case study.

A click on arrow in the tdb name field opens a window (Fig. 2.6) that gives the list of
technical databases to select one. If the user does not create a tdb with a different name then
MESSAGE will always show only “empty” tdb. A click on it selects the tdb for the new case
study. The selected name appears in the tdb name field. The program creates the adb file of
the new case study and a default scenario named adb. After editing the adb (see Section 3.4 in
Chapter 3), the user can create alternative scenarios by copying the adb scenario.

## FIG. 2.5. Window to Create a Single-region Case Study from Scratch.

Chapter 2– 12

FIG. 2.6. Window to Select tdb for a New Single-region Case Study.

## (b) Multi-region study

In a multi-region study, the user models energy systems of two or more than two sub-regions,
and defines a main region to optimize these sub-regions simultaneously as one region. The
program considers main region as a case study and each of the sub-region also as an
independent case study. The user may optimize each case study for a sub-region
independently. For the main-region and each sub-region, in addition to the name of the case
study, the user needs to give the followings:

Synopsis which is brief name of a case study, and it is used for identification of the study
in other parts of the program. For example, the program automatically adds this
synopsis in names of all scenarios created in this case study.

tdb name which is name of a technology database (referred to as tdb). Initially, an empty
database is given for the user to prepare her/his own technology database (see
Chapter 3 for details).

## Description A brief description to keep history of the case study.

There are two methods to create a new multi-region case study in the MESSAGE:
i) Create a new case study from the scratch.
ii) Copy existing case studies.
On the dropdown menu of the Cases command, (see Fig. 2.4), New and Copy commands do
these functions. This section discusses the New command for a Multi-region case study and
Sub-section 2.3.3b discussed the copy command. It may be noted that creation of a case study
only adds the new case study into the list of the existing case studies. The user needs to open
this new case study to work on it (see Sub-section 2.3.1b)

On the side-menu of the New command (Fig. 2.4), a click on the second option opens a
window to create a multi-region study (Fig. 2.7). In this window, the user enters name of a
directory to be created for the new study, name of the case study of the main region, its
synopsis, and names of the case studies of sub-regions with identity codes separated by a
space.
Chapter 2– 13

## FIG. 2.7. Window to Create a Multi-region Case Study from Scratch.

After giving a name in the “sub-regions:” field, a press on Enter key shows a list of sub-
region names (Fig. 2.7). The user can then edit the field to give name of the next sub-region.

FIG. 2.7a. Window to Select tdb for Main Region of a Multi-region Case Study.
Chapter 2– 14

A click on Create button (Fig. 2.7) opens a window to enter synopsis, tdb name and
description of the main region (Fig. 2.7a). This window is similar to that given in Fig. 2.6.
The program opens a similar window for each sub-region (Fig. 2.7b). When the user
completes data entries for the main region (i.e. click on the OK button), the program opens the
window for the first sub-region (Fig. 2.7b). This process goes on till the last sub-region. This
procedure creates a directory for the multi-region study, and a set of sub-directories; one for
the main-region and one for each sub-region.
The multi-region case study is not created if the user clicks the Cancel button in the main-
region window (Fig. 2.7a). However, if the user clicks on Cancel button in any sub-region
window (Fig. 2.7b), case study of the main-region is created but case studies for sub-regions
will not be created.

## (a) Single-region study

To start with, the existing case studies in the MESSAGE program include only a few
prototype studies provided for demonstration purpose. However, every time a new case study
is created, the program adds it to the list of existing case studies.
On the dropdown menu of the Cases command (Fig. 2.4), a click on Copy command opens a
window to copy one of the existing case studies for creation of a new case study (please note
that the Copy command is not available if any case study is open). In this window (Fig. 2.8),
the first field is for selecting name of the existing case study to be copied. The second field is
to display name of the new case study, while the third and fourth fields are to enter synopsis
of the new case study and selection of tdb for it, respectively.
Chapter 2– 15

## FIG. 2.8. Window to Create a New Case Study by Copying.

A click on the arrow in the first field (Fig. 2.8) lists all the existing case studies to choose one
for copying. This list (see Fig. 2.9) shows all single- and multi-region case studies. In this list,
the first column shows S for the single-region studies and case studies of the sub-regions of
the multi-region studies (as explained before, there is an independent case study for each sub-
region). The first column shows M for the case studies of the main-regions in multi-region
studies. A click on one of the names selects that study for copying. If there is no multi-region
study in the existing case studies, the program gives only names of the case studies as shown
in Fig. 2.3a.

The user may install MESSAGE in two different directories in the same machine. At the end
of the list of case studies, “Other instance” is given to get the list of case studies in the other
MESSAGE installation (see Sub-section 2.3.11 on change instance and Sub-section 2.3.12 on
create a new instance).
Chapter 2– 16

## To create a single-region case study by copying, the user can select:

i) an existing single-region case study or
ii) a case study of a sub-region from an existing multi-region study.
On selection of a case study, the program opens a new window (Fig. 2.9a). In this window,
the user enters name of the new study in the first field, and the program considers that a
single-region case study is being created. On click of the Ok button, the program returns to
the copy window (Fig. 2.8), and the new name appears in the field of region name. The user
then continues with entering other information for the new study (i.e. synopsis, tdb and
description) as discussed in Sub-section 2.3.3a.

The second field in this window (Fig. 2.9a) is to copy an existing single-region case study to
add a sub-region in a multi-region study. Sub-section 2.3.3b discusses this option under
creating multi-region study using the copy command.

FIG. 2.9a. Window to Enter Name of the New Single-region Case Study.

For every case study, the program makes a default scenario (reported as adb scenario), which
is created when the case study is created. The program updates this scenario every time the
adb is modified. In the Scenarios field (Fig. 2.8), a click on the arrow gives names of all the
scenarios of the case study being copied including the adb scenario and a code of “all” to copy
all scenarios. The user can select a set of scenarios by choosing some of the scenarios from
the list while keeping the shift-button pressed. The program copies the data base files (i.e. adb
and ldbs) according to selection of scenarios. If the user wants to make many changes in the
new case study then it is better to copy only the adb scenario and edit the adb for the desired
changes. The user can then use that adb scenario for making alternative scenarios in the new
study. The last field in this window (Fig. 2.8) is to keep some notes on the new case study.

## (b) Multi-region study

The user can create a multi-region case study by copying the existing case study/studies in
two ways:
a) Copy from a multi-region study; main region and sub-regions, the whole set.
b) Copy a set of single-region studies to create a multi-region case study. The user creates
a new multi-region study then copies some other single-region studies into it as case
studies of sub-regions.
The following paragraphs discuss these two methods in the same order.
Chapter 2– 17

Fig. 2.10 shows the window to create a multi-region study by copying an existing multi-
region study. On the dropdown menu of the Cases command, a click on the copy command
(Fig. 2.4) opens the window to select a case study (Fig. 2.9). A click in the first field of this
window gives a list of the existing case studies for selection (Fig. 2.9). Selection of a case
study of a main region (i.e. a study name with M in the first column) opens the window given
in Fig. 2.10. The first field shows name of the selected multi-region study and its Main region.
The second field is for the user to enter name of the new multi-region study to be created. The
third row contains two fields. The coloured field shows the directory name of the existing
multi-region study, and the white field is for the user to give directory name of the new study.
Using the same pattern, the following row/rows give names of sub-regions in the existing
study and fields for the user to enter names of the sub-regions and their ids for the new study.
The synopsis field (Fig. 2.10) is to give synopsis of the new study and the last field shows the
options for copying scenarios of the existing study i.e. only adb scenario or All scenarios or
some selected scenarios. The program copies the data base files (i.e. adb and ldbs) according
to the selection of scenarios. If the user wants to make many changes in the new case study
then it is better to copy only the adb scenario and edit the adb for the desired changes. The
user can then use that adb scenario for making alternative scenarios in the new study. The last
field in this window (Fig. 2.10) is to keep some notes on the new case study.

## FIG. 2.10. Window to Create a Multi-region Case Study by Copying an existing

Multi-regional Study.

The user can create a multi-region study from a set of single-region studies. To start with, the
user creates a new Multi-region study (as discussed above in this section), and defines only
one dummy sub-region which s/he will delete later. To copy the existing single-region studies
into an existing multi-region study, on the dropdown menu, a click on the copy command
Chapter 2– 18

(Fig. 2.4) opens the copy window (Fig. 2.8). A click on the arrow in the first field in this
window gives list of all exiting case studies (Fig. 2.9). On this list, all single-region studies
have S in column 1. A click on a single-region study selects it and the program opens a
window to select the destination case study (Fig. 2.11).
In the second field labelled as “sub region to:”, the dropdown list shows all the existing multi-
region studies to choose from. On selection of a multi-region study, the program shows a field
(Fig. 2.11a) to give an identifier for the new region being created by copying another single-
case study. The program returns to the copy window (Fig. 2.8). In this window, the user gives
a name to new sub-region being created in a multi-regional study by copying another single-
case study.
In the copy window (Fig. 2.8), the user enters synopsis for the new sub-regional study and
selects scenarios from the existing study for copying i.e. only adb scenario or All scenarios or
some selected scenarios. The program copies the data base files (i.e. adb and ldbs) according
to the selection of scenarios. If the user wants to make many changes in the new case study
then it is better to copy only the adb scenario and edit the adb for the desired changes. The
user can then use that adb scenario for making alternative scenarios in the new study.

FIG. 2.11. Window to Copy Existing Case-studies into a Multi-region Case Study.

FIG. 2.11a. Window to Copy Existing Case-studies into a Multi-region Case Study
Chapter 2– 19

## 2.3.4. Back-up of a Case Study

The user can make a back-up of a case study to transfer it to another system or to make an
archive. In making back-up, the program adds all files of the case study into a zip file.
On the dropdown menu of the Cases command (Fig. 2.2), a click on Backup command opens
a window to show names of all existing case studies in a table (Fig. 2.12). The first column in
this table contains check boxes for selecting a case to make its back-up while the third column
contains check boxes to select the study for removing it from the system after making its
back-up.
The program gives M before names of all multi-region studies and click on the first check box
selects the case study of the main region as well as case studies of all sub-regions. The
program makes a single zip file and adds‘ _MR’ at the start of the name of the zip file.
Similarly a click on the check box after the name of the multi-region study selects the case
study of the main region as well as case studies of all its sub-regions to remove them from the
system i.e. removing the directory and the sub-directories created for the selected multi-region
study.

## FIG. 2.12. Window for Selecting Case Studies to Make Backup.

The program keeps a subdirectory, named “dumprest”, in the model’s directory for saving the
back-up files. The back-up window (Fig. 2.12) shows the name and path of this directory. By
default the program saves the back-up file in this special directory. However, the user can
select a new directory for saving the back-up file. A click on the browse button (see Fig. 2.12)
opens the window to select a drive and a directory on the selected drive for saving the back-up
file (Fig. 2.13). The user can also save the back-up file on a network. A click on the Network
button (Fig. 2.13) opens a window to select the drive and folder on the Network (Fig. 2.13a).
Chapter 2– 20

FIG. 2.13. Window for Selecting a Place for Saving Backup File.

## 2.3.5. Restore a Case Study

The user can retrieve a case study from its back-up file (see Sub-section 2.3.3). On the
dropdown menu of the Cases command (Fig. 2.2), a click on Restore opens a window to
select a case study for restoring (Fig. 2.14). This window gives names of all the case studies
for which back-up files are available. A click on a name of a case study selects it for restoring.
By default the program gives the list of back-up files from the special subdirectory i.e.
dumprest reserved for saving the back-up file in the model directory. However, the user can
look into the system to select any other directory.
Chapter 2– 21

## FIG. 2.14. Window for Selection of Case Studies to Restore.

2.3.6. Delete a Case Study
On the dropdown menu of the Cases command (see Fig. 2.2), a click on Delete opens a
window (Fig. 2.15) that gives a list of all existing case studies and two data fields. The
program shows name of a multi-region study with the name of the case study of the main
region as well as names of case studies of all its sub-regions. A click on a name selects the
case study for deleting, and the selected name appears in the first field. The program has the
following three options of deleting:
• Clean up to delete all the intermediate files (Chapter 4 discusses these files).
• Keep only data to delete all files except the input data files.
• Delete all to delete all files.
The second field in this window is to get these options, and to select one. In this window (Fig.
2.15), a click on the Test button opens a window showing what files will be deleted for the
selected option. Selection of an option, followed by a click on the Ok button, deletes/cleans
the selected case study. The background window of MESSAGE (Fig. 2.1a) shows files being
deleted.
Chapter 2– 22

## 2.3.7. Saving and Closing of a Case Study

On the dropdown menu of the Cases command, Save and Close commands appear when a
case study is open. The Save command is to save any changes made in the databases (tdb,
adb, ldb, upd). In the forms for editing of databases (see Chapter 3), a Save command also
appears under the Screen command but it saves any change made in a particular part of a
database temporarily in the memory only. The user needs to modify the data files (tdb, adb,
ldb, upd) by saving these changes through a click on the ‘Save’ command on the dropdown
menu of the Cases command. If the user does not save the data in the data files using this save
command and try to open the case study again, the program gives the message asking whether
the user wants to reload the data which indicates that the data in the database file is different
from the data in the memory saved through the save commands in the data forms. If the user
data from the file.
A click on the Close command closes the case study. However, if the user has not saved any
change made in the databases and only temporarily saved in the memory, the program opens a
window to inform that changes have not been saved in the data files. The user can then decide
whether he wants to modify the data files by saving the changes.

## 2.3.8. Setting up Some Parameters for Execution of the Program

On the dropdown menu of the Cases command (see Fig. 2.2), a click on Settings opens a
window (Fig. 2.16) that gives six data fields. The first data field is to select a text editor to
view the input data files or the intermediate results files. By default, the program selects the
Write program. If Write is not installed in the operating system, the user needs to give name
of any other text editor and its path. A double click on the Editor Field opens the standard MS
window for browsing the system to select an editor.
Similarly, the second field is given to select a program to view the help document in the html
format. A double click in this field opens the standard MS window to browse the system for
selecting the program and the directory containing it.
Chapter 2– 23

The third field is given to give the directory of the spread sheet (Excel or Lotus), which is
required for exporting of results. A double click in this field opens the standard MS window
to browse the system for selecting the directory containing it.
The MESSAGE program generates a matrix that needs a solver to optimize the model (see
Chapter 1). The user can select a solver. A click on the arrow of the fourth field gives the list
of solvers that can be used to solve the matrix generated by the Message program. These
solvers include glpk, cplex, and mosek. The glpk is provided with the MESSAGE to enable
computation of studies which are not very big.

## FIG. 2.16. Window for Settings.

In the course of input data preparation (see Chapter 3), the program needs to know the day of
weekly holiday. In the fifth field, a click on the arrow lists all weekdays to make selection. By
default, the program selects Sunday as the weekend.
The last data field is to select the investment switch (Fig. 2.16). The MESSAGE determines
the optimal capacity addition required in each study period. The user can select the time of the
investment on these capacity additions. A click on the arrow in this field drops down two
options:
i) shifted (default)
ii) half-half
The default option i.e. “shifted” makes all investment on new capacity in the period preceding
to the commissioning period. This ensures that capacity building is completed in one period
and it produces in the following period.
The other option “half-half” distributes the investment into two equal parts. One-half is
invested in the period when capacity addition is required, and the other half is invested in its
preceding period. This option is applicable for cases where large time steps are chosen. It
should not be used for cases with shorter time steps.
A click on the Ok button saves all of the selections made.
Chapter 2– 24

## 2.3.9. Default Units

The MESSAGE program facilitates preparation of input data file through pre-defined forms.
In these forms, each data field is labeled with a brief name of the associated data entity. The
program shows the detailed name when the user places the cursor on a field (see Fig. 2.17).

However, these names do not indicate the type of data entities for all fields. All data entities
of the program can be grouped into following eight categories:
1) Energy
2) Power
3) Currency
4) Share
5) Time
6) Volume
7) Weight
8) Other
The window to enter general data (Fig. 2.17a) for a case study also shows these categories
(Chapter 3 discusses this window).

## FIG. 2.17. Data Fields Showing Labels.

On the dropdown menu of the Cases command (Fig. 2.2) a click on Default units opens a
window showing all data fields and the data category for each of input data field (Fig. 2.18).
This window displays a table of three columns showing screen name given to each window or
data form, names of data fields on that screen and default data category (see Chapter 3 for
Chapter 2– 25

windows showing data forms and these screens and data fields). For example, in Fig. 2.18, the
first row states that, the field labeled “hiscact” is to give energy type data.

These types of data entities are given by default and the user can not change them. For each
type of data category, there are various units of measurement. For example, energy can be
measured in Mega Watt year (MWyr) or Giga watt year (GWyr) or calories or joule etc. The
program has also defined the units of measurement for each data category. The default units
for all energy variables and their cost variables are megawatt years (MWyr) and \$/kWyr,
respectively. For this setting, the model’s result on investment cost is reported in thousand
dollars. By default, the model assumes that all monetary values are given in dollars of 2000.
Therefore, in names of units for costs, “\$’00” is added.

The user cannot modify the default units. However, S/he has the permission to modify units in
her/his own case study when giving the general data of the case study (see Sub-section 3.4.1
in Chapter3) but should be careful in keeping the consistency among various units.

## 2.3.10. Change Instance

On the dropdown menu of the Cases command (see Fig. 2.2), a click on Change Instance
opens a window (Fig. 2.19) showing the path of the directories made by the MESSAGE
program for storing models, index of directory name for each case study, root directly for the
MESSAGE program, and binary files. The names of these four files set up the environment
for running of MESSAGE therefore these are called environment variables. A user may have
two installations of MESSAGE on the same machine. To use any part of the alternative
installation, the user has to change the instance.
The window for setting these environment variables (Fig. 2.19) also shows a field to show
name of the file that stores the environment setting; its file type is “.msguric”. This
information can be helpful in tracing any problem encountered in running of the program.
Chapter 2– 26

To preserve the default environment, the use can save the changes in a new file and then use it
as the default file. A click on the “Save as” button opens a window for the user to enter the
name of the new file (Fig. 2.19a).
The user may like to create a new environment file after changing the environment variables
and to keep it in some other directory to use it later. The Browse button is to load a previously
save instance file for running the MESSAGE in an alternative environment defined and saved
in a file.

Chapter 2– 27

## 2.3.11. Edit Instance Defaults

This item in the dropdown menu of Cases command can be used to change some default
settings and most importantly to change the tdb of a case study. If a user has created a case
study through copy option then tdb of the old case is included in the new case. The user can
select another tdb for the new case.

In the Cases command, a click on “Edit instance defaults” opens a new window (Fig. 2.20). In
this window selection of the “defaults” option opens a window (Fig. 2.20a) showing a table to
give default values of some data entities. The program initially gives only four entities as
shown in Fig. 2.20a, the user can add some more data entities in this table. A click on the add
button adds a row of two data fields in this form. The first filed is to give the field label as
given in the data form of the MEESAGE and the second field is to give the default value
which will appear when a new case study is opened.

.
FIG. 2.20. Window to Edit Instance Defaults.
Chapter 2– 28

FIG. 2.20a. Window to Edit/Define Default Values for Some Data Entities.

The second option in this window (Fig. 2.20) is “glob.reg”, a click on it opens a window of
“Edit region definitions” (Fig. 2.20b). This window shows names of all the existing case
studies and the tdb defined for them in a table of three columns, i.e. Region, Synopsis and
Tdb. The user can edit the last two columns to change synopsis or tdb of a case study.
Chapter 2– 29

## FIG. 2.20b. Window for Changing the Tdb.

The third option on the “Edit def” window (Fig. 2.20) is “glob.dir”, and a click on it opens a
window (Fig. 2.21) showing the names and paths of all directories used by the MESSAGE
program. The user, if necessary, can change these paths. S/he should make sure that the
directory structure is according to the changes.

## FIG. 2.21. Window Showing Names and Paths of Programs.

The fourth option on the “Edit def” window (Fig. 2.20) is “default.def”, and a click on it
opens a window (Fig. 2.22) which is exactly the same as for “glob.dir” (Fig. 2.21). It shows
the names and paths of all directories used by the MESSAGE program by default. The user
can edit these fields to defined different paths e.g. path to the directory containing tdb files or
program name e.g. a program different then explore.exe to read User Manual available in the
pdf format. The program uses these values when ever a new study is created.
Chapter 2– 30

## FIG. 2.22. Window Showing Default Paths of All Directories.

The fifth option on the “Edit def” window (Fig. 2.20) is “mms.pro”, and a click on it opens a
window (Fig. 2.23) showing the names of the existing case studies and their directories with
complete paths. The user, if necessary, can change these paths.

Chapter 2– 31

## 2.3.12. Create New Instance

By default, the installation program creates a sub-directory called “message” in the Program
directory on the C drive. In the message directory, the program creates three sub-directories
named “message_bin”, “message_help” and “models”. As discussed in Sub-section 2.3.10,
the user can have two installations of MESSAGE on the same machine. While working in one
installation, s/he can access the case studies available in the second installation. A typical
example could be when new version of MESSAGE is installed as the second installation and
the case studies from the first version are used to test the compatibility before switching over
to the new version.
One the dropdown menu of the Cases command (Fig. 2.24), a click on the last option opens a
window (Fig. 2.24a) showing the exiting parent directory of the Model directory, double click
in the field opens the standard MS window to select new drive and a new parent directory for
the Model directory. The second field is to enter name of the new model directory. The third
field shows the existing Home directory of the MESSAGE program. Double click in this field
opens the standard MS window to select new drive and new home directory for the program.

Chapter 2– 32

## 2.4. Management of Scenarios in a Case Study

The program allows creation of alternative scenarios in a case study. A scenario, in brief, is a
set of assumptions that portrays future developments of an energy system. Hence, alternative
scenarios represent alternative paths of developments. On selection of a case study to work on
(see Sub-sections 2.3.1a or 2.3.1b), the dropdown menu of the Cases command is updated to
allow management of scenarios in a case study (Fig. 2.25). In this window, the Save
command is to save change made in any database of the case study (see Chapter 3 for editing
of databases), while the Close command is to close the case study. The Exit command closes
down the MESSAGE program.

On the Cases command, selection of Scenario gives a side list of commands. There are four
commands in this list (i.e. Copy Scenario, New Scenario, Delete Scenario and Update
Scenario). As discussed before, the program keeps a database for each case study called its
adb and a separate database for each scenario called its ldb. Before creating alternative
scenarios, it is appropriate to prepare the database of the case study i.e. adb first (see Chapter
3 for editing of adb). The program keeps the up-to-date version of the adb in a default
scenario. Once, this default scenario is ready, then alternative scenarios can be created using
it, and the particular features of each scenario should be incorporated by editing its ldb.

## FIG. 2.25. Window for Scenario Management.

The following paragraphs discuss the scenario management commands (Fig. 2.25) and their
related windows.

## (a) Creating a New Scenario by Copying

The user can create a new scenario by copying an existing scenario. On the dropdown menu
of the Cases command, in side-list of Scenario command a click on Copy Scenario opens a
window to copy an existing scenario to create a new one (Fig. 2.26). Format of this window is
very similar to the one discussed in Sub-section 2.3.3a for copying a case study.
Chapter 2– 33

In the first field, a click on the arrow lists names of all the scenarios defined in the case study
the user is working on. Initially there is only adb scenario. As new scenarios are made, the
program adds them in this list. A click on an exiting scenario selects it for copying it to a new
scenario. The user gives name of the new scenario in the second field and its synopsis in the
third field (see Sub-section 2.3.2). Pressing the OK button creates a new scenario containing
all data of the selected scenario.

## (b) Creating a New Scenario from Scratch

The user can create a new scenario without any previous data. On the side menu of the
Scenario command in Cases command, a click on New Scenario opens a window to enter
name of the new scenario (Fig. 2.27). The program creates a new ldb file for the new scenario
and all the data have to be entered in the interactive mode.
It may be noted that the user can add a part of the data defined in the adb of the case study in
the new ldb file but none of the data that have been entered in the ldbs of other scenarios are
available to the user here. Therefore, if a new scenario is a small deviation from one of the
scenario then it is better to create the new scenario by copying the existing one and to edit the
desired part of it to make the new scenario.

## (c) Deleting a Scenario

On the side menu of Scenario of the Cases command (see Fig. 2.25), a click on Delete
Scenario opens a window (Fig. 2.28) that gives list of all scenarios in the case study. A click
on a name selects the scenario for deleting or cleaning.
Chapter 2– 34

## FIG. 2.28. Window to Select a Scenario for Deleting.

After selection of a scenario a user has to press one of the four buttons to choose one of
following options:
Clean up: This will delete all intermediate files of the selected scenario.

Keep Data Only: This will delete all files except the input data files of a selected scenario.

Delete all: This will delete all of the files of a selected scenario.

Cancel: If a user changes mind and want to go back without deleting any file.

A click on one of the first three buttons deletes/cleans the selected scenario. It may be noted
that if a scenario is deleted then it cannot be retrieved again.
(d) Updating default Scenario (dfltscen)
As discussed, the program keeps a default scenario based on the adb database. The user can
update this default scenario to incorporate changes in data stored separately in the upd
database (see section in Chapter 3 on upd database).
In the command set for scenario management (Fig. 2.25) a click on the last command i.e.
Update dfltscen incorporates all data stored in the upd file into the adb file and thus default
scenario is updated.
(e) Saving a Scenario
The program automatically saves any operation on management of scenarios (such as copy
creation or deletion of a scenario).
On the dropdown menu of the Cases command (see Fig. 2.25), a click on Save writes down
any change made in any of the data bases i.e. tdb, adb and ldb (see Chapter 3 for editing of
databases).
Chapter 2– 35

## 2.5. Help Command

The user can read this User Interface Manual and its technical manual given as Annexures to
this manual while using the MESSAGE program. A click on the Help command drops down a
menu to make the selection (see Fig. 2.29). The program opens these two documents in
separate windows. Furthermore, the Help command provides a calculator, an Excel sheet
containing a set of Conversion factors and an electronic diary to keep records of the tasks to
be done on the case study (Fig. 2.30). In this diary, the user can keep details of each task, its
status and other information in details. In this window, the File command is available to save
the information as a file and perform all standard file operations. The Sort command
facilitates sorting of the records of the tasks by the entries given with the tasks (Fig. 2.30).

Chapter 2– 36

Chapter 3 – i

## CHAPTER THREE ................................................................................................................. 1

Database Management................................................................................................. 1
3.1. Creating Databases............................................................................................................ 1
3.2. Structure of the Four Databases ........................................................................................ 2
3.2.1. Structure of Data on Technologies in the tdb, adb, ldb, upd................................ 3
3.2.2. Structure of Energy Forms in the adb and ldb. .................................................... 5
3.2.4. Structure of Data on Demands in the adb and ldb................................................ 6
3.2.5. Structure of Data on Constraints/Relations in the adb, ldb and upd .................... 7
3.2.6. Structure of Data on Resources in adb, ldb and upd ............................................ 8
3.2.7. Structure of Data on Storages............................................................................... 8
3.3. Editing of a Technology Database (tdb) ......................................................................... 10
3.3.1. Editing of General and Energy Forms in the tdb ............................................... 10
3.3.2. Management of Technologies in the tdb ............................................................ 12
3.4. Editing of an Application Database (adb)....................................................................... 13
3.4.1. General Data....................................................................................................... 14
(a) Defining seasons ................................................................................................. 16
(b) Day types in a case study.................................................................................... 17
(c) Defining types of days and length of parts of days............................................. 18
(d) Dates of holidays in a model year ...................................................................... 19
3.4.3. Editing Energy Forms in an adb......................................................................... 20
(a) Defining levels for energy forms ........................................................................ 20
(b) Defining Energy forms at a level........................................................................ 21
(c ) Editing Energy Forms of the tdb in the adb window......................................... 23
3.4.4. Management of Data on Energy Demands in the adb........................................ 23
(a) Adding a new energy form in the data table for demands .................................. 24
(b) Entering data on an energy form ........................................................................ 24
(c) Editing data on an energy form........................................................................... 25
(d) Deleting data of an energy form ......................................................................... 25
(e) Importing/exporting data on an energy form...................................................... 25
(f) Entering/Editing data on load curves .................................................................. 27
(g) Share of seasons and days in the annual demand ............................................... 28
(h) Absolute/relative load curve data in annual demand.......................................... 29
(i ) Add/Delete an year from the data set on load curves......................................... 31
(j ) Save the data set on load curves ......................................................................... 32
(k ) Make a Graph of the data set on load curves..................................................... 32
3.4.5. Management of Constraints/Relations/Variables............................................... 32
(b) Editing of an existing relation ............................................................................ 34
(d ) Multiple entries in the relations form for group1, group2, cumulative and cum
per period.......................................................................................................... 37
(e ) Load curves in the constraints/relations form for the adb ................................. 40
(f ) Entries window for a defined relation in a constraints group ............................ 41
(g) Copy a Relation into another Group................................................................... 43
(h ) Deleting a Relation from the adb....................................................................... 43
(i) Editing of Pre-defined Constraints/Relations in the “Costs” Group ................... 43
3.4.6. Editing Data on Technologies in the adb ........................................................... 44
Chapter 3 – ii
(b) Deleting a Technology from the adb .................................................................. 47
(c ) Saving the adb.................................................................................................... 47
(d ) Editing Data on Capacity of a Technology in adb............................................. 47
(e) Editing data on activities of a technology in the adb.......................................... 51
(g) Copy/Cut a Technology to make a New Technology......................................... 56
(h) Rehabilitation of a technology............................................................................ 56
(i) Load curves for main output, variable costs, capcity factor and coefficient in a
constraint .......................................................................................................... 57
3.4.7. Editing Data on Resources in the adb ................................................................ 58
(a) Defining output of a resource ............................................................................. 59
(b) Entering data on output of a resource – single entries........................................ 60
(c ) Entering data on output of a resource – multiple entries ................................... 61
(e ) Deleting a resource from the adb....................................................................... 62
3.4.8. Editing Data on Storages in adb......................................................................... 62
(a ) Editing of relations for a hydro storage in the adb ............................................ 66
3.5. Editing of a Local Database (ldb) ................................................................................... 68
3.6. Types of Data Set Defined in the Four Databases .......................................................... 72
3.7. Some Standard Windows Opened for Data Editing in the Four Databases.................... 72
3.7.1. A Standard Edit window .................................................................................... 72
3.7.2. A Standard Unit Window................................................................................... 74
3.8. Standard Windows for Editing Data on Constraints in the Four Databases ................... 75
3.8.1. A Set of Standard Window to Edit Constraints on Capacity of Technology..... 75
(a ) Annual bounds on new capacity addition on a technology ............................... 75
(b ) Bounds on total installed capacity of a technology ........................................... 77
(c ) Lag times for construction material and cores................................................... 78
(d) Constraint type 1 on a technology ...................................................................... 79
(e ) Constraint type 2 on a technology ..................................................................... 79
(f ) Cumulative constrains on capacities of a technology ........................................ 80
(g ) Cumulative constrains per period on capacities of a technology ...................... 80
(h ) Constrains on capacities of a technology linked to storage............................... 80
(i ) Initial and final cores of a fuel for a technology ................................................ 81
(j) Global bounds on activity of a technology.......................................................... 81
(k) Market penetrations on capacity build up of a technology................................. 82
3.8.2. A Set of Standard Windows to Edit Constraints on Activities of Technologies in
the Four Databases ............................................................................................. 84
(a ) Annual bounds on activity ................................................................................. 84
(b ) Bounds on activity ............................................................................................. 85
(c ) Constraint type 1 on an activity ......................................................................... 85
(d ) Constraint type 2 on an activity......................................................................... 85
(e ) Cumulative Constrains on activities .................................................................. 86
(f ) Cumulative constrains per period on activities .................................................. 86
(g ) Constrains on activities of a technology linked to storage ................................ 86
(i ) Difference between time step activities?? .......................................................... 87
(j) Constraint on market penetration of an activity .................................................. 87
(k) Secondary inputs and outputs of activities of a technology ............................... 87
(j) Lag times for output fuels and materials ............................................................. 88
3.8.3. A Set of Standard Windows to Edit Constraints on Activities on Resources in
the two Databases ............................................................................................... 89
(a ) Bounds on activity ............................................................................................. 89
Chapter 3 – iii
(b ) Constraint type 1 on an activity on a resource................................................... 89
(c ) Constraint types 2 to 4 on an activity on a resource .......................................... 90
(d ) Constraint on market penetration of a resource................................................. 90
3.9. Windows to Edit Input Data Using Text Files ................................................................ 91
3.10. Editing of Energy Chains .............................................................................................. 93
3.10.1. Add/Delete an Energy Level ........................................................................... 96
3.10.2. Add/delete an Energy Form ............................................................................. 97
3.10.3 Add/ Delete a Technology in a Chain ............................................................... 97
3.11. Windows to Edit Notes on Data Entities....................................................................... 98
(a) General notes ...................................................................................................... 99
(b) Specific notes.................................................................................................... 101
(c) Window for all notes......................................................................................... 102
3.12. Creation and Maintenance of Update Databases (udb)............................................... 103
3.13. Commands to help in data entry in interactive mode.................................................. 104
3.13.1 Clear, cut, copy and paste, data from one field to another field...................... 105
3.13.2 Calculate data .................................................................................................. 105
3.13.3 Total data......................................................................................................... 106
3.13.4 Import and Export of data ............................................................................... 106
3.14. Editing of data bases for a multi-regional study ......................................................... 106
3.14.1 General data form in a multi-region study ...................................................... 106
3.14.2 Window to edit load regions in a multi-region study...................................... 106
3.14.3 Window to enter technology data in a multi-region study .............................. 108
3.14.4 Link between the regions in a multi-region study........................................... 109

List of Figures
FIG. 3.1. Interrelationship of the Databases in the MESSAGE Program. ................................ 2
FIG. 3.2. Structure of Data on a Technology............................................................................. 5
FIG. 3.3. Structure of Energy levels and forms in the adb and ldb. .......................................... 6
FIG. 3.4. Structure of Load Regions Data in the adb and ldb. .................................................. 6
FIG. 3.5. Structure of Data on Demands in the adb and ldb. .................................................... 7
FIG. 3.6. Structure of Constraints and Relations in adb, ldb and upd. ..................................... 8
FIG. 3.7. Structure of the Resources Data in adb, ldb and upd................................................. 9
FIG. 3.8. Window to Select a Database for Editing.??............................................................ 10
FIG. 3.8a. Window to Edit the tdb. .......................................................................................... 11
FIG. 3.8b. Window to Edit General form the tdb..................................................................... 11
FIG. 3.9. Form to Edit Data on Energy Forms in the tdb ....................................................... 12
FIG. 3.10. Form to Edit Data on Technologies in the tdb ....................................................... 13
FIG. 3.11. General Data Form in the adb Window. ................................................................ 14
FIG. 3.12. Data Form to Enter or Modify Data on Load Regions in adb. .............................. 16
FIG. 3.13. Days Table Opened from the Load Regions Form of the adb Window.................. 18
FIG. 3.14. Days Table Opened in the Load Regions Form of the adb Window. ..................... 19
FIG. 3.15. Holiday Table Opened from the Load Region Form of the adb Window............... 20
FIG. 3.16a. Data form to Enter or Edit Energy Forms in the adb. ......................................... 21
FIG. 3.17. Data Form to Enter Energy Forms in the Selected Level of Energy Chain .......... 22
FIG. 3.16b. Editing of the tdb in the adb Window. .................................................................. 23
FIG. 3.18. Window for Editing Data on Energy Demand in the adb....................................... 24
FIG. 3.19. Window for Adding an Energy Form in the Demand Table................................... 25
FIG. 3.20. Window for Importing Data on Energy Demand. .................................................. 26
FIG. 3.21. Window to Locate the Excel file for Importing Data.............................................. 26
FIG. 3.22. Window to Get the List of Energy Forms that have Load data. ............................. 27
Chapter 3 – iv
FIG. 3.23a. Window to Enter Data on Shares of Load Regions in Annual Demand............... 29
FIG. 3.23b. Window to Enter Data on Load Curve. ................................................................ 30
FIG. 3.23c. Window to Enter Data on Load Curve? ............................................................... 31
FIG. 3.24. Window to Add a Year for Entering Data on a New Load Curve. ......................... 32
FIG. 3.25. Window Showing the Constraint/Relations Form. ................................................. 33
FIG. 3.26. Window to Enter a New Relation in the adb. ......................................................... 34
FIG. 3.27. Window Showing the Constraints/Relations/Variables Form for Group1............. 35
FIG. 3.28. Data Table for Penalties in the Multiple Entries part of the Constraints form...... 38
FIG. 3.29. Graphical Representation of Penalty Costs.?? ...................................................... 39
FIG. 3.30. Data Table for Penalties in the Multiple Entries Part of the Constraints Form.... 40
FIG. 3.31. Window for Load Restriction in the Constraint Form for the Cost Option............ 41
FIG. 3.32. The Entries Window from the Constraints Form.................................................... 42
FIG. 3.33. Window for Copying a Relation/Constraint into another Group ........................... 43
FIG. 3.27a. Window Showing Predefined Relation/Constraint in the Costs Group................ 44
FIG. 3.34. Window to Enter Data on Technologies in the adb................................................ 45
FIG. 3.35. Window to Add a new technology in the adb.......................................................... 46
FIG. 3.36. Window to Get the List of Technologies in adb...................................................... 47
FIG. 3.37. A Form to Enter or Modify Data of a Technology in the adb/tdb Window............ 48
FIG. 3.38. A Form to Modify Activity Data on a Technology in the adb Window. ................. 51
FIG. 3.38a. A Form to Enter Power Relation of Activity A to Activity B of a Technology...... 53
FIG. 3.38b. Window to Define Variation in Power Relation with Time. ................................. 53
FIG. 3.39. Window to Select a Technology from tdb for Addition into the adb....................... 55
FIG. 3.40. Window Showing the Selected Technology from tdb for Addition into the adb ..... 55
FIG. 3.41. Window to Paste a Technology after Cut/Copy Command. ................................... 56
. 3.37a. A Form to Choose a Technology for Rehabilitation. .................................................. 57
FIG. 3.38b. A Form to Define Load Curves of Outputs and Variable Costs........................... 58
FIG. 3.42. Window to Enter Data on Resources in the adb..................................................... 59
FIG. 3.43. Window to Add a New Resource in the adb............................................................ 61
FIG. 3.44. Windows to Add a New Resource in the adb. ......................................................... 62
FIG. 3.45. Window to Enter Storages Data in adb/ldb............................................................ 63
Multiple entries part................................................................................................................. 65
FIG. 3.46. Window to Define Inflow Relation for Hydro Storage. .......................................... 66
FIG. 3.46a. Window to Enter Name of the Relation for a Hydro Storage............................... 67
FIG. 3.46b. Window to Enter River Data for a Hydro Storage. .............................................. 67
FIG. 3.46c. Window to Enter Inflow Data for a River............................................................. 68
FIG. 3.47. Windows to Select a Scenario for Editing the ldb.?? ............................................. 69
FIG. 3.48. Window to Edit an ldb. ........................................................................................... 69
FIG. 3.48a. Window to Edit Data on Energy Forms in an ldb. ............................................... 70
FIG. 3.48b. Window to Edit Data on Constraints/Relations in an ldb. ................................... 70
FIG. 3.48c. Window to Edit Data on Technologies in an ldb. ................................................. 71
FIG. 3.48d. Window to Edit Data on Constraints/Relations in an ldb. ................................... 71
FIG. 3.49. The Standard Edit Windows Opened from the Demands Form. ............................ 73
FIG. 3.49a. Window Showing Graph of the Demand Data. .................................................... 74
FIG. 3.50. A Set of Standard Windows for Unit Selection. ..................................................... 75
FIG. 3.51. Window for Selecting Capacity related Constraints on a Technology................... 76
FIG. 3.52. Window for Defining Constraint on Capacity of a Technology. ............................ 76
FIG. 3.53. Window for Bounds on a Technology in the tdb, adb and ldb................................ 76
FIG. 3.54. Window for Bounds on a Technology in the tdb ,adb and ldb................................ 77
FIG. 3.54a. Window for Bounds on a Technology in the tdb ,adb and ldb.............................. 77
FIG. 3.55. Window to Give time Lag in Input Use................................................................... 79
FIG. 3.56. Window for Constraint Type 1 on a Technology in the tdb, adb and ldb............... 79
Chapter 3 – v
FIG. 3.57. Window for Constraint Type 2 on a Technology in the tdb, adb and ldb............... 80
FIG. 3.58. Window for Constraint Type 3 on a Technology in the tdb, adb and ldb............... 80
FIG. 3.59. Window to Enter Cumulative Constrains per Period on Capacities of a Technology
in the tdb and the adb............................................................................................................... 80
FIG. 3.60. Window for Constraint Type Storage on a Technology in the tdb and the adb. .... 81
FIG. 3.61. Window to Put Constrains on Initial Cores of Fuel for a Technology................... 81
FIG. 3.62. Window to Enter Constrains on Final Cores of Fuel for a Technology................. 81
FIG. 3.63. Window for Global Bound on a Technology in the tdb and the adb. ..................... 82
FIG. 3.64. Window Market Penetration on New Capacities of a Technology in the tdb and the
FIG. 3.65. Window to Put Bounds on Activity in the tdb, adb and ldb. ................................... 84
FIG. 3.66. Window to Enter Annual Bounds on an Activity in the tdb, adb and ldb. .............. 85
FIG. 3.67. Window to Enter Bounds on an Activity in the tdb, adb and ldb?.......................... 85
FIG. 3.68. Window to Enter Constraint type 1 on an Activity. ................................................ 85
FIG. 3.69. Window to Enter Constraint type 2 on an Activity. ................................................ 86
FIG. 3.67. Window to Enter Cumulative Constrains on Activities. ......................................... 86
FIG. 3.68. Window to Enter Cumulative Constrains per Period on Activity of a Technology in
the tdb and the adb. .................................................................................................................. 86
FIG. 3.69. Window to Enter Constrains on Activities of a Technology Linked to Storage. .... 87
FIG. 3.70. Window to Enter Time Step in Activities of a Technology. .................................... 87
FIG. 3.71. Window to Enter Constraint on Market Penetration of Activities of a Technology.
.................................................................................................................................................. 87
FIG. 3.72. Window to Enter Constrains on Secondary Inputs of Activities of a Technology.. 88
FIG. 3.73. Window to Enter Constrains on Secondary Output of Activities of a Technology. 88
FIG. 3.74. Window to Enter Time Lag in Output Fuel and Material?? .................................. 89
FIG. 3.75. Window to Enter Penalty on Activities of a Technology ........................................ 89
?? FIG. 3.76. Window to Enter Softlimits on Activities of a Technology?? ............................ 89
FIG. 3.74. Window to Enter Bounds on a Resource in the adb and ldb. ................................. 89
FIG. 3.75. Window to Enter Constraint type 1 on a Resource. ............................................... 90
FIG. 3.76. Window to Enter Constraint type 2 on Activity of a Resource. .............................. 90
FIG. 3.77. Window to Enter Constraint type 3 on an Activity of a Resource. ......................... 90
FIG. 3.78. Window to Enter Constraint type 4 on an Activity of a Resource. ......................... 90
FIG. 3.79. Window to Enter Constraint on Market Penetration of the Activities of a Resource.
.................................................................................................................................................. 91
FIG. 3.79a. Window Showing “With text editor” Command.? Double upd............................ 92
FIG. 3.79b. Window to Edit “fil” file ...................................................................................... 93
FIG. 3.80a. Window of Energy Chain (part a) ........................................................................ 94
FIG. 3.80b. Window of Energy Chain (part b) ........................................................................ 95
FIG. 3.81. Window of Energy Chain Cost ............................................................................... 95
FIG. 3.82. Window to get help to edit energy chain ................................................................ 96
FIG. 3.83. Window to add a new energy level. ........................................................................ 96
FIG. 3.84. Window to delete an energy level. .......................................................................... 96
FIG. 3.85. Window to add an energy form............................................................................... 97
FIG. 3.86. Window to delete an energy form. .......................................................................... 97
FIG. 3.87a. Window to Add a New Technology Using the Energy Chain. .............................. 98
FIG. 3.87b. Window to delete a technology using the energy chain........................................ 98
FIG. 3.88. Window to Select a Category of Notes for Editing................................................. 99
FIG. 3.89. Window to Select a Screen for the General Category of Notes.............................. 99
FIG. 3.90. Window to Select Name of a Data Field for Notes............................................... 100
FIG. 3.91. Window to Edit Notes on a Data Item in the General Category Using the Text
Editor...................................................................................................................................... 100
Chapter 3 – vi
FIG. 3.92. Window Showing Names of All Data Fields for the Selected Screen................... 101
FIG. 3.93. Window to Edit Specific Notes Using the Text Editor. ......................................... 101
FIG. 3.94. Window to Edit Specific Notes Using the Text Editor. ......................................... 102
FIG. 3.95. Window to Select an Item for Editing Notes......................................................... 102
FIG. 3.96. Window to Enter Name of an Update database ................................................... 103
FIG. 3.97. Window to Edit an Update db (udb)..................................................................... 104
FIG. 3.98. Window to Select a Scenario for Creating or Editing of Update db (upd) .......... 104
FIG. 3.99. Window to Select a Update db (udb) for Editing.................................................. 104
FIG. 3.100. Window to Show Command for for Editing....................................................... 105
FIG. 3.101. Window to Perform Calculation for a Data Field.............................................. 105
FIG. 3.102. Window Import Data from a File to a Data Field in the tdb, adb and ldb. ....... 106
FIG. 3.103. Window Showing General Data form in a Multi-region Study. ......................... 107
FIG. 3.104. Window to Edit Data on Load regions in a Multi-region Study......................... 108
FIG. 3.105. Window to Edit Technology data in a Multi-region Study. ................................ 109
FIG. 3.105a. Window Showing Input Selected from Other Region in a Multi-region Study. 110
Chapter 3 – 1

CHAPTER THREE
Database Management
The MESSAGE program maintains, mainly, three types of databases for storing all input data
required for a model developed in a case study. These four types of databases are as follows.
(1) Technology database, called tdb, is created and maintained independent of any case
study.
(2) Application database, called adb, is created and maintained for each case study.
(3) Local database, called ldb, is created and maintained for each scenario in a case
study.
(4) Update database, called upd, is created and maintained to update values in the adb
and/or a set of scenarios in a case study across the board.
This chapter discusses how these databases are created, links among them, their structures,
and their editing procedure. Since the program is designed in the windows system, the chapter
discusses in details steps to get the set of MESSAGE windows needed for editing various
parts of a database.
3.1. Creating Databases
The program provides an empty technical database called “empty.tdb” which is a template for
the user to fill in data on technologies to make a pool of information for development and
computation of any model for that particular energy system. It is advisable to build the tdb if
the user wants to build multiple case studies each having a different energy systems but there
is a common set of technologies to be used in these studies. The user has to select this empty
tdb (see Section 2.3.2 in Chapter 2) for each case study however, it is not mandatory to build
the tdb for a case study. The user may like to work on the adb of each case study from the
scratch.
The adb is created when a case study is created. If a case study is created through copying an
existing case study (see Section 2.3.2), the adb of the source case study is copied to the new
one by default. Similarly, the tdb of the existing case study is also selected for the new one by
default. The user can select a new tdb for the new case study by editing the default settings
through “Edit Instance” command, Section 2.3.10 discusses this command. Alternatively, if a
case study is created from scratch (see Section 2.3.2) an empty adb file is created for it and
the program gives the option of choosing a tdb that will be used for development and
modification of the adb of the new case study.
Each time a scenario is created in a case study, the program creates a separate database for it.
If the scenario is created by coping an existing one (see Section 2.4), the program copies the
database of the source scenario for the new case. However, if a scenario is created from
scratch (see Section 2.4) then an empty ldb file is created.
Updating of a database needs efforts and time. To facilitate this, the program allows the user
to store, separately, new data values which will be available only for some of the parameters
of the model initially. The user needs not to complete the new data set to use it. S/he can run a
scenario with some new values, whatever is available, and old values for the remaining
parameters. Section 4.1 in Chapter 4 discusses this procedure. At a later stage, the user can
incorporate the new data in the adb which modifies the default scenario of the case study.
Section 2.4(d) in Chapter 2 discusses this updating command. Furthermore, the upd also
facilitates changing of some data values in all scenarios simultaneously. The structure of this
data base (i.e. “upd”) is exactly the same as is of the adb or ldb of the study except for two
Chapter 3 – 2
parts of the database that define the structure of the model (see Section 3.2 for details).
Creation of the upd is discussed in Section 3.12.
Figure 3.1 shows interrelationship among these databases. Any data entity defined in tdb —
such as an energy form — can be added to the adb and ldb. Also data entity defined in an adb
can be added to the ldb. The data values defined in upd can update the values in the adb and
the ldb.

Technology
Database (tdb)

## FIG. 3.1. Interrelationship of the Databases in the MESSAGE Program.

As discussed in Chapter 2, in a multi-region case study, all sub-regions and main regions are
created and maintained as separate case studies for all purposes. Accordingly, four types of
databases are maintained separately.
For minimizing on size of databases, the program has the following strategy.
• All data values of the tdb are displayed in red colour. From a tdb, if a data entity is
added to the adb or ldb and is not modified, then the program does not copy the data
values from the tdb file but keeps only the name of the data entity as a reference in the
adb or ldb. When the user opens that data entity in the adb or ldb window, the
program displays it in red colour to show that the value from the tdb is used.
• All data values of the adb are displayed in light green colour. From an adb, if a data
entity is added to the ldb and is not modified, then the program does not copy the data
values from the adb files but keeps only name of the data entity as a reference in the
ldb. When the user opens that data entity in the ldb window, the program displays it
in green colour to show that the value from the adb is used.
• The ldb files contain values for only those data entities that were directly entered in
the ldb or they were added from the tdb or adb but were modified for the ldb. All such
data values are shown in blue colour in the ldb windows.
• If user decides to create a “upd”, then it contains some selected data entities to
updated the values in the adb and ldbs. These values are displayed in light orange
colour.
This strategy not only helps in minimizing the storing space but also helps in keeping track of
the sources of data. Section 3.12 discusses creation and maintenance of update db for the adb
and ldb files of a case study.
3.2. Structure of the Four Databases
Based on energy system requirement, the adb and ldb databases are divided into the following
eight major parts.
Chapter 3 – 3
(1) General data on the case study
(3) Energy forms
(4) Demands
(5) Constraints
(6) Technologies
(7) Resources
(8) Storages
The tdb being a more generic database contains only three of these components i.e. General,
Energy Forms and Technologies. The upd contains all above listed components except Load
region and Energy forms. These two components provide the structure of the case study and
which can not be modified. Selected data entities from all other components can have values
for updating in the upd. The following sub-sections discuss major structures of the above data
categories.
In a multi-region case study, for all purposes, all sub-regions and main region are created and
maintained as separate case studies. Accordingly, adb and ldb are created and maintained
separately for each sub-region and main region.
Technologies provide links between two sub-regions or among all regions. In a sub-region,
input of a technology may be an energy form produced in another sub-region. In other words,
output of a technology may be used in its own region or in other regions. Demand, resources
and technologies are defined only in sub-regions and constraint/relations may be defined in
the main and sub-regions. The user may define a relation in the main region to aggregate
energy production/use and/or emission in all sub-regions and to define any constraint on them
on the aggregate. Study period and load regions have to be the same in the main as well as in
all sub-regions.
3.2.1. Structure of Data on Technologies in the tdb, adb, ldb, upd
As mentioned above, data on technologies are given in all the four databases (tdb, adb, ldb,
upd). Fig. 3.2 shows the structure of this component, which is exactly the same in all the four
databases. The model allows multiple technologies, and for each technology, it allows
multiple activities. The user can define a set of bounds/constraints on capacity and on each
activity of a technology. Fig. 3.2 shows this structure in which j is number of activities
defined for a technology i, data are required on the technology and the selected
bounds/constraints on it (see the right part of Fig. 3.2). Section 3.4.6 discusses technical
details of these bounds/constraints and Section 3.8 discusses windows for data editing.
The set of bounds and constraint on a technology includes the following.
bdc Bounds on new investments.
bdi Bounds on total installed capacities.
clags Lag times for construction material and cores.
con1c Constraint type 1 on capacities.
con2c Constraint type 2 on capacities.
concc Constraint on cumulative capacities; type 3.
conpc Constraint on cumulative capacities per period on; type 4.
Chapter 3 – 4
consc Constraints on capacity linked to storage; type 5.
corin Initial cores.
corout Final cores.
gbda Global bounds on all activities.
mpc Market penetration on capacity build up.
Data are required on each activity and on the selected bounds/constraints on it. The set of
bounds and constraints on an activity includes the following.
abda Annual bounds on activity.
alags Lag times for output fuels and material.
bda Bounds on activity.
con1a Constraints type 1 on activity; group1.
con2a Constraints type 2 on activity; group2
conca Cumulative Constraint on activity; cumulative.
conpa Cumulative constraints per period on activity; cum. per period.
consa Linked storage constraints on activity; storage.
diff Difference between time step activities.
inp Secondary input.
mpa Market penetrations of activities.
outp Secondary output.
Soflims Interpolated cost increase
Chapter 3 – 5

Technology i Name

## Capacity Activity 1 Activity 2 to Activity j

Single Single
Multiple Entries Multiple Entries
Entries Entries
(Basic Data) bdc (Basic Data abda
on on
bdi bda
technology Activity)
clags algs
Con1c Con1a
Con2c Con2a
concc conca
conpc conpa
consc consa
corin diff
corout inp
gbda mpa
mpc outp
softlims
FIG. 3.2. Structure of Data on a Technology.
3.2.2. Structure of Energy Forms in the adb and ldb.
MESSAGE allows modelling of an energy system in detail starting from energy resources to
the level of end-use of various energy forms. For example, the user can model supply and
demand of gas in its energy system starting from gas resources to its production (primary
level), its processing and supply to power sector (secondary level), its supply to households
and industries (final level), and the energy demand in useful terms met by gas (Demand
level). This is referred to as a gas chain
In the adb and ldb energy forms are defined in two steps. Fig. 3.3 shows this structure in
which “f” is number of levels defined, and “h” is number of energy forms defined at each
level. Number of energy forms may be different at each level. The program assumes that the
first level is for demand (i.e. the end of the energy chain), and the last level is for resources
(i.e. start of the chain). Annexure A discusses technical details of data on energy forms, and
Section 3.4.3 discusses the windows/forms to edit their data.
For each energy form, the user can select if it is modelled with load regions or not.
Chapter 3 – 6

## Energy Level to Energy Level

Name (1) Name (f)

## Energy form Energy form

name (1) name (h)

FIG. 3.3. Structure of Energy levels and forms in the adb and ldb.
For those energy forms that can not be stored such as electricity and heat, it is vital to model
variation in demand within a year rather than considering only annual demand. MESSAGE
allows modelling of variations in energy demand within a year with seasons, types of days or
time of a day. This requires additional parameters to form the pattern of the energy demand.
Parts of a year are referred to as load regions while energy demand pattern as per time-
division, is termed as load curve.
Fig. 3.4 shows the structure of the load regions data in which: k is number of seasons, m is
number of types of days for a season, and p is number of parts of a day type. The total number
of regions (i.e. division of a year) can be up to 64. Section 3.4.2 discusses windows and forms
to define these regions.

Study Year

## Season to Season to Season

Name (1) Name (3) Name (k)

## Day type 1 to Day type m

Part 1 to Part p

FIG. 3.4. Structure of Load Regions Data in the adb and ldb.
3.2.4. Structure of Data on Demands in the adb and ldb
After defining the load regions and the energy forms at different levels of the chain, the user
can enter the annual demand data for each energy form defined at the last level of the chain
(in the MEESAGE window it is the first level). It is important to note that the first data set on
the demand should correspond to the first model year rather than the base-year. Also for those
energy forms that are selected to have load regions, data is given for distribution of the annual
demand according to the load regions defined for the case study (see Fig. 3.4).
Chapter 3 – 7
Fig. 3.5 illustrates that annual demand is given for all energy forms defined at the last level of
the energy chain and load data is given for selected energy forms for which load curve options
have been selected. Section 3.4.4 discusses windows/forms to edit these data.
Energy Form – 1 to Energy form – h
Last Level Last Level

Demand

## FIG. 3.5. Structure of Data on Demands in the adb and ldb.

3.2.5. Structure of Data on Constraints/Relations in the adb, ldb and upd
To model an energy system in MESSAGE, the user may define some relationships between
technologies/resources/storages and put some constraints on the resultant values of these
relations. These constraints are in addition to the limit or bounds placed on a
technology/resource or activity of a technology.
The program has five pre-defined groups to define some constraints in the energy models.
These groups are named as: cost, group1, group2, cumulative, and cum. per period. The Cost
group has some pre-defined relations that compute system-wide aggregated operating cost,
investments, resources and costs related to the relations defined in group1 and group2. The
user can use these relations to put limits on these relations.
In the other constraint groups, the user defines the relation. The first group is to define a
relation that computes the aggregated impact of a set of technologies/resources such as
emissions from a set of technologies or total output of the technologies in the set. Relations in
Group2 can be similar to those in group1 but in addition can be used for the modeling of
inflows and outflows of the storages. In both the groups, relations are defined on annual
values. However, the relations in the other three groups are defined on cumulative basis.
In the third group, referred to as “cumulative”, relations are similar to that in group1 but the
relation values are cumulated by study period e.g. cumulated investment by the end of the
study period. Accordingly, the limit values are cumulative. In, the fourth category, the
constraints are defined on cumulative per period basis i.e. investment in the first period and
the second period.
These relations and associated constraints can be defined in the adb, ldb and upd. Section
3.4.5 discusses the windows/forms to define the constraints/relations.
Fig. 3.6 illustrates an example of the group2, that have more than one relation, and how a
relation named b has: i) basic data set on the relation, ii) soft limits and penalty data for the
relation under multiple entries, and iii) data on technologies/resources/storages which are
contributing in the relation. A similar structure can be defined for relations in other groups.
Chapter 3 – 8

period

## Single Entries Multiple Entries Entries of

Technologies,
Inflows Penalty
Resources,
Outflow Soft limit Storages

FIG. 3.6. Structure of Constraints and Relations in adb, ldb and upd.
3.2.6. Structure of Data on Resources in adb, ldb and upd
Data on resources are given in the adb and ldb. The program allows multiple resources, and
for each resource multiple categories, which are referred to as grades. Fig. 3.7 shows structure
of the resources data, which is exactly the same in the two databases (adb and ldb). Sections
3.4.7 and 3.8 discuss the windows/forms to edit the resource data.
The user can define a set of bounds and constraints on each grade, which includes the
following.
bda Bounds on activity.
con1a Constraints type 1 on activity; group type 1
con2a Constraints type 2 on activity; group type2.
conca Cumulative constraint on an activity; group type 3;.
conpa Cumulative constraints per period on an activity; group type 4.
mpa Market penetration on an activity.
3.2.7. Structure of Data on Storages
MESSAGE allows modelling of water storages to enable detailed modelling of hydro power
generation. The users can define five types of water storages: i) continuous, ii) annual, iii)
seasonal, iv) weekly and v) daily. There can be more than one type of storage; each is given a
separate name. Figure 3.7a shows structure of the data for a storage (e.g. named “DAMI”).
The part on single entries includes various parameters pertaining to size, cost etc. The part on
multiple entries consists of a set of bounds and constraints that can be defined for this storage,
which are as follows:
Con1a Constraint type 1 on activity
Con2a Constraint type 2 on activity
Consa Constraint on storage
Inflow Bounds on inflow
Outflow Bounds on outflow
Overflow Bounds on overflow
Overpen Penalties on overflow
Penalty Penalties (stepped cost increases)
Softlims Soft limit (interpolated penalty cost increases)
Chapter 3 – 9
Section 3.6 discusses windows and forms of define storage and edit their data. These windows
and forms are exactly the same in adb and ldb.

Resource i
Name

Entries
(Basic Data)

## Single Multiple Entries

Entries
(Basic Data bda
con2a
conca
conpa
mpa
FIG. 3.7. Structure of the Resources Data in adb, ldb and upd.

Storage “DAM1”

## Single Entries Multiple Entries

(Basic Data)
Con1a
Con2a
Conca
Consa
Inflow
Outflow
Overflow
Overpen
Penalty
Softlimts

FIG. 3.7b. Structure of the Storage Data in adb, ldb and upd.
Chapter 3 – 10
3.3. Editing of a Technology Database (tdb)
On selection of a case study, the Edit command becomes active on the main menu bar (see
Fig. 3.8). The dropdown menu of the Edit command lists the four types of databases to choose
one for editing. Selection of Technology db opens the tdb window (Fig. 3.8a). There are three
buttons (General, Energy forms and Technologies) in the left part of this window and a
Screen command in the menu bar.
Initially, this window is blank and a click on the first button opens a form to enter/edit general
data about the database (see Fig. 3.8b).
A click on the second button opens a form to enter/edit names of energy forms and other
related data. After defining energy forms, the user can define technologies that produce/use
these energy forms. A click on the Technologies button opens a window for that purpose.
The Screen command in this window has three options of Save, Close and Save and Close to
save the changes made in the tdb and to close the tdb window.

.
FIG. 3.8. Window to Select a Database for Editing.??
3.3.1. Editing of General information and Energy Forms in the tdb
In the dropdown menu of the Edit command, a click on technology db opens a window for
editing of the tdb (Fig. 3.8a). In this tdb window, three buttons are given to edit the general
data, energy forms and data on technologies in the selected tdb of the case study.
A click on the General button in the tdb window opens a form to enter general information of
the tdb (Fig. 3.8b). The program shows the case study name for which the tdb is being
modified and the default values for some of the fields such as units of measurement for
energy, power, currency, volume, weight and time variables and a general category of
“other”. The user enters the remaining data such as study period.
Chapter 3 – 11
The “units:” fields are given for different type of variables such as energy and power, and the
default units of measurement are given accordingly. For example, the default units for energy
variables are MWyr. A click on the arrow in this field drops down a list of other units of
measurement for energy variables such as PJ (Peta joule), ktoe (thousand tonne of oil
equivalent). It is highly recommended that the users first work with the default units and only
change them when they are more experienced in the use of MESSAGE.

## FIG. 3.8b. Window to Edit General form in the tdb.

A click on the Energy forms button in the tdb window (Fig. 3.8a) opens a form for editing the
tdb on energy forms (see Fig. 3.9). Since, the user has selected an empty tdb when the case
study was created there will be no list in this form and the user adds energy forms required to
define the set of technologies for the tdb.
Chapter 3 – 12

## FIG. 3.9. Form to Edit Data on Energy Forms in the tdb

On the form (Fig. 3.9), there are two buttons for addition and deletion of an energy form from
the existing list. A click on the Add button shows a data field to enter name of a new energy
form to be added. The user needs to press the enter key after giving the name. The program
adds the name at the end of the existing list if the cursor is not placed on the existing list.
Otherwise, the user can select from the list an energy form (by clicking on its name) before
pressing the enter key to add new energy form to add the new energy from before the selected
energy form.
Selection of an energy form from the list, followed by a click on the Delete button, removes
the selected energy form from the tdb.
With all energy forms, the program shows the type of data in brackets (see Sub-section 2.3.9
for discussion of default data type in Chapter 2). A double click on an energy form replaces
the default unit type to “other” and the units of measurement selected as “other” in the
General form (Fig. 3.8b) is applied for that energy form.
3.3.2. Management of Technologies in the tdb
In the dropdown menu of the Edit command (Fig. 3.8), a click on technology db opens the tdb
window. In this window (Fig. 3.10) a click on the Technologies button gives a form to edit
data on technologies. The form and windows to edit data on technologies are same for all
databases (tdb, adb, ldb and upd). These forms and windows are discussed in details in the
next section on editing of the adb database.
Chapter 3 – 13

## FIG. 3.10. Form to Edit Data on Technologies in the tdb

3.4. Editing of an Application Database (adb)
In the dropdown menu of the Edit command (Fig.3.8), a click on application db opens a
window for adb (Fig. 3.11). In the left part of the window, buttons are given for opening
forms for editing eight categories of data given in the adb. Fig. 3.11 shows the adb window in
which the form for editing of the general data is opened. This form is similar to that discussed
for the tdb in Sub-section 3.3.1).
When the user defines some energy forms and technologies, the program prepares a chain
showing links between various energy forms graphically. This chain helps in finding out how
an energy form is supplied and its marginal cost of supply. In the adb window (Fig. 3.12) a
“chain” button is given to see an energy chain in a separate window. Section 3.10 discusses
the chain windows in detail.
After editing data in a form, it is appropriate to save it before going to the other form. A click
on the Screen command (Fig. 3.11) followed by a click on the Save option saves the changes
in the memory temporarily. The program saves the data and closes the current form. If s/he
jumps from one form to another without saving the changes, the program shows a window for
the user to decide whether s/he wants to save the changes or not.
Furthermore, the user may like to save the changes made in a data form in the database file.
For this purpose, after saving a form and before opening another form, a click on the Screen
command (Fig. 3.11) followed by a click on the Close option closes the adb window. The
program brings the control to the main MESSAGE window. Now the user can save the adb
file i.e. a click on the Cases command followed by a click on the Save command. The user
needs to go back to the adb window to continue data editing.
A user may edit and change data in the four databases of (tdb, adb, ldb, upd) of a case study
and save them at the end before closing the study through the Save command of Cases. It is
better for the user to make a few changes and save it in the file using the Save command of
Cases as there may be sudden power shutdown or some fatal error may emerge during the
data entry.
Chapter 3 – 14
3.4.1. General Data
A click on the General button in the adb window gives a form for entering or editing some
main features of the selected case study (see Fig. 3.11) such as time horizon of the case study.
In the Demo_Case1, the base year of the study is 2000, the first model year is 2002 and the
last model year is 2025. Accordingly, the first model period is from 2002 to 2005 and the last
period is from 2020 to 2025. Table 3.1 gives definition of all the general input data.
After editing data in a form, it is appropriate to save it (i.e. a click on the Screen command
followed by a click on the Save option) before going to the other form. The program saves the
data and closes the current form.

## FIG. 3.11. General Data Form in the adb Window.

In the dropdown menu of the Edit command of the main menu (see Fig.3.8), selection of
application db opens the adb window. As discussed in Section 3.2.3, the user can define a
structure of the annual energy demand if it varies within a year. A click on the load regions
button in the adb window gives a form for defining the load regions. Fig. 3.12 shows the form
to enter or modify the number and names of seasons, types of day, and parts of a day with the
length.
On this form, the Holidays table button is for selecting holidays for all the model years. Since
data on holidays is specific to a country, the program maintains a separate data file for storing
this data for each country separately.
After editing data in a form, it is appropriate to save it. A click on the Screen command
followed by a click on the Save command saves the data and closes the load region form.
Chapter 3 – 15
Table 3.1. List of Data Entities on General Data
Screen: General data Part Name: - Figure No. 3.11
Data Field Description
Label
country Name of the country or a region in a country or a region of the World.
case name Name of the case study where the user is working currently.
drate Discount rate. Average annual discount rate (%).
years Years define the time horizon of the case study. Base year followed by the model
years each separated by at least one space. The interval between the model years is
called model-period. Length of the model-period can vary but it should be constant
or increasing. Length of any model-period should not be less than the length of any
preceding model-period. For example, it is wrong to define 2000 2002 2005 2006
i.e. base year 2000, first model year 2002 and first model period is 3 years long
(2002-2005), while the second model period is only 1 year long.
Units: energy A set of energy units is given to select one the set includes MWyr (Million Watt-
year), PJ(1015 Joule), ktoe (103 tonne of oil equivalent), kboe (103 barrel of oil
equivalent), ktce (103 tonne of coal equivalent), GWh (109 Watt-hours), Tbtu (1012
British thermal unit), Tcal (1012 calories), Mcmg (106 cubic-meter gas) and Gcfg
(109 cubic-feet gas).
:power A set of capacity unit is given to select one that includes MW (Million Watt), PJ/yr
(1015 Joule) per year, ktoe/yr (103 tonne of oil equivalent per year), kboe/yr (103
barrel of oil equivalent per year), ktce/yr (103 tonne of coal equivalent per year),
GWh/yr (109 Watt-hours per year), Tbtu/yr (1012 British thermal unit per year),
Tcal/yr (1012 calories per year), Mcmg/yr (106 cubic-meter gas per year) and Gcfg/yr
(109 cubic-feet gas per year).
:currency The set includes Thousand of US \$ or Euro of year 2000.
Units: volume The set includes Mm3
:weight The set includes ton (tonnes), kton (103 tonne), and Mton (106 tonne).
:time Year.
other MWyr or kmu (Kilogram of Metallic Uranium).
ntrun Number of model periods to be optimized. The user may decide to optimize only
few model periods instead of all periods defined in the case study.
mixsw Option for mixed integer programming; options of yes or no.
actint Number of model periods (i.e. time steps) in which the selected activity variables
should be calculated as integer. The user selects some activity variables to be
integers. For example, the user might be interested in getting certain units of
generation from an existing plant and needs to define required generation data in
integer.
invint Number of model periods (i.e. time steps) in which the selected capacity variables
should be calculated as integer. The user selects some capacity variables to be
calculated in integer form.
description A brief note on the case study
Chapter 3 – 16
(a) Defining seasons
In the load-region definition form (Fig. 3.12), the Type field is given to select seasonal
variations in the demand alternatively it is none if no load regions are defined The data field
for Year is to get the list of the model years defined in the case study (see Fig. 3.11) and to
select a year for which load regions are defined. The user may define the load regions only for
the first model year and the program will assume the same pattern for the remaining model
years. Alternatively, the user may like to modify the load regions for some model years
especially in the long-term studies. The user should first select the year before entering the
data.
The third data field “No. of seasons” is to select number of seasons in the selected model year.
The user should first select number of seasons before entering any data on seasons.

FIG. 3.12. Data Form to Enter or Modify Data on Load Regions in adb.
Using the number of seasons, the program gives a table (see Fig. 3.12) for entering names of
the seasons, and for each season the starting date, number of types of days (column labelled
days), and parts of each type of day in (column labelled parts). These dates should be given to
complete one calendar year. The first season should start from first January. Table 3.2 gives
the list of data fields in the season table on the load regions form and definition of the input
data.
This data table has a flexible size. For any season, the program adds one cell at the end of the
row when the user increases types of day. A click in the “days” cell increases the cell value
i.e. number of days, and one cell is added at the end of the selected row for entering the
number of parts of that day-type. Similarly, number of parts in a day-type can be increased by
a click on the cell to define parts of a day-type. A click on right button of mouse decreases the
number of days or parts in the selected cell. Section 3.2.3 gives an overview of this
structuring. For example, if in Autumn there is only one type of day (i.e. 1 in the days’
Chapter 3 – 17
column) then there is one cell under the parts column. For summer if the value is 2 in the days
column then there will be two additional cells under the parts column. The value of 3 in the
first cell indicates that there are three parts of first-type of day while the value of 2 in the
following cell shows that the second-type of day is divided in two parts. Para (b) discusses
how to choose day-types from week-days and Para (c) discusses how to set the duration of
each part of the day.

## Table 3.2. List of Data Entities on Load Region Definition

Screen: Load region definition Part Name: - Figure No. 3.12
Data Field Description
Label
Name Name of the season of the year; starting from the first season.
Start Date (YYYY-MM-DD). The first season should start from the first January.
days Number of types of days in a season.
parts Number of parts in each type of day.

## (b) Day types in a case study

In the load region definition form (see Fig. 3.12), the Day types button is given to define types
of day for a case study which means grouping of days that have similar pattern of demand. A
click on this button opens a window shown in Fig. 3.13. The window displays a table of check
boxes. Rows in this table report some possible types of days and columns represent the
weekdays and a holiday. To include a weekday in a day-type, the user goes by column.
Checking a box in a column includes that weekday in the day-type given in the row for
example including Monday in the day-type “workday”.
The user can add or delete a row using the button bar given on top of the table (i.e. adding or
deleting a day-type). In the new row, the user can enter name of the new day-type s/he wishes
to introduce. This decides the total number of types of days in the case study.
Fig. 3.12 shows the initial setting of this table which shows that each weekday could be a
separate day-type (i.e. having a separate load pattern). The user should not edit these pre-
defined first 7 rows of this window in which each day is defined as a separate category. There
are four more day-types (see last four rows of the table in Fig. 3.12). The “workday” type
includes Monday to Friday, The “SunandHol” type includes Sunday and holiday (which are
defined by dates separately). The “SSH” type includes Saturday, Sunday and Holiday. The
last type is “anyday” which includes all weekdays and holidays. The user can edit these four
rows to define her/his day-types and can also add a row to define name of a new day-type.
The user has to be careful in choosing data types considering the load data pattern as well as
covering all days of a calendar year. Otherwise the program gives error message showing that
the number of days not accounted for.
For one season, the user may choose Monday as a day-type to give its load data, and then
choose other day types to cover the remaining weekdays and holiday. For the other season,
when load pattern on Monday is not different from Tuesday or any other working day, s/he
chooses “workday” type to give load data for Monday to Friday, and then chose other day
type to cover Saturdays, Sundays and holidays. In the third season, the variation in the load
may be the same through out the week; the user chooses one day type only i.e. “anyday.
Chapter 3 – 18

FIG. 3.13. Days Table Opened from the Load Regions Form of the adb Window.
(c) Defining types of days and length of parts of days
The Continue and Reload buttons (see the row of buttons below the Season table in Fig. 3.12)
are used to define length of each part of a day-type. A click on the Continue button opens a
table (Fig. 3.14) showing names of seasons and number of day-types, number of parts of each
day-type for each season as defined by the user in the load region definition. In this table,
there is a button bar with names of seasons. A click on a season shows a data field for each
day-type and a two-column table for parts of the day. There will be two data fields and two
small tables if there are two types of days in a season. The first data field is to select a
predefined day-type for the season. The field drops down the list of the day-type defined
earlier.
In the two-column table (Fig. 3.14), numbers of rows are equal to the parts of the days defined
for the selected day-type and a row to show sum of the column. The first column is to enter
names of the parts of the day, and second column is to enter the length of the part. The sum of
this column should be equal to 1.0 as the length data is given in fraction. If the sum is not
equal to 1.0, the program displays this field in pink colour. Table 3.3 gives description of the
input data on parts of a day-type for defining load regions.
If the user decides to change the number of day-type in a season or number of parts of days in
a day-type, a click on the Reload button updates the size of the day-table (i.e. Fig. 3.14)
according to the new number of day-type and parts in each day-type. It may be noted that all
the previous data on that season is lost and the user has to enter length of each part of the day
again according to the new definition.
Chapter 3 – 19

FIG. 3.14. Days Table Opened in the Load Regions Form of the adb Window.

Table 3.3. List of Data Entities on Days and Parts in Load Region Definition
Screen: Load Region Definition Part Name: Opened by click on Continue/Reload button
Figure No. 3.14
Data Field Label Description
Name Name of a part of a day-type.
Length Length of a part in that type of day in fraction. For example
in Fig. 3.14, a value of 0.2 for part “s1” of “workday” in
the “winter” season means that out of 24 hours of a work
day in the winter season, length of the first part is 20% i.e.
duration of 4.8 hours?

## (d) Dates of holidays in a model year

A click on the button of Holiday tables opens a window (Fig. 3.15) that displays calendar for
each model year. In this calendar, the program shows the weekly holiday in red. This weekly
holiday is selected by the user in the Setting window (see Section 2.3.8). A click on any date
makes it red to mark it as a public holiday, while a click on a red date clears the mark. The
program first shows the calendar for the base year, and two buttons (prev and next) are given
to get the calendar of the next model year and the previous model year, respectively.
Alternatively, the user can edit a text file containing all public holidays as discussed in the
following paragraph.
Chapter 3 – 20
In the load regions window (Fig. 3.12), a click on the Load holidays button opens a window
to select a file containing the load data for public holidays in a calendar year. The user
prepares this file using a text editor and gives dates of holidays in the format of yyyy-mm-dd
in a separate line for each holiday. On selection of this text file, the user can see these days in
red colour if s/he opens the Holiday table (Fig. 3.15).

FIG. 3.15. Holiday Table Opened from the Load Region Form of the adb Window.
3.4.3. Editing Energy Forms in an adb
In the dropdown menu of the Edit command in the main menu (see Fig. 3.8), selection of
“application db” opens the adb form. A click on the Energyforms button opens the form
shown in Fig. 3.16a. In this form, the user can work on adb and tdb both.
As discussed in Section 3.2.2, the user can model a chain of an energy form in a case study.
Therefore, names of energy forms in the adb are defined in two steps; at the first step names
of levels are defined, and at the second step names of energy forms in each level are defined.
(a) Defining levels for energy forms
A click on the adb button shows a frame for editing the adb (Fig. 3.16a). In this frame, a table
is given to levels in a system/model to be created in a case study (see Fig.3.16a). The Ins i.e.
insert and Add buttons are used for adding a level in the table before or after a selected level
respectively. If no entry is selected from the table, the program adds the new level at the
bottom of the list. In this table, the user also gives one-character identifier for the level, and
also its detailed description.

The user defines names of the levels and their identifiers. However, identifier “q” is reserved
to define energy forms with default storages. In MESSAGE solution technologies may have
output more than the demand and this surplus in supply is not stored for the next period. For
some energy forms, it may be viable to store this over-production. For all the energy forms
defined at the “q” level, surplus production is accumulated over the period by default. This is
a simple way of modelling storages which is in addition to the storage system that can be
designed using the Storage window (Sub-section 3.4.8) for controlled operation of storages.
All energy forms defined at a level with “q” identifier are treated as stock variables and
surplus production in a period can be used in the next periods.
Chapter 3 – 21
The Del button is given for removing a level from the table. Before removing a level, the user
has to delete all energy forms of that level and energy forms can only be deleted if these are
not being used by any technology.

In the example shown in Fig. 3.16a, level names are given which are commonly used for
defining an energy system. Table 3.4 gives description of the data fields given on this form.

FIG. 3.16a. Data form to Enter or Edit Energy Forms in the adb.

Table 3.4. List of Data Entities in the form for Defining Energy Forms
Screen: Energy forms Part Name: - Figure No. 3.16a
Data Field Description
Label
level name Name given to a level to define chains of energy forms in a model. All energy
forms defined in the model belongs to one of the levels. Therefore, name of an
energy form is always followed by its level name.
id One character id for a level (“q” is reserved id to define a stock level).
description Notes defining a level.

## (b) Defining Energy forms at a level

The user gives names of energy forms for each level. A double click on a level name (Fig.
3.16a) opens a window (with title of “Level: name”) for defining names. This window shows
a table containing names of energy forms if some energy forms are already defined at that
level (Fig. 3.17). Otherwise, it only shows a bar of buttons.
Chapter 3 – 22
The Ins (i.e. insert) and Add buttons are used for adding an energy form in the table before or
after a selected energy form respectively. If no entry is selected from the table, the program
adds the new energy form at the bottom of the list. Below these buttons, in the data table,
there are seven columns to enter name of the energy form, a one-character identifier (column
label id), a check box for defining if the energy form has load region data (column label
hasldr), a check box to define if the energy form has a fix pattern of supply or demand, two
columns to select the type of unit and units, and description of the energy form. Table 3.5
summarises the description of the input data on these data fields.

FIG. 3.17. Data Form to Enter Energy Forms in the Selected Level of Energy Chain .

Table 3.5. List of Data Entities for Defining Energy Forms at a Level
Screen: Level: Demand Part Name: Figure No. 3.17
Data Field Description
Label
Energy form Name of an energy form.
Id One character id for the energy from.
Hasldr Switch to choose if demand or supply for this energy form has load regions
(i.e. varying with time which could be seasons, days or parts of days).
fix Switch to choose if the demand equation for this energy form should be set
equal to the bound rather than greater or equal to which is the default case (see
Chapter 4 on the equations).
Description Notes defining name of an energy from.

In giving name of an energy form, the user can make use of the energy forms given in the tdb
or the energy uses to be defined in the system or can define the same name at each level. For
example, at the demand level, it is appropriate to have a name “MfgElect” to identify
manufacturing sector’s demand for electricity while “elect” is an energy form defined at
another level of energy representing a supply level, and “Mfg” is to identify an energy user at
the demand level. Alternatively, s/he can define “electricity” at each level because the
program adds the level with each energy form where ever it reports an energy form. It is
better to keep names of energy forms short with a detailed description given in the last
column.
In the third column (Fig. 3.16a), a check in the “hasldr” box means that the energy form has
variation in its demand/supply and has load regions data (see Section 3.2.3 and 3.4.2).
In the fourth column, a check in the “fix” field that the demand for this energy form should be
equal to the bound rather than greater or equal which is the default case.
A click on the Save button saves the data changes in the variables and closes the window to
go to the main form for defining the levels of Energy forms (Fig. 3.16a).
Chapter 3 – 23
(c ) Editing Energy Forms of the tdb in the adb window
A click on the tdb button, in the adb window (see Fig. 3.16a), opens the tdb of the case study
for a ready reference and also for any required change. The data form discussed in Section
3.3.1 for editing energy forms in tdb window is reproduced here (Fig. 3.16b). The program
opens the tdb selected for the case study at its creation stage (see Chapter 2).

## FIG. 3.16b. Editing of the tdb in the adb Window.

3.4.4. Management of Data on Energy Demands in the adb
On the dropdown menu of the Edit command in the main menu (see Fig.3.8), selection of
application db opens the adb window. A click on the Demands button opens a form to enter
the demands data (Fig. 3.18). This form shows the existing demands data of the adb (if some
data is already given) and a bar of buttons: i) to add an energy form for entering demand data;
ii) to delete demand data on an energy form; iii) to import data on an energy form from an
Excel sheet, iv) to export data to a text file, v) a data field to select a load curve for data entry,
vi) a check box to select if the load data is in absolute or relative term, and vii) a button to
import load curve data. If no demand data is given, the demands form shows only the bar of
buttons (see Para (a ) for adding an energy form in the Demands form).
Chapter 3 – 24

FIG. 3.18. Window for Editing Data on Energy Demand in the adb.
(a) Adding a new energy form in the data table for demands
In the Demands form of the adb window (see Fig. 3.18), the user needs to add all energy
forms defined earlier (Section 3.4.3). A click on the Add button gives a row of blank fields if
there are some energy forms which have been defined in the first energy level of adb but has
not been added in the data table of the Demands form (see Fig.3.19). In the new row, a click
on the arrow in the first data field lists all the energy forms that can be added. After selecting
an energy form for addition (Fig. 3.19), the user can enter the demand data as discussed in
Para (b).
(b) Entering data on an energy form
When an energy form is added in the demands form, the program gives a set of blank fields to
select its Unit (of measurement) and its type of data, and to enter the data values starting from
the first model year.
The user can go field by field for entering them. In the unit field, a double click opens the
Unit window to select the appropriate unit (see Fig. 3.53 and Section 3.7.2 for further details).
A click on the arrow in the switch field gives the list of data switches to select one. Table 3.14
describes the switches values while Section 3.6 discusses them in details.
Alternatively, the user can double click on the data field of the energy form (see Fig. 3.19).
The standard Edit window is opened to enter the demand data in a tabulated form (see
Fig.3.52 in Section 3.7.1). The program adds “demands, entry-data” in the title of the Edit
The other option is to import data. A click on the import button, given above the data table,
opens the import window (Fig. 3.20) including all energy forms given in the Demands form.
The user needs to set the Switch and Unit fields according to the data set imported (Fig. 3.18).
Para (e) in this subsection discusses this option in details.
Chapter 3 – 25

FIG. 3.19. Window for Adding an Energy Form in the Demand Table.
(c) Editing data on an energy form
If there is some demands data in the adb, the demands form shows the existing data (see Fig.
3.18). The user can edit the data for changing the data values or for changing the unit of the
measurement. If the user wants to change the unit of measurement, the program facilitates
conversion of the existing data into a new unit of measurement.
A click on the arrow given in the unit field opens the Unit window (see Fig. 3.53) that gives a
list of the units maintained in the adb. The user can select a new unit from the list. A click on
the Recalc button (see Fig. 3.53) converts the given data set from the previous unit to a new
one.
(d) Deleting data of an energy form
A click in the unit or data field of an energy form in the Demands form (see Fig. 3.18),
followed by a click on the Delete button, removes the demand data of that energy form from
the adb. The complete row for this energy form is removed from the data table.
(e) Importing/exporting data on an energy form
The model allows importing of data on demands from a text file or a work sheet e.g. an Excel
sheet. Sub-section 3.13.4 discusses how these import files are prepared. A click on the Import
button, on the Demands forms (see Fig. 3.18), opens a window to enter name of the file (and
range of cells if importing from a work sheet) for importing data (see Fig. 3.20). The program
displays name of the energy form for which data is being imported beside the field entitled
“file:”. Double click in this data field opens the MS window to locate and open the file in the
system (see Fig. 3.21).
Chapter 3 – 26

## FIG. 3.20. Window for Importing Data on Energy Demand.

FIG. 3.21. Window to Locate the Excel file for Importing Data.

In the import window (Fig. 3.20), the second data field, labelled “sheet:” is given to enter the
sheet name or number, and the third field labelled “range” is given for entering the range of
the cells in the sheet that contain the data. After selection of the file, and entering name of the
sheet and the range, a click on the import button copies the identified data in the data field of
the Demands form. The user needs to edit the unit field and data switch accordingly (Fig.
3.18).
Chapter 3 – 27
If a user wants the program to check the name of the energy form for which the data is being
imported, the check box (entitled chk name) should be ticked (Fig. 3.20) and the range of cells
should include the cell containing the name of energy form. If the chk name box is not ticked,
the program assumes that the correct range has been identified for importing the data and the
cells range does not include the cell containing the name of the energy form.
The Export button given in the Demands form (Fig.3.18) is to export demand data, entered in
the form, to a text file. A click on Export button creates a text file. The user can see this file
using the Edit command as discussed in a section on extracting of intermediate results in
Chapter 4.
(f) Entering/Editing data on load curves
When the user defines an energy form in the adb, he also specifies if the energy form has load
data (see Fig. 3.17). In the Demands form, the “load curves:” field is to get a list of energy
forms which have seasonal variations in demand and the “abs/rel” field to select pattern of
input data giving these variations (Fig. 3.19) either in the terms of shares or absolute load
data. A click on the arrow in the load curves field (Fig. 3.19), gives a list of all energy forms
that need load data (see Fig. 3.22).

FIG. 3.22. Window to Get the List of Energy Forms that have Load data.
A click on one of these energy forms opens a window to enter its load data. As discussed,
there are two alternative methods of entering load data. The share method is the default case
while a click on the “abs/rel” field means load data is given. If there are more than one energy
forms that have load data, the user have the choice of giving shares data for one energy form
and load pattern for another. As the default format is share data, it is better to enter first load
data for those energy forms that have shares data. Then select the “abs/rel” field and edit data
for those energy forms that have load curves data.
The following two paragraphs (g and h) discuss two alternative windows to enter load data. In
both the windows, there are some common features. The name of the selected energy form
and its level are shown in the window’s title. The program allows entering data on load curves
Chapter 3 – 28
for all model years, or for some selected model years or only for the first model year that is
applied for all model years. Similarly, if the load data are given for some selected model
years, values given for a model year are used for all subsequent years until the model year for
which another set of data is given.
Fig. 3.22 also shows two buttons given to enable import/export of the load curve data. A click
on the import button opens a new window to select the import file. Sub-section 3.1.3.4
discusses this window and the option for exporting load data entered through the interface in
to a text file.
(g) Share of seasons and days in the annual demand
When the user does not click on “abs/rel” field, selection of any load curve in the Demand
form (Fig. 3.22), gives a window to enter load data in terms of distribution of annual demand
at each level in the structure of the load curve (Fig. 3.23a). In the Load curve window (Fig.
3.23a), the upper part shows a set of buttons for management of data on load curves — such
as adding or deleting a model year from the data set on a load curve. The middle part of the
window shows two overlapping frames; the first one to show the model years for which load
data have been given. The second frame gives data fields according to the structure of the load
curve defined in the load region window (i.e. names of seasons, types of day in every season,
number of parts of a day type (see Fig. 3.12).
In this window (Fig. 3.23a), by default, the program shows distribution pattern of the annual
demand for the first model year. This pattern assumes that the distribution of the annual
demand is same as the distribution of load regions i.e. distribution of the calendar year. In
other words, it assumes a flat load curve. The program gives the warning message and the
user can edit the given distribution pattern to represent the load curve.
The second frame (Fig. 3.23a) shows a bar labelled with titles of the seasons. A click on a
season shows data fields according to the load regions defined for that season (see Section
3.4.2). For each season, the first row shows titles of the types of days (e.g. SunandHol,
anyday) with data fields below them showing shares of each day type in the total demand for
the season. Every time, when the user enters or modifies share of a day type in the demand,
the program re-computes the share of the last type of the day to have row-sum (i.e. sum of all
types of day) equal to one.
For each day type, a column of data fields is given; one field for each part of the day defined
for that day type. For example in Fig. 3.23a, the SunandHol has two parts, while the other
type has only one part. For each day type, when the user enters or modifies share of a part, the
program re-computes the share of the last part to have column-sum (i.e. sum of all parts of the
day) equal to one. Table 3.6 summarises these data fields and input data to be entered on the
In the example given in Fig. 3.23a, 49.58% of the annual demand falls in the winter season.
The demand of the winter season is distributed between workday (71.42%) and remaining
(28.57%) in the daytype “SSH”. In the winter season, the demand of the “Workday” is
distributed between three parts and part one (i.e. S1) has only 20% of the workday’s demand.
Assuming D is the annual demand then demand in S1 is D×.4958×.7142×.2. MESSAGE
computes demand for each load region and these are the bound values for the technology
providing this demand (see chapter 4 for details on equation).
Chapter 3 – 29

FIG. 3.23a. Window to Enter Data on Shares of Load Regions in Annual Demand.

## Table 3.6. List of Data Entities on Load Data

Screen: Load curve for: Part Name: Figure No. 3.23a
Data Fields for Description
Seasons Fraction of each season in the annual demand for the energy form.
Day type Fraction of each day type in the demand for the energy form in the
selected season.
Parts of day Fraction of each part of a day in the demand for the energy form in the
selected day type of the selected season.

## (h) Absolute/relative load curve data in annual demand.

If the user selects the “abs/rel” field in the Demand Window (Fig. 3.19), s/he can enter
absolute or normalized load curve data. With this selection, the program changes the load
curve window (Fig. 3.23b) if the load curve is not already defined. The user should delete an
existing load curve to redefine it. In the two windows to enter load curve data (Figure 3.23a
and 3.23b) buttons in the first frame are exactly the same as given in Fig. 3.23a. In the second
frame of the window for abs/rel load curve data (Fig. 3.23b), two-column table is given in
which first column shows names of all load regions defined by the user, and the second
column is to enter data. This data should be in absolute term (as shown in Fig. 3.23b) when
the toggle of “absolute” is selected and should be share of each part in the total annual
demand (as shown in Fig. 3.23c) when the toggle of “normalized” is selected.
Chapter 3 – 30

## FIG. 3.23b. Window to Enter Data on Load Curve?.

For the choice of “absolute”, the user gives energy values for each region in the selected year.
To start with, the model assumes annual data value given in the demand form as the average
of all load regions and shows this value in all load regions. The user can edit this data and the
program computes average of the new values to show in the “current” field. The user can
switch over from one option to another; the program accordingly calculates the data and
shows it in the table. If the user saves the data and re-open it, the model will display these
computed energy values in the normalized form.
Chapter 3 – 31

## FIG. 3.23c. Window to Enter Data on Load Curve?

In these windows (Fig. 3.23b and c), a set of buttons is available to further facilitate the users.
Functions of these buttons are as follows:

Recalculate Re-calculate the data after the user makes any change in absolute or
relative value of a load region.
Renormalize To get the new relative values after the user changes data values.
Rel = 1 To set all values in the data table equal to 1??.
Copy down To repeat value entered in a cell to the remaining cells down word in
the data column.
Import To import load data from a text file. The program opens the standard
window to locate the file in the appropriate folder.
Export To save the data entered in this window into a text file. The program
opens the MS Window to open a new file to save this data.
(i ) Add/Delete an year from the data set on load curves
In the load curve window for any energy form (Fig. 3.23a or b), by default the program shows
the default values for the load curve for the first model year of the case study. The user can
add other model years by a click on the Add year button, which gives a data field to enter a
new year (see Fig. 3.24 or 3.23b). A click on the arrow in this field lists the model years
defined in the case study. A selection of the year adds it to the year bar given in the middle
part of the window (see discussion in section (f) of this section). The program displays the
structure of data fields with the default data set. The program takes the structure from
definition of the load regions for the selected year (Section 3.4.2).
A click on the delete button also gives a field to select the model year for deleting. In this
field, a click on the arrow shows the list of the years for which data has been entered. A user
Chapter 3 – 32
can delete any model year except the first model year. The program also shows a cancel
command; if the operation has to be cancelled.

FIG. 3.24. Window to Add a Year for Entering Data on a New Load Curve.
(j ) Save the data set on load curves
In the load data window (Fig. 3.23a or b), a click on the Save button saves the data on an
energy form entered for the model years and closes the window.
(k ) Make a Graph of the data set on load curves
In the load data window for any energy form (Fig. 3.24), a click on the Graph button opens a
window showing the graph of the input data entered for an energy form.
3.4.5. Management of Constraints/Relations/Variables
In dropdown menu of the Edit command (see Fig. 3.8), selection of application db opens the
adb window and a click on the Constraints button opens the Constraints/Relation/Variables
form (see Fig. 3.25). Using this form, the user can either define a relation or a variable. The
former defines a relation between technologies/storages/resources while the latter defines a
variable that can be used in any relation.
As discussed in Section 3.2.5, there are five predefined groups of constraints/relations. In the
Constraints/Relations/Variables form (Fig. 3.25), the first field is to select one of five groups
and the second field is for selecting name of a relation in the selected group. In this form, the
New and Del buttons are given for adding and deleting a relation from the last four groups,
respectively. The first (i.e. “Costs”) group contains four predefined set of relations pertaining
to operation costs, investment costs and two subgroups. All buttons remained disabled, unless
a group is selected. Selection of a group enables the New button, while selection of a relation
enables the Entries, Copy and Del buttons. The Add or Delete buttons are not enabled for the
“costs” group, which contains only predefined relations and constraints.
Chapter 3 – 33
The following sections discuss the windows to define a relation in the last four groups and to
enter the data on entries in it and constraint values on the resultant values of the relation. The
predefined relations/constrains of the first group are discussed in Para (i) of this Subsection.

## FIG. 3.25. Window Showing the Constraint/Relations Form.

On the main form of constraints/relations (Fig. 3.25) after selection of a group, a click on the
New button opens a window to give name of the new relation and its position in the group
(see Fig. 3.26). After a click on the Ok button, the program displays the form to enter data of
the new relation (see Figures 3. 27 and 3.28).
Chapter 3 – 34

## FIG. 3.26. Window to Enter a New Relation in the adb.

(b) Editing of an existing relation
Each relation belongs to a constraints group. To modify a relation, selection of its group is
needed first. A click on the arrow in the group field lists all groups of constraints to select one
(see Fig. 3.25). A click on a name on this list, selects it. A click on the arrow of the relation
field lists all relations that have been defined in that group in the adb. Selection of a relation
gives a form showing some major data on this relation (see Fig. 3.27). This form is referred to
as relations form and it has two parts; called single entries and multiple entries (see Section
3.2.5 for overall structure of data on constraints groups).
On selection of a relation from a group (i.e. a click on a group followed by a click on a
relation) give the data fields to enter the data on a relation (shown under the label of “single
entries”), and a set of buttons to define constraints associated with the relation value (shown
under the label of “multiple entries”).
The windows for single entries of relations defined in five groups are similar except for group
2 (Fig. 3.27a) that has additional field of “relation type” and if “river” type is selected the
constraint form shows additional buttons to define inflows and outflows to water storages
through a river system. Paragraph (a) in Sub-section 3.4.8 discusses these buttons under
multiple entries on a relation.
Chapter 3 – 35

## FIG. 3.27a. Window Showing the Constraints/Relations/Variables Form for Group2

Chapter 3 – 36
( c) Single entries part
The single entries part shows name of the relation and a brief name given as an identifier. The
input/out data field is to show whether the coefficients in the relation are related to the input
or the output of the technologies included in the relation; “I” for input and “O” for output. For
example, the user may define a relation to compute SO2 emissions from electricity. S/he will
include all electricity generation technologies using fossil fuels in this relation. In this
example, SO2 emission factors will be coefficients of the technologies. S/he may either define
these factors as the emissions per unit of fuel used or per unit of electricity generation i.e. “I”
or “O” respectively.
A relation may compute activity, or capacity or monetary value. The user may like to set a
limit on the resultant value of the relation. S/he needs to selects the type of the limit according
to the resultant value of the relation. The field labelled “lim type” (Fig. 3.27) gives the three
options to select one of the above-mentioned types. For each of these options, there is a set of
units of measurement (see Table 3.7). The program displays these options according to the
selection made in the limit type field. For the above discussed relation of SO2 emission, the
user will set limit type “activity” for which the unit of measurements displayed will be:
energy, volume, weight and other. The user will select one of these according to the emission
factor s/he will be using. The user may like to set the limit only for some load regions; if the
resultant value has a load curve. A field entitled “for-ldr” is given to select load region for
which constraint have been defined.
The user may define three data entities to constraint the resultant value of a relation; cost
associated with every unit of the resultant value, upper limit and lower limits of the resultant
value. For the relation of SO2 emission (example discussed above), the user may define
external cost of the emission (US \$ per kg of SO2 emission), the upper/lower limit on the
emissions.
In the single entries part of the relations form, the program gives a small table (see middle
part of Fig. 3.27). In this table, three rows of fields are given to enter the above discussed
three data entities of cost per unit, upper limit (labelled as upper lim), and lower limit
(labelled as lower lim) on the relation value. In this table, three columns are given to select
units, data switch and data values (labelled as Time series) on these items. Table 3.7 lists all
the data fields for entering the relation data with some description.
For the three data entities, the value represents
• Average annual of each model year if the relation is defined in the group 1 or group 2
• Total value in study period (i.e. annual value multiplied by number of years in the period)
if the relation is defined in the Cumulative group.
• Cumulative of each study period (total value of each study period inclusive of the
previous periods up to that period) if the relation is defined in the Cumulative per perod
group.
A double click in the unit field opens a window (see Section of 3.7.2) for selection of an
appropriate unit for each data entity, and a double click in the Time series field opens the
standard Edit window (Section 3.7.1). See Section 3.6 on data Switch.
The last row in single entries part gives four data fields to enter the first year in which the
relation value is constrained and the constraint value for it, and similarly the last year and its
constraint value.
All the three entities (i.e. cost, upper- and lower-limit) may vary by load regions (see
Subsection 3.4.2 for definition of load regions). In the Constraint/Relation form (Fig. 3.27), a
Chapter 3 – 37
field labelled “loadcurves for” is given for selection of the load curves for the relation. In this
field, a click on the arrow shows the three options to choose from i.e. cost, upper and lower.
Selection of one these opens a window to enter data showing distribution by load regions of
the value given in the main form (see Para (e) in the current subsection for details).

## Table 3.7. List of Data Entities on Constraints/relations

Screen: Constraints/Relations Part Name: single entries Figure No. 3.27
Data Field Time Description
Label series
data
Switch
Relation name Name of a relation defined in a constraints group.
ident Identifier for the relation.
Cost Yes It is cost per unit of resultant value of the relation if it is between
the defined lower and upper limits. This value could be positive
(negative) depending on the nature of the relation; whether a
damage (benefit) is associated with the resultant value of the
relation.
Upper lim Yes Upper limit on the resultant value of the relation.
Lower lim Yes Lower limit on the resultant value of the relation.
First year The year in which the initial value should be imposed on the
relation first time.
Initial value Value of the limit on the resultant value in the first year, which
should be between the upper and lower limits defined for the
relation.
Last year The last year in the End value should be imposed on the relation.
End value Value of the limit on the resultant value in the last year, which
should be between the upper and lower limits defined for the
relation.

(d ) Multiple entries in the relations form for group1, group2, cumulative and cum per period
MESSAGE facilities modelling of deviation of the relation value from the limits defined in
the single entries part and any additional cost that is referred as penalty i.e. cost in addition to
the one defined in the single entries part. This additional cost is to be applied up to certain
limit defined by the user below or above the limits given in the single entries part. The penalty
cost can have stepped increase (one value applied for on step) or can have interpolated values
(i.e. the program interpolates the cost given by the user). These two definitions of the penalty
cost are referred as penalty and soft limits in the model and are entered in the multiple entries
part of the constraints/relations form (see Fig. 3.27).
Penalties Window
In the main window of a relation, the user may enter upper/lower limit on the relation and a
cost associated with this relation (see discussion above on Fig. 3.27). In addition, the user can
define a step function to increase the cost given in the main window and attach limits to it.
Chapter 3 – 38
This is referred to as penalties. The values given in the stepped function are additive including
the values given in the main window.
A click on the penalty button opens a window to edit the penalties data (see Fig. 3.28). A
click on the Edit command in this window gives a set of data fields to enter data on penalty
cost and associated limit. In this data set, the first column is to give data unit, the second to
give data type switch and the last to give data values. A double click in the unit field opens a
window (see Section of 3.7.2) for selection of appropriate unit, and a double click in the Time
series field opens the standard Edit window (Section 3.7.1). See Section 3.6 on data Switch.
The Table 3.8 gives the list of data fields and description of input data for penalties window.
These data values are added to the cost and limit values given in the main window of this
relation. For the limit values, any positive value is added to the upper limit given in the main
window and a negative value is added to the lower-limit?? given in the main window.

A click on the Screen command followed by the selection of Save saves the data entry and
selection of Close closes the window.
Fig. 3.28 shows the step function for a relation named SO2 and Fig. 3.29 gives the graphical
representation of this stepped function. According to the data in these figures, the upper limit
of the relation is 20 MWyr, the lower limit is zero and the cost associated with this relation is
zero (see Fig. 3.28). According to the stepped function defined in the Penalties window (Fig.
3.28), the cost is “US \$ -1” if the relation value is between 0 and -15 i.e. lower limit net of
“15”. The cost becomes “US \$ 18” if the relation value is between 20 MWyr to 45 MWyr (20
plus 25). The cost further increases to 48 if the relation value is between 45 MWyr to 125
MWyr.

FIG. 3.28. Data Table for Penalties in the Multiple Entries part of the Constraints form.
Chapter 3 – 39
Table 3.8. List of Data Entities on Penalties for the Constraints/Relations
Screen: Penalties Part Name: - Figure No. 3.28
Data Field Time Description
Label Series
Data
Switch
cost Yes A penalty could be imposed if the resultant value of a relation falls
outside the upper and lower limits defined for the relation. It is cost
per unit of additional increase in the resultant value of the relation
that falls outside the limits. Penalty cost is in addition to the cost
defined for the relation and is applied up to the given limit.
limit Yes Value of the limit up to which the penalty cost will be applied. The
user can define this value for the lower and upper limits separately.
A negative value may be defined for the deviation from the lower
limit.

These values are added to the cost and limit values given in the main window of this relation.
For the limit values, any positive value is added to the upper limit given in the main window
and a negative value? is added to the lower-limit given in the main window.

Penalty cost
(US \$ 48)

## Penalty limit for second step = 80

125
Pentalty Cost
(US \$ 18) Penalty limit for first step = 25
45

20 Upper limit = 20

0 Lower Limit =0

## -15 Penalty cost

Resultant (US \$ -1)
Value of
the
relation
Study Period

## FIG. 3.29. Graphical Representation of Penalty Costs.??

Chapter 3 – 40
Soft limits window
On the relation form (Fig. 3.27), a click on the softlims button opens a window to edit the data
on soft limits (Fig. 3.30). This form and data table is exactly the same as shown in Fig. 3.28
which is discussed above. A click on the Edit command in the form gives a table to enter the
soft limit and the associated penalty cost. Table 3.9 gives further description of the input data
in this window. A click on the Screen command followed by the selection of Save saves the
data entry and selection of Close closes the window.
If the values given in Fig. 3.29 are entered in the soft limits window, the program calculates
penalty cost per unit (referred to pc) by interpolating US \$ 18 to US \$30 for 5 units and hence
every additional unit has higher cost.?

FIG. 3.30. Data Table for Penalties in the Multiple Entries Part of the Constraints Form.

## Table 3.9. List of Data Entities on Soft limit on the Constraints/Relations

Screen: Soft limit Part Name: - Figure No. 3.30
Data Field Time Description
Label Series
Data
Switch
costs Yes The user can define a soft limit that allows the resultant value of a
relation to fall outside the upper and lower limits defined for the
relation. This cost is the maximum addition ??in per unit cost and
is applied to the last unit of the limit value. The program
interpolates the cost for each additional unit using the cost given in
the relation and this maximum value.
limit Yes Value of the soft limit i.e. up to what extent the upper/lower limit
can be violated with the additional cost. The user can define this
value for the lower and upper limits separately. A negative value
represents deviation from the lower limit.
In the constraints/relations form (Fig. 3.27), three items are given for each relation i.e. cost
associated with it and the upper and lower limits to constraint the relation. The program
allows the user to define these values different for each load region (e.g. SOx emissions have
different cost and limit values in different seasons). For the values given in the relation forms,
the user can give load curves to distribute these annual values in to different part of the year.
In the constraints/relations form a field (labelled “load curves for”) is given to define the load
curves. In this field, a click on the arrow shows the three options to choose from i.e. cost,
upper and lower.
Chapter 3 – 41
On selection of any of the three options, the program opens a window showing structure of
the load curve (Fig. 3.31). The title of the window shows the names of constraints group and
the relation and the option of the item to give the load curve.

FIG. 3.31. Window for Load Restriction in the Constraint Form for the Cost Option.
Fig. 3.31 shows the window when the cost option is selected. This form is exactly the same as
discussed in the Para (g) of the Subsection 3.3.4. In brief, it gives the load regions defined for
the case study and the user gives shares of each load region in the value of the selected item
(i.e. cost or upper limit or lower limit) defined for the relation in its main form (see Fig. 3.27
and discussion on Single entries part). The program shows some default values and the user
can edit them.
(f ) Entries window for a defined relation in a constraints group
For defining a constraint on a group of technologies/resources/storages, the user defines a
relation. In the constraints/relations form (Fig. 3.27), the Entries button remains disabled
unless a constraints group and a relation is selected. On selection of a relation, a click on the
Entries button opens a window for entering technologies/resources in the relation (see Fig.
3.32).
This Entries window is to select technologies, energy resources and storages among which the
relation is defined and the coefficient value is given for each technology/resource/storages in
the relation. A coefficient value gives the weight (in fraction) given to the contribution of the
technology/resource/storage in a relation. This weight given corresponds to per unit activity or
capacity of technology/resource. The relation among the technologies could be in their
capacities or in their activities. For the activities, the relation is through the main input or
through the main output. This selection is defined in the main window (Fig. 3.27).
Chapter 3 – 42

## FIG. 3.32. The Entries Window from the Constraints Form.

In this window, three data fields are given to get the lists of those
technologies/resources/storages that are defined in the adb but are not included in the selected
relation (If there is no storage in the database, the program does not give the third data field to
get the list of storages). In these lists, the program adds “tec” into the names of the defined
technologies, and “res” in the names of resources for identification. A click on the arrows in
these fields gives these lists for selection. The user makes selection one by one for adding
them into the selected relation. Below these fields, there is a data table showing existing
entries in the relation. This table shows:
(1) Technology (or resource or storage) name.
(2) Type of entries; a technology (“tec”) or a resource (“res”) or a storage (sto).
(3) Switch for contribution form whether capacity or activity; “con” for construction of
capacity and “act” for activity.
(5) Type of the coefficient data set (i.e. c, ts, g, pg, pl. see Section 3.6 for discussion).
(6) Coefficient data for the contribution of a technology or resource in the relation.
In the data table (Fig. 3.32), items 1 and 2 are filled in when the user selects a technology or a
resource from the list. The user can edit items 3 and 4 using the arrow in the data field that
lists the options to choose.
For item 3, three options are i.e. yes, no, and def (for default). Selection of yes means that the
coefficient values for the technology/resource have load regions while selection of no implies
that coefficient values are given on annual basis. Selection of def implies that the model
decides weather to use the load region or not.
If the user selects “no” option for item 3, a double click in the data field opens the standard
Edit window (see Section 3.7.1 for discussion) with the small change that the unit field is not
given. The coefficient values given are defined as per unit of the relation value. For example
to put constraint on electricity generation from all renewable sources, a relation is defined that
include all renewable technologies generating electricity, and their activity is selected for
Chapter 3 – 43
contribution to the relation, the coefficient values for all these technologies are 1. However, if
the relation is defined to compute and constraint CO2 emissions from electricity generation,
then all electricity generation technologies are included in the relation with activity
contribution and the coefficient values are emission factors for these technologies (i.e.
emission per unit of electricity generation). The units of the emission factors depend on the
units for electricity generations and the units in which relation value is required. For example,
the required units of relation value (CO2 in this example) are tonnes and the electricity
generation units are GWyr then units of emission factors are tonnes per GWyr.
If the user selects “yes” option for item 3, a double click in the data field opens the load curve
window to enter coefficient values by regions. This load curve window is exactly the same as
given in Fig. 3.23 and is discussed in Para (g) of the Subsection 3.3.4.
If the user decides to delete a technology/resource from the table, saving of an empty data set
for the selected technology removes it from the relation (i.e. selection of “-” in the data
switch, deleting of all data values, followed by a click on the Save button).
(g) Copy a Relation into another Group
A click on copy button in constraints/relations window (Fig. 3.27) opens a window to copy a
relation from one group to another group (Fig. 3.33). This helps in copying entries defined in
a relation to another relation.

## FIG. 3.33. Window for Copying a Relation/Constraint into another Group

(h ) Deleting a Relation from the adb
On the main form for constraint/relations (see Fig. 3.27), a click on the relation name
followed by a click on the Del button deletes the relation.
(i) Editing of Pre-defined Constraints/Relations in the “Costs” Group
This Group contains five predefined relations. On selection of this Group, the program shows
the first relation in the “relation field” (Fig. 3.27a), while a click on the arrow in this field
drops down the complete list of the predefined relations which includes “operating”,
“investment”, “resources”, “relations1” and “relations2”.
The user can edit these predefined relations to define some limits on their values. For
example, the operating relation can be used to put a limit on system-wide operating cost.
Similarly, the investment relation can be edited to put limit on investment in the system.
Chapter 3 – 44

## FIG. 3.27b. Window Showing Predefined Relation/Constraint in the Costs Group

3.4.6. Editing Data on Technologies in the adb
On the dropdown menu of the Edit command (see Fig. 3.8), a click on the application db
opens a window for adb. A click on the Technologies button in the adb window gives a form
for entering or editing data on technologies (see Fig. 3.34) that the user considers to be useful
for the selected case study.
Chapter 3 – 45

## FIG. 3.34. Window to Enter Data on Technologies in the adb.

On the technologies form (Fig. 3.34), the upper part is for management of technologies i.e.
addition, deletion, selection of a technology for data editing, and adding a technology from
the tdb. The lower part contains a frame that is used to show the data form of a selected
technology (see Figs. 3.37 and 3.38). This data form is not displayed unless an existing
technology is selected or a new one is added. This form is displayed with no entries when a
new technology is created.
On the technologies form (Fig. 3.34) the data field, labelled “technologies” is to get the list of
technologies defined in the adb, and to select one of those. A click on the arrow in the
“technologies” data field (Fig. 3.34) lists all the existing technologies in the adb. The user can
select one of these to modify its data or to delete it.
The program allows the user to get a list of some selected technologies, which use one
particular input, produce a particular output, and are included in a certain relation. This saves
the time of going through a long list of technologies. For example, the user can list all
technologies that are using natural gas as input and producing electricity while they may be
included in any of the relations (see Section 3.4.5 constraints/relations). Three data fields,
labelled “input”, “output” and “relations”, are used for making this selection (see Fig. 3.34).
In the “input” and “output” data fields, a click on the arrow displays the list of all energy
forms defined in the adb. Similarly a click on the arrow in the relations:” data field lists all the
relations that have been defined in the adb. Hence, the user can choose the required energy
input or output or a relation from the list.
The program gives two options to combine the three criteria of input, output and relation. A
row of toggles gives the operators for combining the selected input, output and relation. A
check on “and” implies joining of all the three selections. The program gives the list of only
those technologies that have the selected input, output and relation. Alternatively a check on
Chapter 3 – 46
“or” implies joining the three selections with the “or” operator. The program gives the list of
those technologies that have either the selected input or output or the relation.
In addition to the input, output and relation criteria, the user can also use investment criterion
to list the selected technologies. A row of toggles is given beside the input data field (see Fig.
3.34). These buttons gives three options on basis of investment data. A click on “all” makes
selection of technologies irrespective of their investment data, while a click on “yes” gives
only those technologies that have investment data, and a click on “No” gives technologies that
have no investment data.
Another way to select a group of technologies is to enter the common part of their names. For
example, the user may have defined “oil_” at the start of all oil-related technologies. S/he may
get the list of these technologies by entering “oil_” in the “name(re):” field followed by a hit
on Enter key.
On the technologies form (Fig. 3.34), a click on the New button opens a window to add a
technology in the adb and its place in the list of the existing technologies (see Fig. 3.35). In
this window, a data field is given to enter name of the new technology. Another data field is
given to select the name of the existing technology after which the new technology will be
added. Below this field, the program lists all the existing technologies and the arrow on the
scroll bar can be used to go through this list. A click on one of the names selects it. Keeping
all technologies of a similar type close to each other in the list will help in their use in the
model.

## FIG. 3.35. Window to Add a new technology in the adb.

A technology is defined to supply an energy form and it may be using the energy forms
defined at various levels of the energy chain. Hence, technologies are linked to the energy
forms/levels. Therefore, in adding a new technology, it will be appropriate to construct the
name by making its input as the first part of the name and function of the technology as the
second part and use the energy forms defined at various levels as the input and output of the
technology.
Once a new technology is created, the program gives a detailed form to enter two sets of data
on the technology i.e. capacity data and activities data. Figs. 3.37 and 3.38 show this form for
these two sets of data. Section on data editing discusses this form in details.
Chapter 3 – 47
The user can add a new technology by copying an existing technology with a new name. A
click on the copy button (Fig. 3.34) copies the selected technology and opens a window to
enter name for the new technology and its place in list of the technologies.
(b) Deleting a Technology from the adb
A click on the arrow in the “technologies” field gives the list of technologies (see Fig. 3.36).
Selection of any one of the technologies followed by a click on the Del button deletes it. The
program confirms the operation before deleting the technology.

## FIG. 3.36. Window to Get the List of Technologies in adb.

The Screen command on the menu bar of the adb window (see Fig. 3.36) has two options:
Save and Close. It is recommended that the user clicks on the Save command while making
changes in the adb. The program keeps changes made in the adb in the memory. It writes
down data on the database files only when the Save option of the Cases command is clicked
or when the case study is closed (Chapter 2). It is recommended that before moving from one
form to another form (e.g. from Technologies to Demands), the user should Save and Close
the current form and go to the Cases command of the main menu bar and click the Save
(d ) Editing Data on Capacity of a Technology in adb
The data set on capacity of a technology consists of two parts; a part on technical and
economic parameters (referred to as “single entries” in Fig. 3.37) and a part on defining
relationship of this technology with the energy system modelled in the case study referred to
as “multiple entries” in Fig. 3.37. The following paragraphs discuss these two parts.
Chapter 3 – 48

FIG. 3.37. A Form to Enter or Modify Data of a Technology in the adb/tdb Window.
Single entries on capacity of a technology in the adb
In the first row of the Single entries part, a data field is given to enter name of the technology,
the program shows an identity code in the second field when the user selects input and output
of its main activity (see next Para (e) on editing of activity data).
Each activity represents a mode of operation. For example, a technology may operate in three
modes: steam generation, electricity generation, and steam and electricity generation both.
These three modes are represented by three activities. The user can choose whether the
operation time of the technology is fixed among the defined activities or variable by selecting
the two toggle buttons of yes and no in the box labelled “fixed”. The box labelled “altern.
Op.” is to show the number of activities i.e. modes of operation of the technology. The
program updates this counter when the user adds a new activity in a technology.
The second row has a data field to select capacity unit of the technology. A dropdown list in
this field gives all units allowed in MESSAGE to represent capacity of a technology. A
technology may be introduced to replace an existing technology under a rehabilitation
program (see Para (h) on rehabilitation in this Sub-section for detail). A dropdown list in the
second gives a list of the existing technologies in the adb. The user can choose on of these
technologies to be replaced by this technology.
The third row has two data fields to enter the first year and the last year for building the
technology.
The following eleven economic and technical parameters may be defined for a technology
(values in the brackets are their default values) and all of these parameters are optional.
Chapter 3 – 49
• Plant factor (1.)
• Minimum utilization rate referred as minutil (0)
• Plant life (30.).
• Investment cost; referred to as “inv cost” on the form (0.).
• Fixed Operation and Maintenance cost; referred to as fixed cost on the form (0.).
• Installed capacity in the base year; referred to as “hist. Cap.” on the form (0).
• Minimum power if in operation; referred to as “min. power” on the form (0).
• Maximum operation time; referred to as operation time on the form (1.).
• Unit size.
• Construction time; referred to as “constr. Time” on the form (5).
• Maximum power; referred to as “max. power” on the form.
For each of these parameters, three data fields are given: first field to select the unit, second
field to select the data type switch, and third field to enter data values. Table 3.10 gives the
list of data fields given on this form and the definition of the data entities to be entered in
these fields.
The user can enter or modify any data field directly one by one. Alternatively a double click
on the field for data values (labelled as “Time series”) opens a window to edit all the data
fields in a table format. This window has a standard format and is discussed in Sub-section
3.7.1 in details.
In editing data, field by field, a double click on the Unit field opens a window listing all the
units appropriate for the selected parameter. This Unit window also has a standard format and
is discussed in details in Section 3.7.2.
A click on the arrow in the Switch field lists the data types that can be entered in the adb.
Section 3.6 discusses this list in details. The user can select one of these types and the data
values should be given accordingly in the Time series field.
It is important to note the difference between the plant factor and minimum/maximum power.
The user may model a technology to either represent a specific production facility such as a
power plant or to represent a facility in general. In the former case, s/he gives the minimum
and the maximum capacity in the fields for “min. power” and “max. power”, the average
capacity factor of the facility. In the later case, s/he gives defines capacity factor as “1” to
indicate that at a certain time all the capacity may be utilized but also defines the operation
time to model maintenance time. The data on operation time is with reference to 8,760 hours
in a year and is defined as share of the time it will be available?.
The user may define a technology that consists of multiple units and define unit-size.
Defining of a unit-size will increase the computational time of the model, therefore it is
recommended that the user first run the model without the unit-size to get the approximate
results and then do the final runs with unit-size to refine those results.
Chapter 3 – 50
Table 3.10 List of Data Entities on Technologies
Screen: Technologies/Capacity Part Name: single entries Figure No. 3.37
Data Field Time Description
Label Series
Switch
name Name given to a technology.
id One character identification code for a technology.
First year First year in which the technology can be built in the future.
Last year Last year in which the technology can be built.
Plant factor Yes The meaning of the plant factor depends on assumption about its load
region.
• It is the maximum availability of the technology per year if it has no
• It is maximum availability of the technology in each region if it has
• It is the maximum availability in the load region with the highest
load utilization given by the pattern, if the technology has a fixed
production pattern over the load region.
A technology has load region if one of its inputs/outputs has load region.
Minutil Yes Minimum utilization rate: Fraction of time in a year the technology must
be used /dispatched.
Plant life Yes Operational life of the technology.
Inv cost Yes Investment cost per unit capacity or main output. It is the overnight cost
in constant prices of a certain year.
Fixed cost Yes Fixed operation and maintenance cost in constant prices of 2000 per unit
of installed capacity.
Hist. Cap. Yes Historical capacity. Capacity of the technology built before the 1st. study
period.
• For switch value hc, year-and-capacity pairs defining capacity built
in various years; each value separated by at least one space.
• For switch value cg, capacity in the base year followed by average
annual growth at which this capacity was built.
Min. power Yes Minimum capacity level (power) at which the technology is allowed to
produce Time switch values are the same as discussed for investment.
Operation Yes Fraction of time in a year the technology can be in operation.
time
Unit size Yes This integer number gives the required unit size for addition if new
capacity addition is to be considered as integer capacity block. In
addition to this, the user needs to define constraints on capacity addition.
Constr. time Yes Time required for constructing a technology.
Max. power Yes Maximum capacity level at which the technology can operate.
Chapter 3 – 51
Multiple entries of a technology in the adb
The bottom part of Fig. 3.37 shows a frame to enter multiple entries on a technology. For this
purpose a bar of buttons is given labelled with bounds and constraints on capacity (see
Section 3.2.1 for introduction).
The program has a set of windows to enter data on bounds and constraints. These windows
have a standard format and are discussed in details in Sub-section 3.8.1. A click on any of
these buttons opens the related window, and the program adds name of the selected
technology and type of entry being made in title of the window. If a bound or constraint is
imposed on a technology, the related button is shown in green colour.
(e) Editing data on activities of a technology in the adb
The data set on activities of a technology consists of two parts; a part defining its technical
and economic data (referred to as Single entries in Fig. 3.38), another part defining
relationship of the technology with the energy system modelled in the case study (referred to
multiple entries in Fig. 3.38). An activity represents a mode of operation of the technology.
For example a power plant is a technology and electricity generation is its one activity. The
power plant can be run in the alternative mode to generate only heat for direct supply that is
referred to as a second activity of the technology. For each activity, there could be more than
one input and output that are defined using the inp and outp buttons given in the multiple
entries part (Fig. 3.38). Sub-section 3.8.1 discusses windows for these buttons.

FIG. 3.38. A Form to Modify Activity Data on a Technology in the adb Window.
Fig. 3.38 shows the activity form in the technologies window. For each technology, the user
needs to define at least one activity. In this form, the first row is a bar of buttons to manage
Chapter 3 – 52
the activities i.e. addition, deletion, renaming, and re-sequencing. Below this bar, names of
activities are shown on buttons, along with the data form for the selected activity.
By default, the program defines one activity for each new technology that is considered to be
the main activity. The user can define alternative activities for a technology. A click on the
Add button gives a field (labelled “Enter new id”) on the form to enter single character
identification for the alternative activity. The new activity button is added after the button for
main activity. If 3 or more activities are given, the user can re-sequence the two alternative
activities in the alphabetic order. A click on an alternative activity followed by a click on the
Del button deletes it.
A click on name of an activity opens its data form. For every activity, some basic data ― such
as main input and output of the activity ― are entered in the single entries part and additional
data such as ― any constraint on the activity or its market penetration pattern ― are given in
the multiple entries part (see Fig. 3.38). Except for defining of output of the technology, all
input data in this form are optional.
In the single entries part, a click on the arrow of the main input field gives a list of all levels
of energy forms defined in the adb. Selection of an energy level in the list gives all energy
forms defined at that level to select one as main input of the technology. Similarly, in the
main output field list of levels and energy forms at each level are given to select the main
output of the technology.
One important input in the activity form is power relation between activities if a technology
has two operating modes. Since the same capacity is used to produce different outputs or to
use different inputs, the power relation is defined as ratio of the main output of the main
activity to the main output of the alternative activity. In the activity form of the alternative
technology, the user enters this ratio in the “pow. rel.” field (Fig. 3.38a).
Table 3.11 gives the remaining data field’s names and the required input for them in details.
Definition of the time switch values is the same (as discussed in Section 3.6) for all data fields
except the “pow. rel.” field. For this field two more options are given in the switch field i.e.
“Cminp” and “Cmoutp”. The first one allows to define constant value of ratio between the
input for the main activity to the main input for the second activity, while “Cmoutp” define
constant ratio of main output of the main activity to the main output of the alternative activity
?(Fig. 3.38a).
The data field labelled “additional option:” is given to enter data on “powerchange” i.e.
change in the power of a technology. If a technology produces an output that has variation in
its demand then the technology has to operate its capacity according to the load pattern of the
demand for its output. However, each technology has different load following capability.
Selection of “powerchange” in the field of “additional options:” opens a window to enter
power change data. In this window (Fig. 3.38b), there are four columns, the first two columns
are to enter the possible upward and downward change in the power. The next two columns
are to enter cost corresponding to these allowed upward and downward power change. These
four data values can be specified on hourly, daily, seasonal and annual basis. The units of
measurements are MW and \$/MW by default. In the example shown in Fig. 3.38b, the power
of the coal plant can go up by 20 MW and can decline by 20 MW in an hour. There will be
additional cost of 10 dollar per MW for revamping up and 5 dollar per MW for revamping
down.
Chapter 3 – 53

## FIG. 3.38b. Window to Define Variation in Power Relation with Time.

Chapter 3 – 54
Table 3.11. List of Data Entities on Activities of Technologies
Screen: Technologies Part Name: activities Figure No. 3.37b
Data Field Time Description
Label Series
Switch
Value Amount of main input (energy form) used by the technology
(for Main input) usually defined as 1.
Value* Yes Amount of main energy form produced as output by a
(for Main output) technology for a unit of input. Usually, this value is less than 1
as the ratio of output and input defines the conversion
efficiency of the technology which is usually less than 100%
because of conversion losses.
Loadcurves for No For a technology, if the values of main output, variable cost, or
any other bound or constraint are given by load regions then
the user can introduce them through this option. This is
especially useful for hydro power plants which have
significant seasonal variations in electricity generation. Para (i)
in this sub-section discusses these load curves.
Variable cost Yes Variable operation and maintenance costs. For definition of the
time switch see Section 3.6.
Hist. Act. Historical activities. Output level in the base year of the case
study.
Pow. Rel. Yes Power relation for alternative activities. This is needed if a
technology has more than one activity (i.e. it can be operated
in alternative modes). This value defines relationship of the
alternative activity with the first activity. For each alternative
activity, it is the ratio of the main output of the first activity to
the main output of the alternative activity.
Additional option To define variation in power relation with time
* Essential input
Multiple entries on an activity
The bottom part of Fig. 3.38 shows a bar of buttons to enter multiple entries on an activity
(see Sub-section 3.2.1). The program has a set of windows linked with these buttons. Sub-
section 3.8.2 discusses this set of windows. A click on any of the buttons opens the related
window, and the program adds, in the title of the window, the name of the selected technology
and type of entry being made.
The user can add a technology in the adb from the tdb and modify its data for the case study.
The program writes the modified value in the adb file and the original tdb data remains in
place for the future use. However, if the data is not modified, the program keeps only the
name of the technology in the adb file and shows its data in red colour to indicate that the tdb
data is being used for this technology.
A click on the Add from tdb button opens a window that gives a list of all technologies
defined in the tdb (see Fig. 3.39). A click on a name selects this technology and another
Chapter 3 – 55
window is opened showing the brief introduction of the selected technology (Fig. 3.40). This
window shows the main input, main output and description of the selected technology. A

FIG. 3.39. Window to Select a Technology from tdb for Addition into the adb

FIG. 3.40. Window Showing the Selected Technology from tdb for Addition into the adb
Chapter 3 – 56
(g) Copy/Cut a Technology to make a New Technology
The user can add a new technology by copying an existing technology with a new name and
editing it for modification of some of the data. A click on the Copy button (Fig. 3.39) copies
the selected technology followed by a click on the paste button (Fig. 3.39) opens a window to
copy this technology with a new name and identification code (Fig. 3.41). This window
shows the list of the existing technologies to choose the place for insertion of the new
technology.

## FIG. 3.41. Window to Paste a Technology after Cut/Copy Command.

(h) Rehabilitation of a technology
The user may like to analyse the cost effectiveness and appropriate time for rehabilitation of
the existing plants. For this purpose, s/he introduces a technology that represents an existing
technology after rehabilitation. The rehabilitation cost is given as the investment cost of this
new technology and all other input data are given to represent performance of the technology
after rehabilitation such as reduced variable cost or higher conversion efficiency. In the new
technology form (Fig. 3.37a), a click on the field labelled “rehabi” gives the list of the
technologies in the database to choose for replacement. The other input data filed are
discussed in Paragraphs (d) and (e) above in this sub-section.
Chapter 3 – 57

## . 3.37a. A Form to Choose a Technology for Rehabilitation.

(i) Load curves for main output, variable costs, capcity factor and coefficient in a constraint
A click on the field labelled “loadcurves for” (see Fig. 3.38b) gives the dropdown list to
define load curves for output (selection of “moutp”), variable cost (selection of “vom”), and
capcity factor (selection of “capfac”) and for a constraint/relation (selection of “con1a….”).
for the data base in which load regions have been defined. This allows variation in the annual
data given for these input parameters in the single/multiple entries part to be distributed it in
different parts of the year (i.e. load regions). This form is exactly the same as discussed in
Para (e) above in this sub-section (Fig. 3.38a). These selections open a window giving the
load regions defined in the case study. Depending on the value in the check box labelled
“abs/re”, the program opens two alternative windows. Without selection of the check box, the
program opens a window, which is exactly the same as shown in Fig. 3.23a given for defining
the load pattern of demand in Para (g) of the Sub-section 3.4.4. If the user wants to give load
data, then selection of the check box opens a window as given in Fig. 3.23b (see para (h) of
the Sub-section 3.4.4 for discussion).
If a technology is included in a relation, the coefficient value i.e. contribution of the
technology in that relation can be varying during a year. A click on the field (labelled
“loadcurves for”) gives the relation name with the group name. Selection of the relation opens
a window to enter pattern of variation in the annual value given for the relation.
Chapter 3 – 58

FIG. 3.38b. A Form to Define Load Curves of Outputs and Variable Costs.
3.4.7. Editing Data on Resources in the adb
On the dropdown menu of the Edit command, a click on the adb opens a window for adb (see
Figs. 3.8. and 3.11). A click on the Resources button in the adb window gives a form for
entering or editing data on resources (see Fig. 3.42). By default, the program shows:
• One data field to select a resource for editing
• New button to add a new resource in the adb, and
• Delete button to remove a resource name from the adb.
A click on the arrow of the data field (labelled select resource) gives a list of all the resource
names defined in the energy forms (see Sub-section 3.4.3). A click on a resource name shows
a data form for data editing (see Sub-section 3.2.6 for an overview of the data structure on
resources).
In the first part of the resources form (Fig. 3.42) data field labelled “fcost” and “uplim” are to
enter data on fuel cost multiplier and upper limit on total extraction of this resource.
For these items, data fields are given to enter unit, data switch and the data values. A click on
the unit field for fcost (i.e. fuel cost multiplier) opens the standard Units window to choose
appropriate unit for the multiplier. Similarly a click on the unit field for upper limit opens the
standard Units window showing the appropriate units for selection (see Sub-section 3.7.2).
See Section 3.6 for data type switch. The user can edit these data fields one by one, or can
double click on the Time series field to get the standard Edit window (see Sub-section 3.7.1).
Table 3.12a gives description of the input data on resources.
Chapter 3 – 59

## Table 3.12a. List of Data Entities on Resources

Screen: -Resources Part Name: - Figure No. 3.42
Data Field Data Description
Label Switch
name Resource name
fcost Yes Fuel cost multiplier that is used to change the fuel cost given at the
grade level; if desirable in the future. The definition for the time
series switch is the same as discussed in Table 3.14.
uplim Upper limit on extraction of total resource including all grades.

## (a) Defining output of a resource

The second part of the resources form is for giving data on output or supply of an energy form
from the selected resource. This part is called grades (Fig. 3.42) as the model allows defining
multiple grades for a resource i.e. categorization of the product from the same resource (see
Sub-section 3.2.6).
In the grades part, a bar of buttons is given to add, delete or rename a grade. The program
shows button bars for all grade names defined for the selected resource. By default the
Chapter 3 – 60
program assumes that there is only one output and a button bar labelled “grade a” is
displayed.
A click on the Add (or Ins) button gives a data field to enter one character name to the new
grade. The program adds a button labelled with the new name after (before) the selected
grade. A click on the existing grade name followed by a click on the Del button remove the
A click on the Rename button shows the data field to enter the new grade name for the
(b) Entering data on output of a resource – single entries
In the grades part, a click on a grade name gives a frame to enter data on a selected grade
(lower part of Fig. 3.42). For each grade two types of data are given; single entries and
multiple entries. Single entries include:
• Volume of the resource for the selected grade.
• Initial value of the grade i.e. extraction between the base year and the first model year.
• Extraction of grade in the base year.
• Remaining resource of the selected grade.
• Resource cost.
• Upper limit of this resource extraction.
For the first three items, two data fields are given for each item to enter unit and the data
value. For the remaining items, the program allows a set of data values. Therefore three data
fields are given for each item to enter unit, data switch and accordingly data values. A click
on the unit field opens the standard Unit window showing the appropriate units for selection
(see Sub-section 3.7.1). A click on the arrow in the Switch field lists types of the data set (see
Section 3.6 for details). Alternatively, the user can click on the Time series data field to get
the standard Edit form (Sub-section 3.7.1 for details) for editing all the three parameters.
Table 3.12b gives description of the input data on grades.

## Table 3.12b. List of Data Entities on Grades

Screen: Resources Part Name: grades/single entries Figure No. 3.42
Data Field Data Description
Label Switch
volume Resource volume of a grade.
intval Value of the resource at the start of the base year.
byrex Average annual extraction in the base year.
resrem Yes Remaining resources available for extraction in the model periods.
The definition of time series data switch is the same as given in
Table 3.14.
cost Yes Per unit extraction cost of the grade.
uplim Yes Upper limit on annual extraction of a grade in model periods.
Chapter 3 – 61
(c ) Entering data on output of a resource – multiple entries
The last part of the Resource form is to enter multiple entries for a grade (see Fig. 3.42). In
this part, a bar of buttons is given to enter:
• annual bounds on activity (bda button),
• constraint type 1 and 2 (con1a and con2a buttons),
• cumulative constraint on activity (conca button),
• cumulative constraint per period (conpa button), and
• market penetration of the selected grade (mpa button).
Sub-section 3.2.6 discusses these constraints in brief and Annexure A gives their technical
details. The program has a set of windows linked with these buttons. Sub-section 3.8.2
discusses this set of windows. A click on any of the buttons opens the related window, and the
program adds name of the selected resource and type of entry being made in the title of the
window.
In definitions of the energy forms (Sub-section 3.4.3), the user defines a resource level and
some energy forms on the resource level. To start with, a click on the Resource button opens a
blank Resources form (Fig. 3.43). In this form, a click on the New button opens a window
(Fig. 4.44) and a click on the “new name field:” gives the list of all levels. On selection of the
Resources level and an energy form, the program shows the selected name in the name field
(Fig. 4.44). A click on the Ok button opens open the Resources form discussed above (Fig.
3.42). The user adds all energy forms defined at the Resources level one by one.

Chapter 3 – 62

## FIG. 3.44. Windows to Add a New Resource in the adb.

(e ) Deleting a resource from the adb
To delete a resource form the adb, the user needs to select a resource first then a click on the
Delete button removes the selected energy form from the adb. If the selected energy form is
used in some other parts of the adb (e.g. as input to a technology), the user cannot delete it
from the list of resources, unless it is removed from all other parts of the adb. The program
informs about parts of the adb using the selected energy form for deleting.
3.4.8. Editing Data on Storages in adb
There are two major categories of Storages that can be modelled using MESSAGE: hydro and
non-hydro. In a hydro storage, the inflow, outflow and overflow are from rivers. In
MESSAGE, these rivers are defined using the Constraint/Relation form. Para (a) in this
section discusses how to define a set of relations to model inflow, outflow and overflow for
modelling of a hydro storage as required.
For non-hydro storages, inflow and outflow to the storage are made by the
technologies/resources. A relation is defined in a constraint group and is used to identify
technologies/resources that are going to provide inflow to the storage and
technologies/resources that are going to take out from the storage.
On the dropdown menu of Edit command (see Fig. 3.8), a click on the application db opens a
window for adb. A click on the storages button in the adb window gives a form for defining
storages, and editing of their data (see Fig. 3.45).
In the first row, the following set of buttons is given:
New To define a new storage
Del To delete an existing storage
To copy an existing storage to define a new storage with some changes in the
Copy
existing one
Entries To define a relation of this storage
In the first data field labelled storage: the programme gives list of all the storages defined in
Chapter 3 – 63

## FIG. 3.45. Window to Enter Storages Data in adb/ldb.

There are two parts in the storage form. The following paragraphs discuss these parts.
Single entries part
Table 3.13 gives all the input-data fields in the single-entries part of the Storages form. The
following paragraphs discuss some of these input data fields in further detail. The data field of
“rel to input/output” is to show whether the input or output of the technologies (i for input and
o for output) define the relations for the storage.
Chapter 3 – 64
Table 3.13. List of Data Entities on Storage
Screen: Storages Part Name: single entries Figure No. 3.45a
Data Field Time Description
Label series
data
Switch
Storage name Name of a relation defined in the storage constraints group.
Storage short Identifier for the relation.
name
Rel to
in/output
Loadcurves Selection to enter load data on seasonal variation in storage cost,
for volume (max. and min.) and storage losses.
abs/rel A click in this field applies that the above-mentioned data will be
absolute values or relative share in the annual value alternatively it
will be given relative to each load region.
storage type Selection of storage type (i.e. continuous, seasonal, annual, weekly,
daily).
unit type Type of unit for the storage: energy, weight, volume or other.
plant life Yes Life of the storage.
unit size Yes Unit size for adding capacity to the storage.
inv_cost Yes Investment cost for adding capacity of the storage.
Constr. time Yes Construction time for adding capacity of the storage.
Fixed cost Yes O&M cost of the storage.
Storage cost Yes
Hist. Cap. Yes Historical capacity.
Storage Yes Units lost in storing.
losses
Retention Yes Period for which the stored value stays.
time
max volume Yes Upper limit on the volume of the storage, which is computed in the
relation.
min volume Yes Lower limit on the volume of the storage, which is computed in the
relation.
First year The year to which the initial (value of) volume for the storage is
referred.
Initial Initial value of the volume for the storage, which should be between
volume the maximum and minimum volumes allowed for the storage.
Last year The year to which the Final (value of) volume is referred.
Final volume Final value of the volume for the storage, which should be between
the maximum and minimum volumes allowed for the storage.
Chapter 3 – 65
Storage type and unit type are the two basic parameters to define a “storage”. Five types of
storages can be defined in MESSAGE (Continuous, Annual, Seasonal, Weekly and daily);
each refers to frequency of inflows and outflows of the storage. Unit type defines whether the
stored quantities are measured in terms of energy, volume, weight or other. For example, if
the user has selected energy for unit type of a storage, and enters 1 MWyr in the inflow
(outflow) form with MWyr per MWyr, availability of energy from the five types of storages
will be as follows:
i) Continuous 1 MW in every hour of 8,760 hours in a year.
ii) Annual 1 MWyr in one year.
iii) Seasonal 1 MWyr in every season which are defined in the Load region
forms (see Sub-section 3.4.2)
iv) Weekly 1 MWyr in every week of the year
v) daily 1 MWyr every day of a year.
There are two types of cost data for storages. One related to building and operating of the
storage facility i.e. investment cost and fixed cost. The user defines the initial volume of the
storage along with the year, the final volume and its year for the storage and the upper limit
and lower limit of the volume at any time in the study period. The relations define for the
storage compute the volume of the storage for each study period depending on the type of the
storage. The storage cost is the cost per unit f resultant value of the relation if it is between the
defined values of the minimum and maximum volumes allowed for the storage. This value
could be positive (negative) depending on the nature of the relation; whether a damage
(benefit) is associated with the resultant value of the storage volume.
Data on storage cost, maximum and minimum volume and storage losses can very with in a
year as per load regions defined for the study (see Sub-section 3.4.2). Annual data for these
parameters are given in the main form. Share of each region in this annual demand in relative
or absolute term is given in load curve data (see Para (h) in 3.4.4).
There are two data switches for the historical capacity of the storage i.e. “hc” that is single
value representing capacity at the start of the study period, or “cg”, a constant growth rate that
defines capacity in a particular year in the past and a growth rate. The programme computes
historical capacity at the start of the study period using these three data entities. A storage
might have been built over a period of time, the “historical addition” field is to give ?? The
program may add capacity of the storage using the data given by the user on unit size,
construction time and investment cost. Data on life of the storage ?
Volume of the storage may be retained for certain time period as defined by the user and
during this retention period it may incur some losses if defined by the user.
It is important to save the data by a click on the Screen command followed by a click on the
Save option.
The relation defining volume of the storage is discussed under multiple entries part in the
following paragraphs.
Multiple entries part
The second part of the Storages form (Fig. 3.45) is for multiple entries (see Sub-section 3.2.7
for introduction). There are nine buttons in this part. The first two buttons (con1a and con2a)
are given to include a Storage in any relation/constraint defined in the model. For example,
the user may define a relation to compute air emissions of methane, and the storage can be
included in this relation. The user defines such a relation in the Constraint form and includes
the storage in the relation. The storage window shows the relevant button (Con1a for group1
Chapter 3 – 66
and cona2 for group2) in green to indicate this. The third button consa is used to define a
constraint on activity of a Storage, that is balance, to be carried over to the next period. These
constraints are defined in the Constrain/Relation form as discussed in Sub-section 3.4.5. The
Storage form shows the list of relations defined in the model and the user can edit the relation
in this window.
For a Hydro storage, the user needs to define relations for its inflow, outflow, overflow and
penalty on overflow. These relations are also defined in the Constraints/Relation form and are
discussed in Para (a) in this Sub-section. The Storage form shows these constraints and the
user can edit them.
The user may define the value of penalty or soft limit for a storage, to increase the storage
cost in steps or interpolated, if the volume of the storage increases from the defined
upper/lower limits. The last two button labelled penalty and soflim are used to define these
relations. The windows to edit these two constraints are exactly the same as discussed in Para
(c) in Sub-section 3.4.5.
(a ) Editing of relations for a hydro storage in the adb
In the Constraints/Relation form (Fig. 3.46) the user selects group2 to define a relation for
representing of a river. A click on the New button opens a window to enter name of the new
relation (Fig. 3.46a). After defining the name a click on the Ok button opens a window (Fig.
3.46b).

## FIG. 3.46. Window to Define Inflow Relation for Hydro Storage.

Chapter 3 – 67

FIG. 3.46a. Window to Enter Name of the Relation for a Hydro Storage.

## FIG. 3.46b. Window to Enter River Data for a Hydro Storage.

In this window (Fig. 3.46b), selection of relation type “river” shows two buttons of “inflow”
and “outflow”. A click on the inflow button opens a window to give data on inflows in the
relation representing the river (Fig. 3.46c). Initially, the program gives a blank window and
the user clicks on the Edit command to add a record. By default, the program shows
“pnatural” as the source of inflow for a river in the new record and the user gives the units of
measurement, time series data switch and the inflow data. Similarly, the user defines the data
set for the outflow from the river.
Chapter 3 – 68

## FIG. 3.46c. Window to Enter Inflow Data for a River.

After defining the relation/s to represent river/s, the user can go to the storage form as
discussed at the start of this section. In the storage window (Fig. 3.45), a click on the inflow
button opens a window for selecting the relation (i.e. a river) to define inflow to the storage
(see Fig. 3.45a). In the window, the user can see the name of the storage in the title of the
window followed by the constraint name i.e. inflow. A click on the Edit command followed
by selection of Add option gives a set of data fields to select the inflow relation for the
storage, its units, time series switch and data values. For example, in the window shown in
Fig. 3.45a, 2:1riv represents relation name “1riv” defined in the relations/constrains group 2.

## FIG. 3.45a. Window to Enter Inflow Data for a River

As shown by the unit of measurement, the data reports relation between the inflow in the river
and what goes to the storage. A data value of “1” in window shown in Fig. 3.45a indicates
that there are no losses and for every 1 MWyr of energy from “1river”, there is 1 MWyr flow
to the storage (see Demo_case3 for modelling of hydro storages for power generation).
A click on the “outflow”, or “overflow”, button opens the window similar to that shown in
Fig. 3.45a to define outflow” and overflow from the storage while the data value in these
windows will be some negative value. For example, if the storage is of continuous type with
no retention capacity, then outflow data will be “-1” for inflow data of “1”.
3.5. Editing of a Local Database (ldb)
As discussed in Section 3.1, a separate ldb is maintained for each scenario. On the dropdown
menu of the Edit command in the main window (left part of Fig. 3.47) a click on the scenario
db opens a window titled “select scenario (right-part of Fig. 3.47) that shows the list of all
scenarios defined in the case study. A click on a scenario name followed by a click on Ok
button opens the ldb window (Fig. 3.48) which is similar to that given for adb (see Fig. 3.8)
except that the title of the window now shows “ldb” with name of the selected scenario.
Chapter 3 – 69

## FIG. 3.47. Windows to Select a Scenario for Editing the ldb.??

From the ldb window (Fig. 3.48), the user can get a set of data forms/windows to maintain the
ldb of the selected scenario. These forms/windows for the ldb are exactly the same as shown
and discussed for adb in Section 3.4 except for two changes. First, all data values from adb
are displayed in green colour in the adb windows/forms and in blue colour in the ldb
windows/forms if the user modifies the adb values. This helps the user to keep a record of the
difference between the adb and the alternative scenarios. Second, in the windows/forms for
the ldb, the program allows adding of data from the adb as well as from tdb. Therefore, in
these data forms, there is an additional button of Add from adb. Fig. 3.48a shows the window
to define energy forms in ldb. It is similar to that given for the adb (Fig. 3.16a) except that a
button of adb is also given beside the tdb button. This option is used if a new scenario is
created in a case study from scratch and the user may like to add some selected parts of the
tdb/adb. If a scenario is copied from an adb then a click on this button gives the message
indicating that all technologies, resources, constraints of the adb are already defined in the ldb
(see Fig. 3.48d).

Chapter 3 – 70

## FIG. 3.48a. Window to Edit Data on Energy Forms in an ldb.

Fig. 3.48b shows the form to enter data on constrains and relations in the ldb. This form is
similar to that given for the adb (Fig. 3.27) except that there is an additional button of “Add
from ADB” for adding a relation from the adb of the case study. A click on this button opens
a window showing the list of constraints in the adb. On selection of a scenario, the program
copies that constraint and the data values are shown in green.

## FIG. 3.48b. Window to Edit Data on Constraints/Relations in an ldb.

Chapter 3 – 71
Fig. 3.48c shows the form to enter data on technologies in the ldb. This from is similar to that
for the adb (Fig. 3.34) except that there is an additional button to add a technology from the
adb. The program shows names of the case study and the scenario in the title of each window.
Fig. 3.48d shows the form to enter data on resources in the ldb. This form is similar to hat
given for the adb (Fig. 3.42) except that there is an additional button to add a resource from

## FIG. 3.48d. Window to Edit Data on Constraints/Relations in an ldb.

Chapter 3 – 72
3.6. Types of Data Set Defined in the Four Databases
The program allows four types of data set to give data values to any data entity. On various
windows/forms discussed in the previous sections, there is a data field labelled “Switch”,
“tmssw” or “tssw” that shows the list the codes for these four types of data set. Table 3.14
gives these data set types, their definition and the codes used in the data switch field.

## Data Type Definition Data Switch

Constant One data value for all the years in the case “c”
study

Time series A set of values for the given number of model “ts”
years in the case study. If numbers of values
are less than the number of model years then
the last value is used for the remaining model
year.

Constant growth A growth rate applied for all model period “cg”.
defined in the case study.

Periodic growth A set of growth rates for the given number of “pg”.
periods in the case study. If numbers of values
are less than the number of study periods then
the last value is used for the remaining study
periods.

3.7. Some Standard Windows Opened for Data Editing in the Four Databases
3.7.1. A Standard Edit window
The program has one standard window to edit a data set in any part of the databases. This Edit
window can be opened from any of the windows and data forms discussed in the previous
sections by a double click on the fields given to enter data values. The program shows name
of the parent form in the title of the Edit window after “Edit: “. Fig. 3.49 shows a set of
windows for editing data on demands. In this window, data fields are given to select the type
of data and the unit in which data is entered. Fig. 3.49 shows a set of windows for three types
of data set i.e. constant, constant growth and time series. A data table is also given to enter
data values. The dimension of the table is set according to the data type selected (see Section
3.6).
In the first field, a click on the arrow lists the data switches to select the type of data (see
Section 3.6). The user can modify the data type by choosing a new one from the list. The
program, accordingly, modifies the layout of the data table, and the data set has to be
modified.
A click on the arrow in the Unit field gives the list of appropriate units for the data entity for
selection. The user can also add a unit in this list. Sub-section 3.7.2 discusses this in details. In
the course of editing a data set, the user may like to change the units but then the new data
values will have to be entered. To avoid the conversion process and re-entry of the data, the
user should modify the unit of a data set in the Unit window (see Sub-section 3.7.2) that is not
initiated from the Edit window but directly from the Unit field given in the parent window.
Chapter 3 – 73
Below the table, a button is given to make a graph of the input data given in the table. Two
data fields are also given to set the accuracy points for the data given in the level format and
for the data given in growth rate format. A number in this field shows that up to what decimal
points the input data is to be entered. As the user click on the right arrow the number in the
field increases and so does the decimal points in the input data table given in the window. A
click on the Save button closes the Edit window and displays the data in the parent window
(from where this window is opened).

FIG. 3.49. The Standard Edit Windows Opened from the Demands Form.
A click on the Graph button opens a new window showing the input data in the form of a
graph. (see Fig.3.49a). In this window, the user can choose the type of graph (see the field
labelled “graph type:”) and can also change the Units, data type or data table directly. S/he
can then redraw the graph after these changes.
If the user makes any change in the data type e.g. changing from time series to constant
growth, a click on the Update button updates the data table for the new values. For the time
series data, the user can modify the graph by placing the cursor on a data point. A click on the
Update button then updates the data table according to the graph.
The user can also perform simple algebraic operation i.e. adding or substracting a constant
value from the data series or multiply or dividing by constant factor. A click on the field
labelled “all y” shows these options to select one while the adjacent blank field is to enter the
constant value/factor for the selected operation followed by a press on the return key. The
program updated the graph for the new values. A click on the Update button updates the data
values in the data table.
Chapter 3 – 74

## FIG. 3.49a. Window Showing Graph of the Demand Data.

3.7.2. A Standard Unit Window
For every data entity defined in the four databases, the program has a default unit and some
alternative units appropriate for that data entity. For example for all demands data, the default
unit is MWyr and the other units are Mtoe and Mbtu. While editing a data set, the user can
select one of these units. The format of the window remains the same for all data entities, and
the program lists units appropriate for the data entity for which unit is being selected.
Fig. 3.50 shows two standard unit selection windows. The window at the right-hand side
gives default units for energy demand and the one at the left-hand side gives default units for
the variable operation and maintenance cost (vom). A double click on the unit field in any of
data forms/window, discussed in Sections 3.3 to 3.4, opens the unit window. A click on a unit
followed by a click on the Set button closes this window and the selected unit is displayed in
the parent window. The program shows name of the data entity in the title of the window.
While editing a data set, the user may like to change the existing unit. The program facilitates
conversion of the data set into the new unit from the previous one. A click on the new unit
from the list followed by a click on the Recalc button closes the Unit window and the new
unit and the new data values are given in the parent window. In selecting the new unit, the
user should be careful to see how this change will affect the remaining part of the database.
The program has defined all default units to get the results of the model in thousand, for
example thousand dollars of investment cost (see Sub-section 2.3.9 in Chapter 2 for detailed
discussion). The user should also work out these relations before selecting a new unit.
Chapter 3 – 75

## FIG. 3.50. A Set of Standard Windows for Unit Selection.

3.8. Standard Windows for Editing Data on Constraints in the Four Databases
As discussed in Sub-sections 3.4.6, there is a set of windows to enter bounds and constraints
on technologies, and a set of windows to enter bounds and constraints on activities of
technologies and resources (see Sub-sections 3.4.6 and 3.4.7). The following sub-sections
discuss these sets of windows.
3.8.1. A Set of Standard Window to Edit Constraints on Capacity of Technology
Fig. 3.51 shows a window to edit capacity data of a technology and the set of buttons under
the multiple entries to put constraints on the capacity variable of this technology. The
following paragraphs discuss a set of windows linked with these buttons. These windows
enable entering of constraints and bounds on capacity of technologies defined in the tdb, adb
and ldb (see Sub-sections 3.2.1. and 3.4.6). A click on a button opens its window. The
window’s title shows name of the technology and the bounds/constraint being placed (Fig.
3.52).
There are two commands in the menu bar of this window (Screen and Edit). The screen
commands have options of saving the data and closing the window. The Edit command has
the options of adding a new constraint or deleting an existing one.
If no data is given, all these windows are opened with only titles of the data fields. On the
Edit command’s dropdown menu, a click on Add shows a row of data fields for data entry.
Every time the user clicks on the Add option, the program inserts a new row of data fields.
Hence, the user can add more than one set of constraints values. These windows have very
similar data fields.
(a ) Annual bounds on new capacity addition on a technology
On the technologies form (Fig. 3.51), a click on the bdc button opens a window (Fig. 3.53).
The window’s title shows name of the technology for which new annual capacity additions
are being bounded for the ready reference. In this window, four data fields are to select type
of bounds, units of data (see Sub-section 3.7.2), switch for data type (see Section 3.6) and the
data values. A click on the arrow in the Type field lists the three types of bound i.e. upper (up)
lower (lo) and fixed (fx). After selecting the type of bound, the user can double click on the
Data field to get the standard Edit window (Sub-section 3.7.1) for editing the unit, data type
and values of the bounds. Table 3.15 gives description of the input data defining a bound. In
the example shown in Fig. 3.53, maximum 500 MW new capacity is allowed on coal power
plant in a year. This number is multiplied by the number of years in a period if number of
years in a period is more than one.
Chapter 3 – 76

## FIG. 3.52. Window for Defining Constraint on Capacity of a Technology.

FIG. 3.53. Window for Bounds on a Technology in the tdb, adb and ldb.
Chapter 3 – 77
(b ) Bounds on total installed capacity of a technology
The user can also put a bound on the total installed capacity (existing and new) of the
technology. A click on the bdi button (Fig. 3.51) opens a window (Fig. 3.54) which is very
similar to that for annual capacity (see Fig. 3.53). The program shows the same data fields to
enter bound type (upper, lower or fixed), and the bounds units and values. Figures 3.54 and
3.54a shows an example in which limits have been defined on total installed capacity of a coal
power plant. Assuming that this coal power plant has 100 MW installed capacity in the base
year and no retirement before 2010, the model can add up to 150 MW of this technology in
the period from 2002 to 2005 and up to 100 MW between 2005 and 2010, or alternatively up
to 250 MW between 2005-2010 when there is no capacity addition between 2002 and 2005.

FIG. 3.54. Window for Bounds on a Technology in the tdb ,adb and ldb

.
FIG. 3.54a. Window for Bounds on a Technology in the tdb ,adb and ldb.
Chapter 3 – 78
Table 3.15. List of Data Entities on Bounds on New Capacity
Screen: Bounds on New investment Figure No. 3.53
Path: A click on bdc button in the Technology form in Fig. 3.51.
Data Field Description
Label
Type The type of bounds (i.e. fixed, lower or upper) shows that how data
value given for a bound will be treated.
tmssw Time series data switch value (i.e. c, ts, cg, pg)
Data The user can define a bound for investment on a technology. This
data value is treated as fixed or lower or upper limit depending on
the tmssw value.
• For “c”, a single value of the bound on investment.
• For “ts”, a series of the bound on investment for the base and
the model years. If number of values is less than the number of
model years, the last value is assumed for the subsequent model
years.
• For “cg”, a single value of the bound on investment in the base
year and an average annual growth number for the all model
period.
• For “pg”, a single value of the bound on investment in the base
year and average annual growth number for all model periods.
If number of values is less than the number of model period, the
last value is assumed for the subsequent model periods.

## (c ) Lag times for construction material and cores

MESSAGE allows modeling of lag period for material input and nuclear fuel. Unlike other
energy forms such as coal, these two types of inputs are not consumed fully in a production
process. Nuclear spent fuel should be stored at the nuclear power plant storage for a few years
for cooling. Then it can be re-processed to be used again or be moved to long-term storage
located away from nuclear power plant. User can use this option in modeling of cooling time
for final nuclear spent fuel unloading. This cooling time can be modelled as a lag time for
final unloading of spent fuel of nuclear power plant technology. The user defines a level for
such material, defines materials (energy forms) at that level and selects this level/ materials
(energy forms) for the Final Cores (Fig3.62). In the technology form (Fig. 3.51) a click on
“clags” button opens a window (Fig. 3.55) to select the level/ materials from the dropdown
menu in the “Item” field, and to enter time lag in years in the lag field. The user may enter
historical data of this material for the model to compute the year in which this input will be
utilized fully.
Chapter 3 – 79

## FIG. 3.55. Window to give time Lag in Input Use

(d) Constraint type 1 on a technology
The user can define a relation for capacity variables of a set of technologies to define a
constraint on this set. The user may include a technology while defining a relation in the
Constraints/Relations form. In such case, the “con1c” button in the technology window (Fig.
3.51) is shown in green colour. A click on the con1c button opens a window (Fig. 3.56) and
the program shows the relation name, coefficient of the capacity variable along with its units.
Alternatively, the user may include a technology in a relation using this window. In this
window, a click on the arrow of the Relation field lists all the relations defined in group 1
using the Constraints/Relations form. On selection of a relation, the user enters coefficient
value for the capacity variable of the technology in the selected relation (see Sub-section 3.4.5
(d) for further details). Three data fields are given to enter units of the coefficient values (see
3.7.2), data switch (see Section 3.6) and the data values. Alternatively, a double click on the
Data field opens the standard window for entering this information (Sub-section 3.7.1).
When a user is editing data on a technology, the program lists all the relations defined in the
category irrespective of the fact that this technology was included or not in these relations.
The program updates the Entries window (Fig. 3.32) for any addition of a technology in a
relation or entry of its constraint values through this window.

FIG. 3.56. Window for Constraint Type 1 on a Technology in the tdb, adb and ldb.
(e ) Constraint type 2 on a technology
On the technologies form (Fig. 3.51), a click on the con2c button opens the window (Fig.
3.57) to enter the value with which this technology is entered into the relation defined in
group2 and hence can be referred to as coefficient value (see Sub-section 3.4.5 (d) for further
details). This window is similar to that for the constraint type 1 (see Para d above).
Chapter 3 – 80

FIG. 3.57. Window for Constraint Type 2 on a Technology in the tdb, adb and ldb
(f ) Cumulative constrains on capacities of a technology
When a user defines a relation in the constraint group entitled “cumulative” (see Sub-sections
3.2.1, 3.4.5), s/he needs to enter values with which technologies will be included in that group
(see para (d) in Sub-section 3.4.5 for further details). On the technologies form (Fig. 3.51), a
click on the “concc” button opens the window (Fig. 3.58) to enter coefficient values for the
capacity of a technology that will be included in the relation defined in the cumulative
constraint group. This window is similar to that for the constraint type 1 discussed before
(Para (d) in this section).

FIG. 3.58. Window for Constraint Type 3 on a Technology in the tdb, adb and ldb.
(g ) Cumulative constrains per period on capacities of a technology
When a user defines a relation in the constraint group entitled “cum per period” (Sub-sections
3.2.1 and 3.3.6), s/he needs to enter values with which the technologies are included in that
relation (see para (d) in Sub-section 3.4.5 for further details). On the technologies form (Fig.
3.51), a click on the “conpc” button opens a window (Fig. 3.59) to enter the values if capacity
of a technology is to be included in the defined relations. This window is similar to that for
the constraint type 1 and is discussed before.

FIG. 3.59. Window to Enter Cumulative Constrains per Period on Capacities of a Technology
in the tdb and the adb.
(h ) Constrains on capacities of a technology linked to storage
When a user defines a relation in the constraint group entitled “storage” (see Sub-sections
3.2.1 and 3.3.6), s/he needs to enter constraint values with which the technologies will be
Chapter 3 – 81
included in that relation. On the technologies form (Fig. 3.51), a click on the “consc” button
opens the window (Fig. 3.60) to enter the value if capacity of a technology is to be included in
the storage relation. This window is similar to that for the constraint type 1 which is discussed
in Para (d) in this sub-section.

FIG. 3.60. Window for Constraint Type Storage on a Technology in the tdb and the adb.
(i ) Initial and final cores of a fuel for a technology
For the nuclear power technology, the user can give the initial and final values of its input fuel
“corin” button on the capacity form of a technology (Fig. 3.27) opens a window (Fig. 3.61) to
enter data on the initial loading and a click on “corout” button opens a window (Fig. 3.62) to
enter data on final unloading from the reactor. A click on the arrow of the first field (labelled
“fuel”) lists all levels of energy demand and energy forms for each level defined in the case
study. The user can select the energy form used as input to the activity. The remaining data
fields are to give unit, time series data switch and the data values. These buttons are needed to
model the back-end of fuel cycle of nuclear power plants where the initial fuel loaded in the

FIG. 3.61. Window to Put Constrains on Initial Cores of Fuel for a Technology

FIG. 3.62. Window to Enter Constrains on Final Cores of Fuel for a Technology.
(j) Global bounds on activity of a technology
If a technology has more than one activity, the use can put a bound on sum of output of all
activities that is refereed as global bound activity (see Sub-sections 3.2.1 and 3.3.6). On the
technologies form (Fig. 3.51), a click on the gbda button opens a window (Fig. 3.63), which is
similar to the window defined for annual bound on capacity (see Fig. 3.53) and is discussed
Chapter 3 – 82
before. The program shows the appropriate titles and the data field to enter bound type (upper,
lower or fixed), and the bounds units and values. The defined limit is applied on the sum of
output of all the activities of the technology.

FIG. 3.63. Window for Global Bound on a Technology in the tdb and the adb.
(k) Market penetrations on capacity build up of a technology
The user can put constraint on growth or phasing-out of a technology referred to as market
penetration (see Sub-sections 3.2.1, 3.3.5 for details). On the technologies form (Fig. 3.51), a
click on the mpc button opens a window to enter data of market penetration for a new
technology (see Fig. 3.64). The first data field is to select the type of bound on penetration of
the technology i.e. upper, lower or fixed, while the second field is to enter the units of the
data. Table 3.16 gives the description of the input data to define the market penetration data.

FIG. 3.64. Window Market Penetration on New Capacities of a Technology in the tdb and the
For the market penetration data, the user needs to give the start up values and the growth data
for the remaining model years. Two data fields are given for each of these; one for the data
switch (see Section 3.6) and the other for the data values. In all fields with an arrow, the user
can click the arrow to get the list for selection. In the unit field a double click opens the Units
window for entering data (see Sub-section 3.7.2). Similarly, a double click in the Start up and
Growth fields opens the standard Edit window to enter the data (see Sub-section 3.7.1). Using
this constraint, the user can make a technology part of the solution which is required when a
technology might be economically competitive but there some other physical or social
constraints on its build up, or alternatively a technology may not be economically competitive
but it is being build up under certain other considerations.
Chapter 3 – 83
Table 3.16. List of Data Entities Defining the Constraint on Market Penetration of New
Capacities
Screen: Market Penetration of New Capacities Figure No. 3.64
Path: A click on mpc button in the Technology form in Fig. 3.51.
Data Field Description
Label
Type The type of bounds (i.e. fixed, lower or upper) shows that how data
value given for a bound will be treated.
tmssw Time series data switch value (i.e. c, ts, cg, pg) for entering the
start up data values.
Startup The user can define a constraint on penetration of a new
technology by defining a bound on its capacity building. In this
field, the start up value of this bound is given. This data value is
treated as fixed or lower or upper limit depending on the tmssw
value. Values in
• For “c”, a single value of the capacity is given as the staring
value for all study years.
• For “ts”, a series of values for capacities are given starting from
the base year and followed by the model years. If number of
values is less than the number of model years, the last value is
assumed for the subsequent model years. Each value is treated
as a starting point in its relevant period.
• For “cg”, a single value of the capacity is given for the base
year followed by an average annual growth number for all the
model periods. The model computes the starring value of the
capacity for each model year.
• For “tg”, a single value of the capacity is given for the base year
followed by the average annual growth numbers for all model
periods. If number of values is less than the number of model
periods, the last value is assumed for the subsequent model
periods.
tmssw Time series data switch value (i.e. c, ts, cg, pg) for entering the
growth values.
Growth Values are given in this field to give growth rates for building up
the new technology.
• For “c”, a single value is given that is applied for all study
periods.
• For “ts”, a series of growth factors are given for the base year
and the model years. If number of values is less than the
number of model years, the last value is assumed for the
subsequent model years.
Chapter 3 – 84
3.8.2. A Set of Standard Windows to Edit Constraints on Activities of Technologies in
the Four Databases
As discussed in Sub-section 3.2.1, there are 12 types of bounds and constraints that can be
imposed on activities of technologies in all four databases. A bar of buttons for these bounds
and constraints is given in activities part of the technologies form (see Para (e) in Sub-section
3.4.6). Fig. 3.65 shows a similar window and the set of buttons. A click on one of the buttons
opens the related window. The program shows name of the technology and the activity in title
of the window. The following paragraphs show and discuss these windows.

FIG. 3.65. Window to Put Bounds on Activity in the tdb, adb and ldb.
(a ) Annual bounds on activity
Fig. 3.66 shows the window opened for entering data on annual bounds on output of the
activity. The format of this window is exactly the same as discussed in Para (a ) in Sub-
section 3.8.1 (See Fig. 3.52). Data values in this window are used to limit the level of the
activity on annual basis. In the example given in Fig.3.66, there should be at least 40 MWyr
import of oil every year as activity of the oil_import technology is imported oil.
Chapter 3 – 85
FIG. 3.66. Window to Enter Annual Bounds on an Activity in the tdb, adb and ldb.
(b ) Bounds on activity
Fig. 3.67 shows the window opened for entering data on bounds on output of the activity in
the study period. The format of this window is exactly the same as discussed in Para (b ) of
Sub-section 3.8.1 (see Fig. 3.54). The data values in this window are used to limit the level of
the activity per period. These bounds are different from the annual bounds discussed above. In
these bounds, if a limit defined for a period is not reached then it is accumulated in the limit
of the second period. For example, if limits of 10 MWyrs in period 1 and 20 MWyr in period
2 are given in the bda, and 10 MWyr is not generated in period 1, then the limit for period 2
will become 30 MWyr?.

FIG. 3.67. Window to Enter Bounds on an Activity in the tdb, adb and ldb?.
(c ) Constraint type 1 on an activity
In the Constraints form of the tdb, adb and ldb, the user defines relations under the category of
Constraint type 1 (see Sub-section 3.4.5). In the Entries window, the user identifies the
technologies included in a relation (see Fig. 3.32). For each technology included, the user also
specifies whether it is the capacity or activity of technology that will be included in the
relation. The data values are given with which activity of technology is multiplied in the
relation. Hence, it is referred to as coefficient value. The same information can be given in the
activities form.
On the activities form (Fig. 3.65), a click on the con1a opens the window to enter data on
constraint type 1 (Fig. 3.68). If the user enters this data in the Entries window, the program
displays it in this window. Alternatively, if the user enters this information in this window, the
Entries table is updated for this information.
The format of this window is the same as discussed for the constraint on capacity of a
technology in Para (d) in Sub-section 3.8.1 (see Fig. 3.56).

## FIG. 3.68. Window to Enter Constraint type 1 on an Activity.

(d ) Constraint type 2 on an activity
Fig. 3.69 shows the window to enter data on constraint type 2 on an activity in a relation. The
format of the window is the same as discussed in Section 3.8.1 (d).
Chapter 3 – 86

## FIG. 3.69. Window to Enter Constraint type 2 on an Activity.

(e ) Cumulative Constrains on activities
When a user defines a relation in the constraint group entitled “cumulative” and includes
activity of a technology in it, s/he needs to give values with which the activity will be
multiplied in that relation. In the activities form (Fig. 3.38), a click on the conca button opens
the window (Fig. 3.67) to enter these values. The format of this window is similar to that for
the constraint type 1 which is discussed before.

## FIG. 3.67. Window to Enter Cumulative Constrains on Activities.

(f ) Cumulative constrains per period on activities
When a user defines a relation in the constraint group entitled “cum per period” (Section 3.4.6
(e)) and includes activity of the technology in it, s/he needs to give values with which the
activity will be multiplied in the relation. In the activities form (Fig. 3.38), a click on the
conpa button opens the window (Fig. 3.68) to enter these coefficient values. The format of
this window is similar to that for the constraint type 1 and is discussed before.

FIG. 3.68. Window to Enter Cumulative Constrains per Period on Activity of a Technology in
(g ) Constrains on activities of a technology linked to storage
When a user defines a “storage” (Section 3.4.8), s/he also defines a technology that uses this
storage. The user can define a constraint on this relationship. On the activities form (Fig. 3.38)
or storage form (Fig. 3.45), a click on the consa button opens the window (Fig. 3.69) to enter
the coefficient value of the relation between the storage and the related technology. The
format of this window is similar to that for the constraint type 1 and is discussed before.
Chapter 3 – 87

## FIG. 3.69. Window to Enter Constrains on Activities of a Technology Linked to Storage.

(i ) Difference between time step activities??

## FIG. 3.70. Window to Enter Time Step in Activities of a Technology.

(j) Constraint on market penetration of an activity

## (k) Secondary inputs and outputs of activities of a technology

The program allows multiple inputs and outputs for an activity associated with a technology
(Subsection 3.2.1 and Subsection 3.4.6). The user defines the secondary inputs (outputs) for
Chapter 3 – 88
an activity using the inp (outp) button. Figs. 3.72 and 3.73 show the windows for these
buttons.
A click on the arrow on the Fuel field lists the levels of energy demands and energy forms for
each level defined in the case study. The user can select the desired energy form to make it a
secondary input (output). The remaining data fields are to give the units, time series data
switch and the data values that represent use of amount required (produced) of secondary
input (output) per unit of main output.
The user can define more than one secondary input (output). Every time, he clicks on the Add
option of the Edit command, the program adds a row of data fields to define another input
(output).

## FIG. 3.73. Window to Enter Constrains on Secondary Output of Activities of a Technology.

(j) Lag times for output fuels and materials
Message also allows modeling of lag period in production of an energy or non-energy form.
For example, the user can use this option in modeling of cooling time for nuclear spent fuel.
This cooling time can be modeled as a lag time for annual unloading of spent fuel from
nuclear power plant technology. In the activity form (Fig. 3.65), there is a set of buttons. In
this set, a click on “alags” button opens a window (Fig.3.73a) to select the input from the
dropdown menu in the “Item” field, and to enter time lag in years in the lag field. The user
may enter historical data of this input for the model to compute the year in which this input
will be available to be used as a new fuel.
The historical data will be given in the form of “year” (i.e. the calendar year in which the
martial was produces) and its quantity. This pair of information is separated by space for more
than one piece of information. For example, the data shown in Fig. 3.73a shows that the
nuclear waste needs to be stored for 5 year before it becomes available to be as a fuel, and the
amount of the waste was 5 units in 1998 and 7 units in 2000. This implies that 5 units of 1998
will be available in 2003 and 7 units will be available in 2005.
Chapter 3 – 89

FIG. 3.74. Window to Enter Time Lag in Output Fuel and Material??

## 3.8.3. A Set of Standard Windows to Edit Constraints on Activities on Resources in the

two Databases
As discussed in Section 3.2.6, there are 6 types of bounds and constraints that can be imposed
on resources in the two databases (adb and ldb). A bar of buttons for these bounds and
constraints is given in activities part of the resource form (see Section 3.4.7). A click on one
of the buttons opens the related window. The program shows name of the resource in title of
the window. The following paragraphs show and discuss these windows.
(a ) Bounds on activity
Fig. 3.74 shows the window opened for entering data on bounds on an activity. The format of
this window is exactly the same as discussed in Section 3.8.2 (b). The data values in this
window are used to limit the level of the activity in the model years for the resource; name of
the resource is shown in the title of the window for the ready reference.

FIG. 3.74. Window to Enter Bounds on a Resource in the adb and ldb.
(b ) Constraint type 1 on an activity on a resource

In the Constraints form of the adb and ldb, the user defines relations under the category of
Constraint type 1 (see Section 3.4.5). In the Entries window (Fig. 3.32), the user identifies the
resources that are included in a relation. The data values are then given for contribution per
unit of this activity in the relation and are referred to as coefficient values. The same
information can be given in the window for con1a (Fig. 3.75), which is opened from the
resources form (see Section 3.4.7 (c)). If the user enters this data in the Entries window, the
program displays it in this window. Alternatively, if the user enters this information in this
window, the Entries table is updated for this information.
A click on the arrow in the Relation field lists all relations that have been defined in the model
in the category of Constraint type 1 to choose from. A click on the Unit field opens the Unit
Chapter 3 – 90
form (see Section 3. 7.2) to make a selection and a click on the arrow in the third field lists
four data Switches to choose from (see Section 3.6). The user can enter values in the last field
directly. Alternatively, a click of this field opens the standard Edit form (see Section 3.7.1) to
make all selections and data entry.

## FIG. 3.75. Window to Enter Constraint type 1 on a Resource.

(c ) Constraint types 2 to 4 on an activity on a resource
Figs. 3.76 to 3.78 show windows to enter coefficient values for resources included in relations
defined in the constraints group 2 to 4, which are very similar to that for the constraint, type 1.
A click on con2a or on conca or conpa, opens the related window; the program shows name
of the constraint type in the window’s title.

## FIG. 3.78. Window to Enter Constraint type 4 on an Activity of a Resource.

(d ) Constraint on market penetration of a resource
A click on the mpa button opens the window given in Fig. 3.79. This window is used to enter
market penetration data for a resource and it is similar to that used for the penetration of
technology (Fig. 3.62). In giving the market penetration data, the user gives the start up data
Chapter 3 – 91
first and then gives its growth data. The last two fields in the window (Fig.3.79) are for giving
the growth data and its data switch.

FIG. 3.79. Window to Enter Constraint on Market Penetration of the Activities of a Resource.
3.9. Windows to Edit Input Data Using Text Files
The program facilitates the users to enter input data in an interactive mode using the windows
given for database management. However, it also allows the user to enter or edit input data
using a text editor. On selection of a case study, the Edit command becomes active.
On the dropdown menu of the Edit command (Fig. 3.8), a click on “with text editor” gives the
following options to open these files in a new window:
• gen to edit the general data,
• tdb to edit the technology database,
• adb to edit the application database, and
• ldb to edit the local database.
• upd to edit the up date file.
• UPDS to edit the file containing names of update files.
• ldr to edit the load regions.
• drl to edit the data of day types.
• pch to edit the power change data of a technology.
• cin to edit the cin files written by the user.
• CINS to edit a file containing names of cin files written by the user.
• tit to edit title file.
• fil to edit a text file containing data series not used in MESSAGE but are required for
computation of some indicators in the cin file.
• Imp to edit file for importing data
• Exp to edit a file created by MESSAGE to export the data from the user interface.
• any to open a new file
Selection of one of these options opens a window to edit the relevant file in the Notepad or
any other editor selected using the Settings window (Chapter 2).
Except for two, all these files are generated by MESSAGE in the process of editing of data
bases using the user-interface. Two files (“Imp” and “fil”) are created by the user outside the
user interface of MESSAGE, and the user can then edit these files in the interface.
Chapter 3 – 92

FIG. 3.79a. Window Showing “With text editor” Command.? Double upd
To create a text file to import data, the user can enter some data in the user interface and
export it. S/he can then edit this file to complete the data. That is how s/he can avoid the
problem of finding the right format and right location of saving the import file.
The “fil” file is to enter all data series that are not used in a model developed using
MESSAGE such as GDP or population but they are required to compute some indicators from
the model results. This data from this file is used in the cin file to compute new variables
using the model results and these exogenously given data series.
To create this file, the user can select option of “any” on the drop-down menu of “with text
editor” as shown in Fig. 3.79a. MESSAGE opens a text file in a new window. The user enters
years as given in the general data of the case study and exogenous data series. Fig. 3.79b
shows the format of entering the data. Using the “save as command”, the user gives name to
this file and enters “.fil” as file type. Sub-section 5.2.3 in Chapter 5 discusses how to use the
data from this file in preparation of tables on the model results using cin file.
Chapter 3 – 93

## 3.10. Editing of Energy Chains

The energy chain option can be used after the user has defined some energy forms and
technologies in the application db and scenario db. In the main window for editing these
databases, there is a button labelled “chain”. A click on this button opens a window that
shows energy chains in a tabulated form (Fig. 3.80a). In this table first column shows level
defined by the user and second column shows energy forms defined at each level. The third
and fourth columns labelled “producers” and “consumers”, both give names of technologies.
The window shows energy chain using from the resource to the demand level of the whole
energy system, Fig. 3.80b shows the second part of the window.
Chapter 3 – 94

## FIG. 3.80a. Window of Energy Chain (part a)

Each row in this table shows an energy form at a level and beside it one or more technologies
using the energy form; technologies using it as input are given in the fourth column and
technologies producing it are given in the third column. In Fig. 3.80a, for example, Gaspro is
a technology that is using gas extracted from the Resource as input. Gas, primary level is
output of the Gaspro technology and is input to the GasToPP technology. For each energy
form, there must be one producer (technology was output is this energy form) or one
consumer (a technology using it as input). All energy forms extracted from a
resource/imported are directly or indirectly (through various energy levels) are linked to the
energy demand level.
At the bottom of the chain window, there are four buttons, which work as discussed below:
to get inputs and outputs of a technology in a separate window. A right click
Zoom on a technology name selects its inputs and outputs at all levels in the colour
selected in the “colour” button. A click on the Zoom button opens a new
window (Fig. 3.81) to show only the selected technology. In Fig. 3.81 “chain
cost”: reports computed unit cost at the last level of it, which is shown in red
colour. A click on chain cost opens a window showing this data for all model
years. This unit cost includes fixed and variable costs, fuel cost and the
investment cost.
Chapter 3 – 95

## FIG. 3.80b. Window of Energy Chain (part b)

Change to change the colour of a technology chain. The user can select more than one
Color chain and can have different colours if looking at the whole energy system.

## Clean to clean the selection of a technology chain.

Help to open a window (Fig. 3.82) that provides help on editing of a chain.

Chapter 3 – 96

## FIG. 3.82. Window to get help to edit energy chain

A click on a level name in the first column (Fig. 3.80) opens a window (Fig. 3.83) to add a
new level before or after that level. After giving identity code, the user can enter name of an
energy form on the new level with its code. Addition of a level helps the user in introducing
transmission, distribution, processing and conversion steps. A check box in this window (Fig.
3.83) is to select if energy form has load data (i.e. seasonal variation in annual demand).

## FIG. 3.83. Window to add a new energy level.

To delete a level, a right click on the level opens a window (Fig. 3.84) that shows the level. A
click on the Delete button deletes the level. Before this, the user should make sure that all
energy forms on that level are deleted which means no technology is using these energy
forms.

Chapter 3 – 97

## 3.10.2. Add/delete an Energy Form

To add a new energy form at a level, a click on an energy form at the desired level opens a
window (Fig. 3.85). In this window the user can enter name and one character identity code of
the energy form and can select an option to show if it has load data. The user can also choose
whether to add the new form before or after the existing energy form on which a click is
made. The program shows name of the selected energy form beside the “before” and “after”
options.

## FIG. 3.85. Window to add an energy form.

A right click on a name of energy form selects it for deletion. The program opens a window
showing that energy form name (Fig. 3.86). A click on the Delete button removes that name
from the chain. The user needs to make sure that no technology is using that energy form as
input or output.

## FIG. 3.86. Window to delete an energy form.

3.10.3 Add/ Delete a Technology in a Chain
The chain button is given in the main window as well as in the Technologies window. If the
user opens a chain window from the main window, he can only add a technology with its
input and output but can not edit the data. Alternatively, if he opens chain window from the
Technologies window, he can add a technology and can also edit its data.
To add a technology name, the user needs to select energy forms to be its input and output. By
pressing shift key with left mouse click on an energy form selects it to be the input of the new
technology. The program shows this input in red colour. The left mouse click second time on
an energy form selects it as output of the new technology. The program shows this output in
red colour too and opens a window to enter name of the new technology (Fig. 3.87a). In this
window, the user has the option to select place of the new technology in the chain. The
program shows “before” and “after” toggles to select one and also gives a field to get list of
all existing technology. A click on the arrow in this field shows a dropdown list to select an
existing technology after or before which the new technology is to be added.
A user can also delete a technology using the chain window. By pressing the shift key and
clicking the left mouse key on a technology a window appears to confirm whether the user
Chapter 3 – 98
wants to delete it. If the user presses “Yes”, the technology will be deleted and if he wants to
cancel the delete command he has to press “No” (see Fig. 3.87b).

FIG. 3.87a. Window to Add a New Technology Using the Energy Chain.

## 3.11. Windows to Edit Notes on Data Entities

The program facilitates the users to make detailed notes on a data category in general and on
some selected data entities defined in a case study. The program displays the data fields to
enter these notes on their related windows. The user can edit these notes in the interactive
mode. In addition, the user can also prepare/edit notes on his/her selected data entities using
the text editor.
Chapter 3 – 99
The program has divided these notes into two categories, General and Specific. In the general
category, the user prepares a list of data items on which he likes to make some notes. The
program facilities the user in selecting and adding names of data items from each window.
The specific categories include the later type of notes.
The following paragraphs discuss the windows to edit these notes.
(a) General notes
On selection of a case study, the Edit command becomes active. On the dropdown menu of
the Edit command (Fig. 3.8), a click on “Notes” opens a window to select the type of notes.

## FIG. 3.88. Window to Select a Category of Notes for Editing.

In this window (Fig. 3.88), a click on the General button opens a window that gives names of
all screens that the program displays in the interactive mode (Fig. 3.89) for data editing. A
click on a name, followed by a click on the Ok button, opens a window showing labels of data
fields (Fig. 3.90). In this window for item selection, the user can either add an item or can
select an item for note preparation. A click on one of the names of data field, followed by a
click on the Ok button, opens a text file in a separate window to edit note on a data item or
entity (Fig. 3.91).

FIG. 3.89. Window to Select a Screen for the General Category of Notes.
Chapter 3 – 100

## FIG. 3.90. Window to Select Name of a Data Field for Notes.

FIG. 3.91. Window to Edit Notes on a Data Item in the General Category Using the Text
Editor.
In the window to select an item (Fig. 3.90), a click on the Add button opens a window
showing labels of all data fields that appear on the selected screen (Fig. 3.92). The user can
select an item from this list for making notes. A click on a data field name, followed by a
click on the Ok button, opens a file in the text file in a separate window (Fig. 3.91). A click on
the save button adds the selected field into the list.
Chapter 3 – 101

FIG. 3.92. Window Showing Names of All Data Fields for the Selected Screen.
(b) Specific notes
On selection of a case study, the Edit command becomes active. On the dropdown menu of
the Edit command (Fig. 3.8), a click on “Notes” opens a window to select the type of notes
(Fig. 3.88). A click on the Specific button opens a window showing the items on which notes
have been made (Fig. 3.93) and the user can edit them. A click on an item opens a file in the
text editor in a window to edit the note (Fig. 3.94). On any of the data form/window,
placement of cursor on a data field followed by pressing function key F3 opens a window to
edit specific note on that data field.

FIG. 3.93. Window to Edit Specific Notes Using the Text Editor.
Chapter 3 – 102

FIG. 3.94. Window to Edit Specific Notes Using the Text Editor.
(c) Window for all notes
On selection of a case study, the Edit command becomes active. On the dropdown menu of
the Edit command (Fig. 3.8), a click on “Notes” opens a window to select the type of notes
(Fig. 3.88). A click on the All button opens a window showing all items on which notes can
be made (Fig. 3.95). A click on an item opens a file in the text editor in a window to edit the
selected note.

## FIG. 3.95. Window to Select an Item for Editing Notes.

Chapter 3 – 103
3.12. Creation and Maintenance of Update Databases (udb)
This section discusses how to create an update database. A click on the Edit command in the
main window (Fig. 3.8) drops down the four types of databases i.e. technology, application,
scenario and update. A click on update db (udb) opens a window to enter name of the update
database (Fig. 3.96.) if the study has only default scenario. The program uses suffix of upd
with the given name and opens a window to edit the udb (Fig.3.97). This window is exactly
the same as given for adb or ldb except that colour of data values which is now light orange.
The user can change data values for desirable parameters such as discount rate or technology
penetration rate. If there is any scenario in the case study, the program first opens a window
for selection of a scenario for which the udb has been created (Fig. 3.98).
If the user has created a udb, a click on update db command (Fig. 3.8), opens a window
showing list of all scenarios of the case study including the default scenario On selection of a
scenario, the program opens a window (Fig. 3.99) giving list of all existing Update db files.
The user can then select a udb file to edit it.

## FIG. 3.96. Window to Enter Name of an Update database

Chapter 3 – 104
FIG. 3.97. Window to Edit an Update db (udb)

FIG. 3.98. Window to Select a Scenario for Creating or Editing of Update db (upd)

## FIG. 3.99. Window to Select a Update db (udb) for Editing

3.13. Commands to help in data entry in interactive mode
If the user decides to enter data in the interactive mode, then a set of commands is available to
allow
• clear, cut, copy and paste, data from one data field to another data field,
• to do some calculation on the data given in a field,
• to import data from an excel worksheet and
• export data to a file for the later use
In all the data fields in all the forms/windows discussed in this chapter, a right-click on the
mouse drops down a menu to perform these tasks (FIG. 3.100). The following paragraphs
Chapter 3 – 105
3.13.1 Clear, cut, copy and paste, data from one field to another field
These commands are especially helpful in preparation of data on technologies that have
similar data set except for some parameters. In a data filed, a right click on the mouse gives
the menu and selection of “clear” delete all the data from the field. To cut or copy a piece of
data in a field, first the user should select the data and then click right on the mouse to get the
menu on which selection of “copy” or “cut” allows to perform these tasks. The user can then
paste this value into another filed of the same technology or to another technology.

## FIG. 3.100. Window to Show Command for for Editing

3.13.2 Calculate data
Usually, the data for different energy forms are reported in different energy units in the
published statistics. The user may like to enter the data in the unit given in the statistics and
then convert it to the default units of the model. Selection of “calc” on the dropdown menu
(FIG. 3.100) opens a window to perform this conversion (FIG. 3.101). The first field gives list
of Unit types to choose and the program shows the set of unit of measurement according to
that type in the next two fields. The second field shows the current units and the third field is
to choose the required unit type. The last field in this row is to select the decimal points in
reporting of the converted data value in the new units.
In the second row in this window (Fig. 3.101), a field is given to enter a formula to perform
on the input data for example multiplication or division of the given value by some other
number.

## FIG. 3.101. Window to Perform Calculation for a Data Field.

Chapter 3 – 106
3.13.3 Total data
Selection of “total” on the dropdown menu (FIG. 3.100) opens a window to show sum of all
data entries in the data field for example total demand in the study period. It may be noted that
the program multiply a data entity given for a period with the number of years in that period.
3.13.4 Import and Export of data
Selection of “import” on the dropdown menu (Fig. 3.100) opens a window to select a file to
import data (Fig. 3.102). This window is exactly the same as discussed in the Paragraph (e) in
3.4.4 on editing of demand data.

FIG. 3.102. Window Import Data from a File to a Data Field in the tdb, adb and ldb.
Selection of “export” on the dropdown menu writes the data in the field into a file with its
name. This command is similar to the export command discussed in Paragraph (e) in 3.4.4 on
editing of demand data. The user can open this file either using the command of “with text
editor” given on the drop down menu of the Edit command discussed in Section 3.9 or using
the “intermediate command” while analysing the results (see 4.5.8 Section in Chapter 4).
MESSAGE creates the export file in the subdirectory of data in the directory created for a
case study.
3.14. Editing of data bases for a multi-regional study
As discussed in Chapter 2, a multi-region case study consists of a case study for the main
region and case study for each sub-region. All these studies are maintained as independent
studies and each have its own set of data bases i.e. tdb, adb, ldb and upd data base. All the
commands and windows/data forms discussed in Sections 3.1 to 3.13 are also used for editing
of these data bases (tdb, adb, ldb and upd) except:
• General data form
• Window to edit load regions
• Window to enter Technology data
The following sub-sections discuss these windows/data forms for a multi-region study.
3.14.1 General data form in a multi-region study
All the general data for a multi-region case study is entered only in the case study for the main
region as discussed for a single-region study in Section 3.4.1. When the user edits adb of any
region in a multi-region study, MESSAGE shows the data set defined for the main region and
the user can not edit it. As shown in Fig. 3.103, MESSAGE shows the region name in the
field labelled “country” and the name of the multi-region case study in the filed for “case
study”. For formulation of optimum expansion plan for all the regions, the general data have
to be the same for all regions.
3.14.2 Window to edit load regions in a multi-region study
The window to enter load pattern in multi-region case study is exactly the same as shown and
discussed in Section 3.4.2 for a single region study. The user defines load regions in the main
case study and MESSAGE displays that load-region data in all the case studies defined for
different regions in this multi-region study. Though MESSAGE allows editing of load regions
in each regional case study, MESSAGE keeps only one set of load pattern data and shows it
Chapter 3 – 107
for the main as well as all regional studies. Fig. 3.104 shows that MESSAGE displays name
of the main region in the window for the load data from adb of a regional case study.

Chapter 3 – 108

## FIG. 3.104. Window to Edit Data on Load regions in a Multi-region Study.

3.14.3 Window to enter technology data in a multi-region study
For multi-region study, the window to enter data on technologies is the same as discussed in
Sub-section 3.4.6 for the single case study except for provision of selecting an energy form
from some other region or the main region. In the field to enter main input of a technology,
the user gets two drop down menu to select an energy form. On the arrow in this field a right
click on the mouse gives the list of regions and the main region (Fig. 3.105), while the left
click on the mouse gives levels and energy forms defined in the selected region. The user first
selects the region from the list that appears by placing the cursor on the arrow and a right
click on mouse. MESSAGE does not show the selected region but the following right click on
the mouse displays the levels and energy forms at each level as defined in the selected region.
On selection of energy form then shows the name of the region also along with the name of
the energy form and its level. MESSAGE shows any energy form selected from an other
region in green ?? color (Fig. 3.105a).
Chapter 3 – 109

## FIG. 3.105. Window to Edit Technology data in a Multi-region Study.

3.14.4 Link between the regions in a multi-region study
Ina multi-region study, the links between the regions are through technologies that either
import an energy form from another region or export to another region. In addition to this, the
user can define links between the regions through constraints/relations????. For example, to
define a limit on emissions of a pollutant for the two regions jointly, the user can define ???
Chapter 3 – 110

FIG. 3.105a. Window Showing Input Selected from Other Region in a Multi-region Study.
Chapter 4-i

## CHAPTER FOUR ..................................................................................................................... 1

Optimization of the Model and the Intermediate Results ................................................ 1
4.1. Selection of a Scenario or a Set of Scenarios.............................................................. 1
4.2. Setting the Options ...................................................................................................... 4
4.2.1. Setting Parameters of the matrix generation Program (mxg)................................... 5
4.2.2. Setting Parameters of the the Optimization Program (opt) ...................................... 7
4.2.3. Setting Options for the Calculation Program (cap) .................................................. 9
4.3 Solving the Model ...................................................................................................... 11
4.4. Getting the Intermediate Results of the Model ......................................................... 12
4.4.1. Intermediate Results on Errors Produced During the Matrix Generation .......... 13
4.4.2. Matrix Generated by the mxg............................................................................. 14
4.4.3 Results on Solution of the Optimization Problem............................................... 23
4.4.4. Mathematical Representation of an LP model of Energy System...................... 26
4.4.5. Energy Chains .................................................................................................... 29
4.4.6. Dictionary file..................................................................................................... 36
4.4.7. Row/Column Numbers....................................................................................... 37
4.4.8. Iteration log ........................................................................................................ 37
4.4.9. Infeasibilities ...................................................................................................... 39
4.4.10. Sensitivity......................................................................................................... 41
4.4.11. Export sample................................................................................................... 43
4.4.12. Report ............................................................................................................... 45

List of Figures
FIG. 4.1. Main Window Before a Scenrio is Selected............................................................... 2
FIG. 4.2. Window to Select a Scenario. ..................................................................................... 2
FIG. 4.3. Windows to Select a Set of Scenarios. ........................................................................ 3
FIG. 4.4. Window to Select Update db files. .............................................................................. 4
FIG. 4.5. Window Showing the Dropdown Menu of the Run command. ................................... 4
FIG. 4.6. Window showing matrix generation Options. ............................................................ 6
FIG. 4.7. Window for Setting Parameters of the Matrix generation Program (mxg)................ 6
FIG. 4.8. Window for Setting Parameters for the Optimizer. .................................................... 7
FIG. 4.9. Window for Selecting Optimization Program and its Parameters (Opt). .................. 8
FIG. 4.10. Part two for Selecting Optimization Program and its Parameters (Opt)................. 8
FIG. 4.11. Window for Setting Options for the Cap Program (Cap)....................................... 10
FIG. 4.12. Options for the Cap Program (Cap)....................................................................... 10
Fig. 4.13. Window to Reconfirm Selection of Scenarios .......................................................... 11
FIG. 4.14. Window Showing Options of the Intermediate Command. ..................................... 12
FIG. 4.15. Window Showing Error Messages from the mxgerr File. ...................................... 14
FIG. 4.16. Window Matrix Generated by the mxg Program (rows). ....................................... 15
FIG. 4.17. Window Matrix Generated by the mxg Program (columns)................................... 22
FIG. 4.18. Window Matrix Generated by the mxg Program for (bounds)............................... 23
FIG. 4.19. Window Showing the Solution file (Rows-part)...................................................... 24
FIG. 4.20. Window Showing the Solution file (column-part)................................................... 25
FIG. 4.21. Window Showing the Solution file (last part). ........................................................ 26
FIG. 4.22. Window Showing the Solution file in Mathmetical form. ....................................... 27
FIG. 4.23. Window Showing the Solution file in Mathmetical form. ....................................... 28
Chapter 4-ii

FIG. 4.24. Window Showing the Solution file in Mathmetical form ........................................ 28
FIG. 4.25. Window to Find Chain of a Technology. ................................................................ 30
FIG. 4.26. Window Showing the Chain of a Technology. ........................................................ 31
FIG. 4.27. Window Showing the Selected Technology in the Matrix....................................... 32
FIG. 4.28. Window Showing the Selected Technology in the Solution. ................................... 33
FIG. 4.29. Window Showing the Selected Technology in Chain file to Edit............................ 34
FIG. 4.30. Chain Window Showing Relation Names ............................................................... 35
FIG. 4.31. Chain Window Displaying Storage Names............................................................. 36
FIG. 4.32. Window Showing the Dictionary File..................................................................... 37
FIG. 4.33. Window Showing the File Containing Row and Column Numbers........................ 38
FIG. 4.34. Window Showing Iteration Log. ............................................................................. 39
FIG. 4.35. Window Showing the Error Message of an Infeasible Solution. ............................ 40
FIG. 4.36. Description of Infeasibilities................................................................................... 40
FIG. 4.37. Window of Solution file to Search the Technology which Caused Infeasibility. .... 41
FIG. 4.38. Window to See Descriptioin of the Sensitivity Analysis.......................................... 42
FIG. 4.39. Window to See Sensitivity of the Solution............................................................... 42
FIG. 4.40. Window to See Sensitivity of the Solution after Sorting by Magnitude. ................. 43
FIG. 4.41. Window to See Data Exported from the MESSAGE Windows/form....................... 44
FIG. 4.42. Error Message in Export Command....................................................................... 44
FIG. 4.43. Window to See the Report on Some Selected Input Data. ...................................... 45
Chapter 4-1

CHAPTER FOUR

## Optimization of the Model and the Intermediate Results

The MESSAGE program has been designed to develop an optimisation model of an energy
system. The previous chapters discussed how a model is built using the MESSAGE program.
This chapter discusses the set of windows used to optimize this model, and get the
intermediate results.

The MESSAGE program solves an optimization model in the following two steps:

1. Generation of a matrix.

## 2. Optimization of the model using the generated matrix.

Section 2 discusses windows to perform these two steps, while Section 3 discusses windows
for setting parameters for each step.

The program generates a matrix of the model in the standardised format required by software
packages for optimisation. There is a set of such packages that can be used in the MESSAGE
program. The program lists name of these software packages, and gives option to the user to
select one of them.

The MESSAGE program facilitates the users to get the results at the intermediate level.
Section 4 discusses a set of windows to get these results. Section 5.2.5 in Chapter 5 discusses
selection of cinfiles.

## 4.1. Selection of a Scenario or a Set of Scenarios

When the user opens a case study, its name is given in the title of the MESSAGE’s main
window and also in the middle part of the main window with the title of the “Case Study:” for
a ready reference. The commands for running the model in the menu bar remain inactive (see
Fig. 4.1), unless a scenario is selected. On the main menu bar, a click on the Select command
gives four options. Selection of the Scenario option opens a window that lists names of all
scenarios defined in the case study (see Fig. 4.2). A click on a name of a scenario, followed by
a click on the Ok button, selects the scenario for solving the model.

The user can select a set of scenarios to run one after another with a single run-command.
Furthermore, this selection can be saved in a file type “RUNS” to load the selection next time.
Selection of the second option i.e. Scenarios opens a window that shows list of all Scenarios
(Fig. 4.3). The user can click on more then one scenario to make a set. A click on the Save
button opens the standard MS windows to enter a file name and to choose a folder to save this
file. To run this set of Scenarios next time the user can click on the “load button” (Fig. 4.2b)
to get the file saved earlier for execution of this set of scenarios.
Chapter 4-2

Chapter 4-3

## 4.1.1 Selection of an update database File to Run a Scenario

After selection of a scenario, the user can select an update file if s/he wishes to run the
scenario with some updated values. This option is used if the user does not want to modify
any of the data base file but wants to see the impact of the new values on the results.

In the main MESSAGE window (Fig. 4.1) a click on Select followed by a click on update
group opens a window (Fig. 4.4). This window has two parts; one part shows a list of all
update files available for the case study. A click on one of the upd file selects it and this name
appears in the second part of the window. In upd window, there are two buttons to go up or
down on the list of upd files and a search field to enter name of the desired file. The user can
cancel the selection. After the selection, the user can continue with the commands to run the
case study (see Section 4.3).

For each Scenario, there could be one update data file. If the user selects more than one
Scenario to run, he can select more than on upd file.
Chapter 4-4

## 4.2. Setting the Options

After selection of a desired scenario from the list, the program shows its name in the main
window form (Fig. 4.5) below the name of the case study. If the user selects a set of
Scenarios, the program writes “multiple” beside Scenario name in the main window. Three
more commands on the main menu bar become active (i.e. Run, Intermediate, and Results).

FIG. 4.5. Window Showing the Dropdown Menu of the Run command.
Chapter 4-5

On the dropdown menu of the Run command (Fig. 4.5), the user can:

## • Set the options for solving the model (Options).

• Run the matrix generation program “mxg”, optimization program “opt” and result
extraction program “cap” ( all ).

• Run the above three programs by selecting on at a time (mxg, opt and cap) to see
output of one program before running the second one.

## 4.2.1. Setting Parameters of the matrix generation Program (mxg)

On the Options menu (Fig. 4.6), a click on “matrix gen” opens a window for setting
parameters for the mxg program (Fig. 4.7). For the matrix generation program, the user may
choose following options.

• By default, the program keeps matrix and solution of each scenario to be used again.
By checking in the “NO” box, the user chooses not to save these files for later use and
with selection of an other scenario these files are replaced.??
• The program prepares a summary report of technologies for each scenario in the ascii
format. The user may choose from two other formats which allows her/him to ???.
• By default, the program set the general integer limit to 0 which implies that the integer
variable in the solution may be zero. Accordingly, the equations are created (see
Section ???). Alternatively, the user may choose any other integer to be used.
• The user may choose the accuracy of the solution either to the 30th decimal or 5th
decimal. The infinity data field gives these two options.
• The user may choose to prepare a short report or no report at all.
• The user may select a year or a set of years from the study period for the summary
report prepared by the mxg program. A double click on the data field opens a window
showing study period to enable selection of years.???
Chapter 4-6

## FIG. 4.6. Window showing matrix generation Options.

FIG. 4.7. Window for Setting Parameters of the Matrix generation Program (mxg).

• Three options are given to set the right-hand side of the equations for which no
upper/lower bindings are given in the model. By default, the mxg program does not
eliminate such equations and set the value of ?. . Alternatively, the user can ?? by
Chapter 4-7

choosing “nbd” or eliminate all such equations by selecting “all” in the data field for
“Eliminate nonbindings”.
4.2.2. Setting Parameters of the the Optimization Program (opt)
On the Options menu (Fig. 4.8), a click on optimizer opens a window for selection of the
optimization program and its parameters. In this window (Fig. 4.9), a bar of buttons shows
names of five optimization programs that can be used for solving the MESSAGE model.
Initially, the program shows the optimization program selected in the Settings window
(discussed in Chapter 2). However, the user can select an other optimization program at this
stage. A click on a name of the optimization program selects it.
Below the button bar, there is a framework that gives a set of parameters with data fields
(Figures 4.9 and 4.10). Table 4.11 explains options for each field. In most of the data fields, a
click on the arrow lists appropriate options for selection. A click on one on the options selects
it, and the selected option appears in the data field (Fig. 4.9). After selection of appropriate
parameters, the user has to save them by pressing the “Save” button.

## FIG. 4.8. Window for Setting Parameters for the Optimizer.

Chapter 4-8

FIG. 4.9. Window for Selecting Optimization Program and its Parameters (Opt).

FIG. 4.10. Part two for Selecting Optimization Program and its Parameters (Opt).
Chapter 4-9

Table 4.1. List of Data Entities to Set Parameters for Optimization (Figures 4.9 and 4.10)
Data Field Label Description
Use basis Selection of “adb” implies that the solution of “adb” scenario should
be used as a starting value for solving the current scenario.
Alternatively, selection of “no” implies that ??? while “yes” implies
that ???

Scale problem Selection of “no” implies that ??? while “yes” implies that ???

Solution method The user may select “simplex” method or “intpnt” method (see
Annex A for details).
Maximum number of The program by default gives one set of integer values that solve the
integer solutions model. In principal, however, there are more than one set of such
values. The user may want to get more than one set of such values.
Use pre-solver Selection of “yes” implies that ???, alternatively “no” implies ??/
Branching strategy Selection of “first” implies that ???, alternatively “last” implies ???.
While selection of “drtom” will ???
Backtracking strategy Selection of “bfs” implies that ???, alternatively “dsf” implies???.
While selection of “bestp”
Sensitivity analysis By default the program carrys out sensitivity of the objective function
for each solution variable. The user may choose “no” to save time.
Set general integer This limit is initially put in the window for the generation matrix and
upper bound may be reset here for the solution method.

## 4.2.3. Setting Options for the Calculation Program (cap)

On the Options menu (Fig. 4.11), a click on cap opens a window for setting some options of
the Cap program that are used to tabulate the results according to the user requirement. In this
window (Fig. 4.12), a data field labelled “graph type” gives options that help the user in
making graphs from the tables generated by the “cap” program. The other data fields are to
select the scenario and ????save the graphs options in a separate file for that scenario.
Chapter 4-10

FIG. 4.11. Window for Setting Options for the Cap Program (Cap).

## FIG. 4.12. Options for the Cap Program (Cap).

A click on the arrow, in the graph type field (Fig. 4.12), gives five options:

Spr: The program prepares a graph of continious line which can be saved as a picture or the
table data may be imported to a spread sheet.
Sprn: for importing to a spread sheet with zero series suppressed???,
Eps: for importing to encapsulated postscript file,
Py: for a Python plot program, and
Ltx: for latex file???.
Chapter 4-11

These selections are made at the case study level. The user can also select scenarios for
making the selection of the graph type. A click on the scenario field lists names of all the
scenarios in the case study to select one. A field is given to give the name of the title file to
store the titles of the tables to be generated by the cap program.

## 4.3 Solving the Model

On the dropdown menu of the Run command (Fig. 4.11), four programs are listed i.e. mxg,
opt,postp and cap. A click on name of a program runs the selected program. Alternatively, a
click on all, exceutes all the four programs one after another ????.

If the user selects a set of Scenarios (see Section 4.1), the program opens a message box that
displays names of Scenarios to be executed (Fig. 4.13). A click on ‘Ok” button continues
execution of the selection. Alternatively, the user can clear the Selection ( a click on the Clear
button) or can make new selection or can cancel the run command. A click on the Reselect
button opens the selection window (Fig. 4.3) discussed in Section 4.1.

The MESSAGE’s background window (Fig. 2.1 in Chapter 2), shows the DOS commands
being executed to run the program and some preliminary features of this excecution. For
example, this window shows number of columns and rows of the matrix generated while
running the mxg program.

## Fig. 4.13. Window to Reconfirm Selection of Scenarios

The main window of MESSAGE displays name and status of the progam above the User
name in the middle part of the window. After successful excecution of mxg, opt or cap,
MESSAGE displays the name of the program beside the title of “Done:” i.e. Done:mxg,
Done: optimization and Done:cap.
Chapter 4-12

For running the cap program, the user needs to prepare an input file, which is called cinfile
and it is discussed in Chapater 5 in details.

## 4.4. Getting the Intermediate Results of the Model

The program allows the user to get results of the model at two stages of computation in
various forms and some other related information, which are referred to as the intermediate
results. For example, the user can view the matrix generated for the user-defined LP model,
solution file of the model and complete model in the mathematical form. These intermediate
results can help the user in finding out any problem encountered in matrix generation or in
optimization of the model, and understanding of the results.

In the main window of the MESSAGE program (Fig. 4.14), the Intermediate command
becomes active after solving the model. The dropdown menu of the Intermediate command
lists 12 options to choose from.

## The options are as follows:

• MXG errors: to open a file of errors messages. This file is generated if the mxg
program encounters any problem in generation of the matrix.

• Matrix: to open a file that contains the matrix generated by the mxg program.

• Solution: to open a file that reports the complete optimum solution by rows and
columns which is the output of the opt program.

• ViewLp: to open a window that shows the user defined model in the mathematical
form i.e. the complete objective function and constraints. A sub-window also shows
Chapter 4-13

the solution of the LP model i.e. optimum values of the variables (columns) and the
constraints (rows/equations).

• Sensitivity: to open a window that shows the maximum increase and decrease in value
of each variable (column) that will not change the base value ???? of the objective
function in the optimum solution.

• Chain: to open a window that shows the structure of the model in the chain form and
the user can select a technology to see its data in the matrix, its optimal value in the
solution, and can also edit value of that technology in the database.

• Dictionary: to open a window in which the user can find names constructed by the
MESSAGE model for energy forms, technologies, resources and constraints/relations
using the user-defined identifiers. These variable names appear as column names
while constraints names appear as row names in the matrix file, solution file and
mathematical presentation of the model.

• Row/col: to open a window that shows rows’ numbers and columns’s numbers of the
matrix along with their names. This information is helpful in solving of any
infeasibility problem.

• Iteration log: to open a window showing values of the objective function at some
major steps before arriving at the final optimum solution.

• Infeasibilities: to open a window that shows the row and column numbers and names
that are most likely causing problem in finding the feasible solution.

• Export sample: to open the worksheet containing data exported from the Demand
form (see (e) of Section 3.4.4. in Chapter 3).

• Report: to get summary of the input data of technologies in a tabulated form if the
user has selected the report option (see Section 4.2.1).

On the dropdown menu of the Intermediates command (Fig. 4.14), a click on these options
opens the related windows that are discussed below.

## 4.4.1. Intermediate Results on Errors Produced During the Matrix Generation

During execution of the mxg program if it encounters some errors, the program writes error
messages in the “mxgerr” file. On the dropdown menu of the Intermediate command, a click
on MXG errors (Fig.4.14) opens this file in a new window (see Fig. 4.15).
Chapter 4-14

FIG. 4.15. Window Showing Error Messages from the mxgerr File.

The program gives name of the technology/resource that has inconsistent data entities. In the
example shown in Fig. 4.15, the data given on bdi parameter i.e. bounds (lower and upper) on
total installed capacity are incorrect for the technology named CCIG as lower limit is higher
than the upper bound.

## 4.4.2. Matrix Generated by the mxg

After running the mxg program, a file containing the matrix of the user-defined model is
available. On the Intermediate command (Fig. 4.14), a click on the Matrix option opens the
Matrix file in the Notepad (Fig. 4.16). The user can select another text editor for opening this
file using the Settings command (Chapter 2). In this file, the first line shows name of the case
study along with the scenario name. The file contains four blocks of information starting with
their labels i.e. Rows, Columns, RHS and Bounds.

Each row of the matrix represents an equation of the model (see Appendix A) and each
column represents a variable. For some of the equations, there is a Right Hand Side (RHS)
value defined by the user. For example, all demand data are RHS values of the demand
equations and historical capacity of a technology is RHS of the capacity equations. Similarly,
the user may define some bounds for some variables such as a bound on capacity addition in a
technology???.
Chapter 4-15

## Rows in the Matrix file

The program first gives information on all rows i.e. equation-type and name of the equation.
An equation can be greater, lower or equal to its assigned value. The program reports “G, L
and N for these three types of equations. The assigned values are either given by the user as
part of the model which are discussed in the paragraph on RHS values or a standard value
defined by the MESSAGE model i.e. -1.E31 as the upper bound and 1.E31 as the lower bound
value. ???

Tables 4.2 and 4.3 report the template of equation names and column names which are used to
generate these names for every model, respectively. In these tables “zsvd” is a code
representing technology names. This code is composed of user defined identifiers which the
program uses to construct technology names. The user defines these identifiers in building of
her/his database. In this code for technology names,

## z: is level identifier at which output of the technology is defined in the “Energyforms”

window (see section 3.4.3 (a) in Chapter 3)
s: identifier for the main input of the technology which is one of the energy form defined at a
level (see section 3.4.3 (b) in Chapter 3).
v: additional identifier of the conversion technology (see section 3.4.3 (e) in Chapter 3)
d: identifier of the output of the technology (see section 3.4.3 (b) in Chapter 3)
Chapter 4-16

In addition to the technology code, the program use some standard codes to identify the type
of equation or variable. For example, row name “cscae” in Fig. 4.16 is composed of standard
code “C” for the capacity equation and “scea” is a technology name in which
s: is identifier for secondary level
c: is identifier for coal which is used as input in this technology
a: is identifier of the activity
e: is identifier for electricity which is output of this technology for the “a” activity.
The program generates some of the equations automatically. In the example shown in Fig.
4.16, “ccap…a” is the equation name defined by default by the program to compute the total
investment cost of all technologies in period t. However, if the user goes down in this file,
s/he can find the equation name “fe…..a” that is defined for the electricity demand at the final
level and the demand data is reported as the RHS values of the demand equation (see Fig.
4.18).

## Table 4.2 Standard Row/Equation Names in an LP model

Codes User-defined constraint/relation (see Chapter 8 of Annex A)
car1…t??? Equations to compute the cost for the relations defined in the
and car2…t constraint/relation group1 and group 2 ( c ) in section 3.4.5 in Chapter
3 and section 9.1.1 in Chapter 9 of Annex A).
Cost accounting constraints (see Chapter 9 of Annex A)
ccap…t Investment cost of capacity expansion (undiscounted).
ccur…t Fix (related to the installed capacity) and variable (related to the
production) operation and maintenance costs.
Various types of constraints on conversion technologies
czsvd.lt Constraint on utilization of a technology in relation to the capacity
installed (section 2.2.1 in Chapter 2 of Annex A).
Myzsvd..t/ Upper (Lower) dynamic constraint that relates the amount of annual
Lyzsvd..t new installation in a period to the annual construction during the
previous period (section 2.2.2 and 2.2.3 in Chapter 2 of Annex A)..
Mzsvd..t/ Lzsvd..t Upper (Lower) dynamic constraint that relates production of a
technology “zsvd” to the production in the previous period (section
2.2.4 and 2.2.5 in Chapter 2 of Annex A)...
Various constraints on storages
szsv..lt For daily storage, constraint on energy balance over the load regions
of one day (it can not be between the seasons).
For seasonal storage, constraint on energy balance over all types of
loads defined in the model. Section 3.2.1 in Chapter 3 of Annex A.
czgsv..lt This equation defines the capacity of storing or releasing energy per
unit of time in a certain storage technology. Section 3.2.2 in Chapter
3 of Annex A.
Chapter 4-17

## czVsv..lt This equation defines the volume capacity of a storage technology.

Section 3.2.3 in Chapter 3 of Annex A.
Various constraints on resources
rrrg.g.. Equation to put limit on the domestic resource “r” available of grade
type “g”, over the whole time horizon, while first “r” is identifier of
the resource variable and the second “r” is the identifier of the
resource level (section 4.2.1 in Chapter 4 in Annex A).
rrr….t Equation to put limit on maximum annual extraction of resource “r”
in period “t” over all grade types, while the first “r” is resource
identifier and the second “r” is identifier for the constraint (section
4.2.2 in Chapter 4 in Annex A).
rrrg.d.t Equation to put limit on extraction of a resource type “g”, in a period,
in relation to the total amount still existing in that period, while the
first “r” is resource identifier and the second “r” is identifier for the
constraint (section 4.2.3 in Chapter 4 in Annex A).
rrrg.a.t Maximum annual resource extraction of a resource type “g” in a
period, while the first “r” is resource identifier and the second “r” is
identifier for the constraint (section 4.2.4 in Chapter 4 in Annex A).
Mrrr…t/LRRr…t Upper (Lower) dynamic constraint that relates the amount of
extraction of resource “r” in period “t” to the annual extraction during
the previous period. The first “r” is resource identifier and the second
“r” is identifier for the constraint, M and L are identifier for the upper
and lower limit, respectively (sections 4.2.5 and 4.2.6 in Chapter 4 in
Annex A).
Mrrrg...t/LRRrg..t Upper (Lower) dynamic constraint to relate the amount of extraction
of resource “r” of grade type “g” in period “t” to the annual extraction
during the previous period. The first “r” is resource identifier and the
second “r” is identifier for the constraint, M and L are identifier for
the upper and lower limit, respectively (section 4.2.7 in Chapter 4 in
Annex A).
Constraints on import and export
Izrc.p.. Equation to put limit on maximum imports of the identified energy
form “r” from region “c” in elasticity category “p” (if defined else
“.”) over the whole horizon (section 5.2.1 in Chapter 5 of Annex A).
Izr….t Equation to put limit on maximum annual imports of identified
energy form “r” from all regions (section 5.2.2 in Chapter 5 of Annex
A).
Izrc.a.t Equation to put limit on maximum annual imports of identified
energy form “r” from region “c” (section 5.2.3 in Chapter 5 of Annex
A).
MIzr...t/LIzr…t Equation to define upper (lower) constraint on annual import of the
identified energy form “r” related to that in the previous period by a
growth parameter (sections 5.2.4 and 5.2.5 in Chapter 5 of Annex A).
Chapter 4-18

## MIzrc..t/LIzrct Upper (Lower) constraint on annual import of the identified energy

form from region “c” related to that in the previous period by a
growth parameter (sections 5.2.6 in Chapter 5 of Annex A).
ezrc.p.. Equation to put limit on maximum exports of the identified energy
form “r” from region “c” in elasticity category “p” (if defined else
“.”) over the whole horizon (section 5.2.7 in Chapter 5 of Annex A).
ezr….t Equation to put limit on maximum annual exports of identified
energy form “r” from all regions (section 5.2.7 in Chapter 5 of Annex
A).
ezrc.a.t Equation to put limit on maximum annual exports of identified
energy form “r” from region “c” (section 5.2.7 in Chapter 5 of Annex
A).
Mezr...t/LIzr…t Equation to define upper (lower) constraint on annual export of the
identified energy form “r” related to that in the previous period by a
growth parameter (sections 5.2.7 and 5.2.7 in Chapter 5 of Annex A).
Mezrc..t/LIzrct Upper (Lower) constraint on annual export of the identified energy
form from region “c” related to that in the previous period by a
growth parameter (sections 5.2.7 in Chapter 5 of Annex A).
Constraint on energy flows
ud…..t Constraint on annual demand of energy form in period “t” that
defines demand constraint. If “U” is not used to define the demand
level then this demand constraint my be defined by load regions
(section 6.1.1 in Chapter 6 in Annexure A).
fs….lt Constraint to match the output of the distribution system to the
demand for energy form “s” in period “t” in load region “l” (section
6.1.2 in Chapter 6 in Annexure A).
Ts….lt Constraint to match the output of the transmission system to the
requirement of the distribution system for energy form “s” in period
“t” in load region “l” (section 6.1.3 in Chapter 6 in Annexure A).
.xs….lt Constraint to match the production of central conversion technologies
to the requirement of the transmission system of energy form “s” in
period “t” in load region “l” (section 6.1.4 in Chapter 6 in Annexure
A).
.Ar…..t Constraint to match the production and import of primary energy to
the requirements of central conversion technologies in period “t”
(section 6.1.5 in Chapter 6 in Annexure A).
Rr…..t Constraint to match the production of primary energy to the resource
extraction in period “t” (section 6.1.6 in Chapter 6 in Annexure A).
Constraint on stock-piles
qf.….t Equation to allow accumulation over time of an energy form “f” and
its consumption in later period. Such energy forms are defined at the
level with special identifier of “q” (section 7.2.1 in Chapter 7 in
Chapter 4-19

Annex A).
Constraint for the user-defined relations
Nm…..t/ pm…..t Equation to compute the relation “m” defined by the user in the
constraint/relation group 1 and group 2 respectively. In Chapter 8 in
Annex A, section 8.1.1 gives the equation for the simple relation
while section 8.1.3 define the equation if the relation is between
periods.
Nm….lt/ Pm….lt Equation to compute the relation “m” (with load region) defined by
the user in the constraint/relation group 1 and group 2 respectively
(section 8.1.2 in Chapter 8 in Annex A).
Chapter 4-20

## Columns in the Matrix file

Figure 4.17 shows the column part of the matrix file. For columns, the program reports name
of the column (variable), equation name in which it is used and its coefficient value. Table 4.3
gives the templates to show how different types of column/variable names are constructed by
adding pre- and post-fixes to a technology name. ( the above para has discussed how a
technology name is disussed).
A technology name without any suffix represents activity variable of the technology. In the
example shown in Fig. 4.17, “feae…a” is the activity variable of a technology that supplies
final electricity demand. This variable is used in three equations (namely fe…a, se….a and
cfeae..a). The program gives these equation names and the coefficient values used for this
variable in them for each study year. For example, “feae...a fe.....a +8.00000e-01”
implies that 0.8*feae…a will appear in the equation of “fe…..a”. The program gives this
mathematical representation for all rows and columns of the mode in the LPviewer file (see
section 4.5.4 on this file).

## Table 4.3 Standard Column/Variable Names in an LP model

Variables of conversion technologies
zsvd.lt Activity variable of a technology that represents annual consumption
of its main input per period (section 2.1.1 in Chapter 2 of Annex A).
ysvd.lt It represents capacity variable of a technology. Technologies can be
defined without capacity variable (section 2.1.2 in Chapter 2 of
Annex A).
If this variable is continuous it represents the annual new installations
in period t.
If this variable is integer it represents either the annual number of
new installations of a certain size or the number of installation of 1/∆t
time the unit size depending on the definition? .

Variables of storages
sizsv.lt It represents the amount of fuel “s” put into storage “v” in load region
“l”, while “si” is identifier of storage input variable (see section 3.1.1
in Chapter 3 in Annex A).
ozsv.lmt It represents the amount of fuel “s” taken out of storage “v” in load
region “m” which was put into storage in load region “l” while “o” is
identifier of storage output variable (see section 3.1.2 in Chapter 3 in
Annex A).
yzgsv.lmt It represents the generation capacity of storage “v” in load region “m”
which was put into storage in load region “l” while “y” is identifier of
capacity variable and “g” is identifier of the generation capacity for
storage technologies (see section 3.1.3 in Chapter 3 in Annex A).
yzVsv.lmt It represents the volume capacity of storage “v” in load region “m”
which was put into storage in load region “l” while “y” is identifier of
Chapter 4-21

## capacity variable and “V” is identifier of the volume capacity variable

for storage technologies (see section 3.1.4 in Chapter 3 in Annex A).
Variables of domestic resources (see Chapter 4 of Annex A)
rrg It is the total amount of resource “r” in cost category or grade type
“g” that is available for extraction (section 4.1.1 in Chapter 4 in
Annex A).
rrg,0 It is the extraction of resource “r”, grade “g” in the base year, while
the first “r” is resource identifier (section 4.1.1 in Chapter 4 in Annex
A).
rzrgp..t Average annual rate of extraction of the resource “r” of grade type
“g” in period “t” from the class of supply elasticity “p”. Currently, the
supply elasticity option is not available so there is a “.” in place of
“p”. See section 4.1.1 in Chapter 4 in Annex A.
Variables of import and export (see Chapter 5 of Annex A)
izrcp.lt Annual imports of identified energy form “r” from region “c” (if
defined else “.”), while “i” is identifier of import variable and “z” is
the level at which “r” is defined (section 5.1.1 in Chapter 5 of Annex
A).
irct It is the limit value for the annual imports of identified energy form
“r” from region “c” (if defined else “.”), while “i” is identifier of
import variable (section 5.2.3 in Chapter 5 of Annex A).
ezscp.lt Annual exports of identified energy form “s” to region “c” (if defined
else “.”) while “e” is identifier of export variable and “z” is the level
at which “s” is defined (section 5.2.2 in Chapter 5 of Annex A).
Stock-piles variables
qfb….t It represents the amount of fuel “f” that is transferred from period to
into period t+1, while “q” is identifier of stock-pile and “b”
distinguishes variable from the equation (section 7.1.1 in Chapter 7 in
Annex A).
Chapter 4-22

## Right Hand Side and Bounds in the Matrix file

Figure 4.18 shows the last two parts of the matrix file. In the RHS-part, the program reports
only those equation names for which rhs values are given by the user. In the example shown
in Fig. 4.18, value of 50 is the final demand of the oil in the first period, so it is reported as the
rhs of the final demand equation namely fo….a d for oil.
The program uses the default value of “-1.e31” as the lower limit and “1.e31” as the upper
limit to define rhs of the remaining equations.
The last part of the matrix file reports the values of three types of bounds i.e. upper, lower and
fixed, defined by the user (see Section 3.8 in Chapter 3 to see how these bounds are defined).
In addition, the program by default gives the sum of the fixed operating cost of all
technologies as one of the bound for each period.
Chapter 4-23

FIG. 4.18. Window Matrix Generated by the mxg Program for (bounds).

## 4.4.3 Results on Solution of the Optimization Problem

The solver (i.e. the selected Optimizer) generates a linear solution, which is stored in a file
called Casename_lin.sol. For example the name of solution file of Demo case will be
Demo_lin.sol.
On the dropdown menu of the Intermediate command (Fig. 4.14), a click on Solution opens
the solution file of the case study in a text editor such as the Wordpad (Fig. 4.19). The user
can select another text editor for opening the solution file using the Setting window (Chapter
2).
Chapter 4-24

## FIG. 4.19. Window Showing the Solution file (Rows-part).

As discussed, the “mxg” program construct a matrix; each row representing an equation and
each column representing a variable, and all the input data entered are either coefficients/
bounds of variables or right hand side value of the equations. The solution matrix reports
optimal values of that matrix. In the solution file, the program reports highlights of the
solution matrix: number of rows and columns, number of non-zero elements, status of the
solution and the value of the objective function; if the program has found an optimal solution
of the model. The program then reports the solved matrix first by giving all rows and then all
columns.

Rows part

In reporting an equation or a row the program gives the followings (Fig. 4.12):
i) row number (labelled as “No.),
ii) equation name (labelled as “Row name),,
iii) status of the constraint (labelled as “St.) B if the value is within the range, NU if
the value is equal to the upper bound and NL if the value is equal to the lower
limit. For the NL and NU states, the program gives a “marginal” value. The “NS”
code is used to report ????
iv) value of the equation in the solution (labelled as “Activity”),,
v) the user defined lower bound for the equation (labelled as “Lower bound”),,
vi) the user defined upper bound for the equation (labelled as “Upper bound”), and
Chapter 4-25

vii) a slack value for the equation that converts the inequality of the equation due to
upper and lower bound. This slack value is labelled as “Marginal”. A negative
marginal value implies that there will be a reduction in value of the objective
function of that magnitude if the bound value is reduced by one unit. Alternatively,
a positive value implies increase in the value of the objective function per unit
value of the bound. The objective function of an energy system is the discounted
cost of energy supply from various sources and the program minimizes this total
cost. Therefore, the marginal value of ??? represents the marginal price of that
energy form which will be the market price in the optimum expansion system.

## The program reports all rows by names in alphabetic order.

Column part

In reporting of columns from the solution file (Fig. 4.20 ), the program follows the format of
row reporting discussed above except that the marginal value now represent increase or
decrease in value of the objective function for one unit increase in that variable???. For
example, a

## FIG. 4.20. Window Showing the Solution file (column-part).

At the end of the solution file, the program reports the optimality conditions (Fig.
4.21)????????.
Chapter 4-26

## 4.4.4. Mathematical Representation of an LP model of Energy System

The MESSAGE model provides a user-friendly environment to construct an LP model of an
energy system. It also facilitates the user to view her/his LP model in the mathematical form
i.e. the objective function and constraint equations build using her/his defined energy forms,
energy conversion technologies, energy resources and various other simple or dynamic
constraints.
On the dropdown menu of the Intermediate command (Fig. 4.14), selection of the ViewLP
option opens a window showing the model in the mathematical form (Fig. 4.22). This window
is divided into six parts.
The second part labeled as LP input shows the complete objective function and all constraints
of the model. The remaining 4 parts show the list of integer variables, the bounds, and status
of the model. The sixth part is to show the solution of the model (Fig. 4.23). The user can
search a variable in any of these parts.
In the first part the window (Fig. 2.22), a set of fields is given to select a particular variable
from the model and to search it in LP input window, integer variable window, in the solution
or in all of these files. If the model is big then the user can look at the part relevant to its
variable only. A click on the “Make list” button make this selection in all parts of the window.
For example, the program will show only that part of the objective function that contains the
selected variable and will show only those constrains that have this variable.
Chapter 4-27

The user can enter a name directly in the search field and can then make a selection of the file
to find it either in the parts showing solution, LP input or integer variables.
Alternatively, the program helps the user to get the variable name. In first part of the window
(Fig. 4.22) the dropdown list in the “disc:” field is to select either one of the technologies or
one of the resources. According to the selection, the program gives the list of technologies
(resources) from the model in the item field. The program displays name of the variable in the
search field and in the column filed. The user can now make the selection of the file to search
in.
The dropdown list gives:
• all column names of the model in the “column:” field,
• region names in the “reg:” field for the multi-region studies,
• all load regions of the model in the “ldr:” field,
• all study years in the “tms” field.
After selection from all these fields, a click on the “Make list” button shows the selected item
in the relevant part. If the file is big, the user can use “Next” and “Prev” button to go through
the file. A click on the “Clear sel” button clears the selections made in the various fields.

Chapter 4-28

## FIG. 4.24. Window Showing the Solution file in Mathmetical form

For each column and row of the model, the solution file has four pieces of information i.e.
activity value, upper limit, lower limit and shadow/marginal value. In the “view:” field (Fig.
4.23), the dropdown list shows these options to select. In the sixth part of the window, a click
on the solution button then displays the value from the solution file for the selection made in
the “view:” field.
At the bottom bar of the LP-viewer window, the “Sav mat” button is to save the??? and the
“Save mps” button is to make the backup of the solved matrix i.e. the MPS file (Fig.
4.24)???/. Creation of a new MPS file means that the previous solution is not modified
because of this run???.
Chapter 4-29

## 4.4.5. Energy Chains

During editing of the database, the user can see all energy chains of her/his model (Section
3.10 in Chapter 3). For each energy form defined at a level, the program reports its producer
(i.e. technologies producing it) and consumers (i.e. the technologies using it). A file
containing this information is saved, and is called a chain file. This framework of the model’s
representation is also available to look into the matrix file and solution file. This facilitates
analysis of the results or any problem in the model such as locating any missing links between
the demand for and supply of an energy form.
On the dropdown menu of the Intermediate command (Fig. 4.14), a click on Chain opens a
window to show complete chain of technologies, relations and storages. In the energy chain
window, the program shows button for each of these categories if defined in the case study.
The first row in these windows has a set of fields to select a name, identifier, load region and
study year from the dropdown list. As the user selects any entity from the list, the program
shows its name in the fields given below.
A click on the Technologies button (Fig. 4.25) gives the complete energy chain of the model
i.e. showing all level and all technologies defined at each level. From this chain, the user may
like to select a technology to look at its values in the matrix file or in the solution file. The
user may enter name of the technology in the search field or uses the dropdown list in the
fields given in the first row to facilitate the search. The program highlights the selected
technology with a color (Fig. 4.26). The program displays the level of the selected technology
and the energy form it produces.
The user can find value of the selected technology both in the matrix file (Fig. 4.27) and in the
solution file (Fig. 4.28) or can edit it. A click on the Edit button opens the chain file in a
separate word’s window (Fig. 4.29). The user can select another text editor for opening the
chain file using the Settings option (Section 2.3.7 in Chapter 2).
In this file (Fig. 4.29), for energy level, the program reports producers and consumers of all
energy forms defined in a block. The block starts from the name of the level (starting from
column 1 of the line) and its identifier followed by a colon sign. In this block, names of all
energy forms are reported with their identifiers followed by two sets of records that are
labeled as “Producers:” and “Consumers:”. These sets are separated by a blank line starting
with the star sign.
The Producers set consists of records on technologies producing the energy form. One record
is defined for each technology, and it gives name of a technology and its identifiers, the
program generated name and identifier for it, an identifier for the record (i.e. identifiers of the
energy form and the level joined by the dash sign, efficiency data set for the technology i.e.
data switch value followed by the efficiency values (units output per unit of input). Similar
records are given for the technologies defined in the Consumers set.
Starting from the first level, the program reports blocks for all energy levels in the order in
which these were defined in the window for energy forms.
Chapter 4-30

Chapter 4-31

Chapter 4-32

Chapter 4-33

## FIG. 4.28. Window Showing the Selected Technology in the Solution.

Chapter 4-34

FIG. 4.29. Window Showing the Selected Technology in Chain file to Edit.
The chain window also shows buttons to get list of relations defined in the five Groups if they
are used????. A click on a Relation button (Fig. 4.30) gives list of all relations defined in that
group. In this window three buttons are given to find a selected relation in the matrix file or
solution file or edit it. The program shows both its own given name and the user defined
name. A click on a name selects it.
Chapter 4-35

## FIG. 4.30. Chain Window Showing Relation Names

If user has defined storages, the Storages button also appears in the chain window (Fig. 4.31).
A click on this button displays list of storages defined in the case study. The programme
displays its own defined name along with the user defined name. The user can find a name
and its value in the Matrix file and the solution file. A click on the name selects it and a click
on the “Find in Matrix” opens a separate window to display the storage variable in the matrix
file. Similarly, a click on the “Find in solution button” opens a separate window to show value
of the storage in the solution file.
Chapter 4-36

## 4.4.6. Dictionary file

The program generates names for all data entities defined in a model. The user can use these
names to extract the results (see Section on Cin file in Chapter 5) or use them while looking at
the matrix file or solution file. The dictionary file contains these program-generated names.
On the dropdown menu of the Intermediate command (Fig. 4.14), a click on Dictionary opens
a file in the Notepad containing the data dictionary prepared by the program (Fig. 4.32). The
user can select another text editor for opening the solution file using the Settings window
(Chapter 2).
The dictionary file contains data entities for the following categories of data:
• Relations1:(Constraints/Relations Group 1).
• Relations2:(Constraints/Relations Group 2).
• Relationsc:(Constraints/Relations Group 3).
• Relationsp:(Constraints/Relations Group 4).
• Storages
• Technologies.
• Resources.
In this file, the program shows user defined names in the selected data category. It also gives
its own generated names beside the user-defined name.
Chapter 4-37

## FIG. 4.32. Window Showing the Dictionary File.

4.4.7. Row/Column Numbers
As discussed above the Matrix file contains the equation name its associated row number. To
facilitate further, the program keeps all equation and variable names and their row and column
numbers in a separate file. On the dropdown menu of the Intermediate command (Fig. 4.14), a
click on the row/col number opens a window showing this file (Fig. 4.33). A Find: field is
given to search for a row or column number.

## 4.4.8. Iteration log

In solving the model, the optimization program prepares a log file of iterations till the optimal
solution is reached. On the dropdown menu of the Intermediate command (Fig. 4.14), a click
on Iterationlog opens this log file in the Notepad (Fig. 4.34). The user can select another text
editor for opening this file using the Setting window (Chapter 2).
This log file reports the value of the objective function at different stage of the optimization.
This can be helpful in tracing any problem if the ???/
Chapter 4-38

FIG. 4.33. Window Showing the File Containing Row and Column Numbers.
Chapter 4-39

## FIG. 4.34. Window Showing Iteration Log.

4.4.9. Infeasibilities

A model may not be solved due to some infeasible constraints in it. The optimization program
prepares a report on such infeasibilities. On the dropdown menu of the Intermediate command
(Fig. 4.14), a click on Infeasibility opens a file in the Notepad giving this report (Fig. 4.35).
The user can select another text editor for opening this solution file using the Settings window
(Chapter 2).

Fig. 4.35 shows the infeasibility encountered during the optimization of a scenario. In the first
line of the block of “PRIMAL SOLUTION IS INFEASIBLE” row number is given (31 in this
example). A click on the Description button opens a window (Fig. 4.36) to give names of the
technologies and the infeasibility encountered. In this example, there is no balance between
supply and demand of gas for fertilizer.??? Why tech nu col??

If the user looks at row 31 in the solution file (Fig. 4.37), a technology Df is found. In the
dictionary, this is a technology which supplies gas to fertilizer feedstock. There is no
alternative technology supplying gas to fertilizer feedstock. In line 31 of the solution, the
value of 6925.79 is the annual gas demand for the last study period while the fertilizer
production is only 6200. So the demand could not be met and the solution is infeasible. To
trace the problem further, the user needs to look at the equation for the fertilizer production.
Chapter 4-40

## FIG. 4.36. Description of Infeasibilities.

Chapter 4-41

FIG. 4.37. Window of Solution file to Search the Technology which Caused Infeasibility.

4.4.10. Sensitivity
Figures 4.38 to 4.40 show the windows of the sensitivity analysis. On the dropdown menu of
the Intermediate command (Fig. 4.14), a click on sensitivity, opens a window to see the results
of the sensitivity analysis.
Chapter 4-42

## FIG. 4.39. Window to See Sensitivity of the Solution.

Chapter 4-43

FIG. 4.40. Window to See Sensitivity of the Solution after Sorting by Magnitude.

## 4.4.11. Export sample

Chapter 3 has discussed windows and forms that allow the user to define various components
of her/his model and to enter data. The user may like to extract the data entered in the
interactive mode for some selected entries. In all the data fields, a right click on the mouse
drops down a menu that allows export of the data from the databases (adb or scenario db).
Section 3.13.4 discusses the export command in Chapter 3.

On the dropdown menu of the intermediate command (Fig. 4.14), a click on “Export sample”
opens a window to show the name and value of the data exported while editing the database
(Fig. 4.41). If the user has not exported any data and this file does not exit, the program shows
the window giving a message on how to prepare this export data file (see Fig. 4.42).
Chapter 4-44

FIG. 4.41. Window to See Data Exported from the MESSAGE Windows/form.

## FIG. 4.42. Error Message in Export Command

Chapter 4-45

4.4.12. Report
While setting the options for the matrix generator, the user may choose preparation of a
summary of major features of all technologies (see Section 4.2.1). After running the matrix
generator, the user can get this report. On the dropdown menu of the Intermediate command
(Fig. 4.14), a click on Report opens a window showing the summary of the major input data
of technologies (Fig. 4.43) with the levlized cost of supply for the technology. This cost is
correct only if the user has given the investment cost of the technology. The user can get the
levelized generation cost in the Chain window (Section 3. 10 in Chapter 3) for each
technology, where as in this report this cost is given for all technologies along with its
components. This summary report helps in understanding the model’s results. If at any stage
the program does not give the report then running the matrix generation prepares this report.

FIG. 4.43. Window to See the Report on Some Selected Input Data.
Chapter 5– i

CHAPTER FIVE....................................................................................................................... 1
Extracting the Results in the MESSAGE........................................................................... 1
5.1. Extracting the Final Results in the Interactive Mode.................................................. 1
5.1.1 Graph definition .................................................................................................... 1
5.1.2. Case and Scenario Information ............................................................................ 2
5.1.3 Curve Selection ..................................................................................................... 3
(a) Select a Data entity ............................................................................................... 3
(b) Take Curve ........................................................................................................... 8
5.1.4. Balance Selection ................................................................................................. 8
(a) Select an energy form ........................................................................................... 8
(b) Take Balance ...................................................................................................... 13
5.1.5. Getting Graphs and Tables................................................................................. 13
(a) Saving a Graph/Table ......................................................................................... 14
(b) Exporting a Graph/Table .................................................................................... 14
(c) Save as button ..................................................................................................... 15
5.2. Extracting the Final Results through cin File............................................................ 16
5.2.1. Opening a cin file ............................................................................................... 16
5.2.2. Edit a cin file ...................................................................................................... 18
(a) Add a table .......................................................................................................... 19
(b) Delete a table ...................................................................................................... 19
( c) Reorder tables if there are more than one tables................................................ 19
(d) Edit the title of the table and some other parameters ......................................... 20
(e) Format a table ..................................................................................................... 21
(f) Format a graph .................................................................................................... 22
(g) Search ................................................................................................................. 23
5.2.3. Preparation of a Table in a cin File .................................................................... 23
5.2.4. Cin file and selection of database....................................................................... 28
5.2.5. Conversion of units ............................................................................................ 28
5.2.6. Saving a cin File................................................................................................. 28
5.2.7. Calculation of the Tables Defined in the cin File............................................... 29
5.2.8. Getting Tables Defined in a cin File .................................................................. 30
5.2.9. Extracting Shadow Price .................................................................................... 32
5.2.10. Use of Pre-defined Tables ................................................................................ 32
Chapter 5– ii

List of Figures
FIG. 5.1. Window to Get the Final Results. ............................................................................... 2
FIG. 5.2. Window to Get the Final Results in Interactive Mode................................................ 2
FIG. 5.3. Window to Select Results Type in the Interactive Mode............................................. 3
FIG. 5.4. Window to Select an Aspect for a Selected Relation. ................................................. 5
FIG. 5.5. Window to Select an Aspect for the Selected Technology. ......................................... 5
FIG. 5.6. Window to Select an Aspect for the Selected Resource. ............................................. 6
FIG. 5.7 List of Option for Curve Selection in Interactive Mode. ............................................. 7
FIG. 5.8. Window Showing Selection of Output of Two Electricity Generation Technologies. 8
FIG. 5.9. Window Showing List of Levels in the Interactive Result Mode................................. 9
FIG. 5.10. Window Showing List of Fuels in the Interactive Result Mode.............................. 10
FIG. 5.11. Window Showing List of Options for Extracting Results on a Fuel in the Interactive
Mode......................................................................................................................................... 10
FIG. 5.12. Window Showing List of Technologies for the Selected level and fuel in the
Interactive Mode. ..................................................................................................................... 11
FIG. 5.13. List of Options for Balance Selection in Getting Results in Interactive Mode....... 12
FIG. 5.14. Curve Selection Table in the window for Interactive Results................................. 13
FIG. 5.15. Table of the Balance Selection in Interactive Mode............................................... 14
FIG. 5.16. Graph Window in Interactive Mode. ...................................................................... 15
FIG. 5.17. Window for Saving the Graph in a Different Form................................................ 15
FIG. 5.18. Window for Opening a cin File. ............................................................................. 17
FIG. 5.19. Window for Selecting a cin File. ............................................................................ 17
FIG. 5.20. Window for Selecting a Scenario to Edit an Existing or Create a New cin File.... 17
FIG. 5.21. Window for Editing a cin File. ............................................................................... 18
FIG. 5.22. Window for Reordering Tables in a cin File. ......................................................... 19
FIG. 5.23. Window to Select a Title File.................................................................................. 20
FIG. 5.24. Window for Editing Title of a Table defined in cin. ............................................... 21
FIG. 5.25. File Window for Editing Format for One or All Tables. ........................................ 22
FIG. 5.26. Window for Editing Format of a Graph made in cin file. ...................................... 23
FIG. 5.27. Window for Selecting colours for a Graph Made in a cin file. .............................. 23
FIG. 5.28. Window for Getting Editing Commands in a cin.................................................... 24
FIG. 5.29. File Window to Select a Data Group to Insert a Variable in the cin File Equation.
.................................................................................................................................................. 25
FIG. 5.30. Window to Select the Technology and an Aspect of it............................................ 25
FIG. 5.31. Window to Select a Resource and its Aspect for the Equation............................... 26
FIG. 5.32a. Window to Select a Relation in Constraints/Relations Group 1. ......................... 26
FIG 5.32b. Window to Select a Relation and its Aspects......................................................... 27
FIG. 5.33. Window to Select a Demand and its Aspect. .......................................................... 27
FIG. 5.34. Window to Select an Energy Form and its Aspect.................................................. 28
FIG. 5.35. Window to Select a New Unit of Measurement. ..................................................... 29
FIG. 5.36. Window to Select a cin File for a Scenario for Calculation................................... 30
FIG. 5.37. Window for Computing the Tables defined in a cin File........................................ 30
FIG. 5.38. Window for Selecting a Table defined in a cin File for a Scenario........................ 31
FIG. 5.39. Window Showing a Table defined in a cin File. ..................................................... 31
Fig. 5.40 Window to Extract Summary of Shadow Prices ....................................................... 32
Fig. 5.41. Summary of the Shadow Prices. .............................................................................. 33
Fig. 5.42 Window Showing a Selection and the Corresponding Command. ........................... 33
Chapter 5-1

CHAPTER FIVE

## Extracting the Results in the MESSAGE

The program allows extraction of solution of the model in two modes: interactive mode and
through an input file called cin. The interactive mode provides a flexible framework to choose
certain parts of the results for preparation of tables and graphs. In the second mode, the user
prepares an input file giving names of the model’s variables generated by the program to
extract the results. In this file, the user can also formulate some algebraic relations between
these variables to calculate some new variables from the results. The following sections
discuss windows to extract the results in these two modes.

On the drop down menu of the result command (Fig. 5.1), tables and graphs commands are
given to get results in interactive mode in these two forms (Section 5.1.5) discusses these
commands.

One critical high light of an optimum solution is the shadow price. On the dropdown menu of
the results command, there are two commands to get shadow price from the solution file.
Section 5.2.9 discusses these commands.
5.1. Extracting the Final Results in the Interactive Mode
This method facilitates the user to prepare tables/graphs of values of the endogenous variables
from solution of the model. It allows the user to get the micro-level results on four major
component of the model i.e. technologies, resources, constraints/relations and energy forms.
Subsections 5.1.1 to 5.1.4 discuss a window to select data entities from these components,
while Subsection 5.1.5 discusses windows to prepare graphs/tables of these selected data
entities. The program facilitates saving of the selections made in the interactive mode into a
file. Subsection 5.1.6 discusses windows for saving and loading of these selections.
After the selection of a scenario, the Results command becomes active in the main menu bar
of the MESSAGE window. If the model has already been solved successfully, the program
keeps the solution file for each scenario, and the user can extract the result directly.

On the dropdown menu of the Results command (Fig. 5.1), a click on Interact opens the
window for extracting results in the Interactive mode (Fig. 5.2). In this window, the program
needs four types of information for extracting the results in an interactive mode i.e. graph
definition, case study and scenario information, curve selection and balance selection, which
are discussed in the following subsections in details.
5.1.1 Graph definition
This includes:
• title of the graph/table,
• file name for saving the selections,
• time horizon (i.e. annual, or all years, or one selected year),
• if making graph then whether cumulative or single,
• fill up the graph (yes or no),
• type of graph (line, histogram or smooth).
Chapter 5– 2

Apart from the title and file name, the program lists options in all data fields for the user to
select one (Fig. 5.2).

## 5.1.2. Case and Scenario Information

This includes name of a case study and name of a scenario. In the case field, a click on the
arrow lists names of all the existing case studies in the system. A click on a name selects it to
Chapter 5– 3

get the list of scenarios in it. In the “scen” field, a click on the arrow lists names of all
scenarios created in the selected case study. A click on a name selects it to get the solution
file.

For a multi-region case study, the case field shows the main region as well as all sub-regions.
When the user selects a sub-region, the program shows results of that region only.

## (a) Select a Data entity

Under curve selection, the user can extract results on various aspects of technologies,
resources and constraints/relations defined in the model ⎯ such as output of a technology or
remaining volume of a resource. The user can select a single variable such as ⎯ hydropower
generation ⎯ or a set of variables ⎯ such as hydro and nuclear power generation ⎯ to make
a table/graph. These data entities are defined through selection from 4 categories of data.

Under the Curve selection title in Fig. 5.2, a row of data fields shows these data categories;
entitled type, item, aspect and fuel. In each field, a click on the arrow gives a list to choose
from. The selection process goes on as follows.

1. Selection of type i.e. if the results are required on Technologies or Resources or the
constraints/relations defined in the model (Fig. 5.3).

Chapter 5– 4

selected,

## • names of all relations defined in constraints group 1 are listed if Constraints

Group1 is selected (see Subsection 3.4.5 in Chapter 3),

## • names of all relations defined in constraints group 2 are listed if Constraints

Group2 is selected (see Subsection 3.4.5 in Chapter 3),

## • names of all relations defined in constraints group 3 are listed if Constraints

Group3 is selected (see Subsection 3.4.5 in Chapter 3),

## • names of all relations defined in Storage constraints group are listed if

Storage linked Constraints is selected (see Subsection 3.4.8 in Chapter 3),

## • names of all relations defined in Cumulative constraints group are listed if

Cumulative constraints is selected (see Subsection 3.4.5 in Chapter 3),

## • names of all relations defined in Cumulative-per-period-constraints group are

listed if Cumulative constraints group is selected (see Subsection 3.4.5 in
Chapter 3),

## 3. Selection of an aspect. The program lists the following 3 groups of aspects:

• Four aspects (i.e. value, upper limit, lower limit and shadow price) if a
relation is selected in the item field and a constraints group is selected in the
type field (see Fig. 5.4).

## • Eleven aspects if a technology is selected in the item filed and technologies

are selected in the type filed (see Fig. 5.5).

• Six aspects if a resource is selected in the item field and resources in the type
field (see Fig. 5.6).

## 4. Selection of a fuel name if an input or output aspect of a technology is selected in the

aspect field, a technology name in the item field and Technologies in the type field.

The combinations of options for these four selection levels are summarised in Fig. 5.7 for a
Chapter 5– 5

Chapter 5– 6

Chapter 5-7

## Item field Aspect fields

List of relations Value Volume
Upper limit Upper limit
Lower limit
Type field Lower limit Inflows
List of relations Shadow price Outflows
Over flowst
Constraints Group 1 New installation
List of relations
Constraints Groups 2 Shadow price of installation
List of relations
Cumulative Constraint Group
Input
Cumulative Constraints Group per Output
List of storages New installation
period
Total installed capacity
Core in
Storages Core out Fuel field
Technologies Name
List of technologies Maximum output
Minimum output
Maximum input
Resources
Production
Min. production
List Resources Max. production
Remaining volume
Cumulative production
FIG. 5.7 List of Option for Curve Selection in Interactive Mode.
Chapter 5-8

## (b) Take Curve

In the Interactive results window (see Fig. 5.8), there is a table entitled “Selected Curves”.
After the user selects a variable to get the result, a click on the Take curve button displays the
selections in this table (see Fig. 5.2).

Every time, the user selects a curve and clicks on the take curve button, the program fills up a
row of the table showing the selection. Fig. 5.8 shows the window after selection of output of
hydro and nuclear technologies. The program assigns a colour to each selection for making
the graph of the results on these variables. The user can then make a table/graph of the
selected variable by clicking on the Graph and Table buttons (see Subsection 5.1.6 for
details). A click on the Clear button clears all the selections that have been made.

FIG. 5.8. Window Showing Selection of Output of Two Electricity Generation Technologies.

## (a) Select an energy form

From the optimal solution of the model, the user can extract results on production,
consumption, and prices of energy forms at different levels.

In the window for extracting results in an interactive mode (Fig. 5.8), under the title of
Balance selection, a row of fields is given for selecting level, energy form, and the variable of
interest (i.e. input, output or price). Since energy forms are used through technologies, the last
field shows the list of all technologies for the selected energy form if the results are required
Chapter 5– 9

on input or output of the selected energy form. The combination of these four types of data
categories is given in Fig. 5.13.

In the first three fields, the user selects from the lists of options. The program gives results on
all technologies using or producing the selected energy form. For example, if a user selects
output of electricity at the secondary level, the program gives electricity generation from all
technologies (i.e. power plants).

In the data field for level, a click on the arrow lists all the levels of energy forms defined in
the selected scenario (see Chapter 3 for defining levels). A click on a level on this list (Fig.
5.9) selects it.

FIG. 5.9. Window Showing List of Levels in the Interactive Result Mode.

In the data field for fuel, a click on the arrow lists all the energy forms defined at the selected
level (Fig. 5.10). A click on an energy form selects it for extracting results. In the next field
labeled “pr/con”, the user chooses whether the results are required on production,
consumption or shadow price of the selected fuel (see Fig. 5.11). A click on the arrow in this
field gives this list, and click on one of the options selects it for extraction. Selection of
producer gives the results on input value of this fuel and selection of consumer gives output
value of this fuel.
In the data field labeled “tec”, the program lists names of all technologies if the user selects
producers or consumer category at the third data field (Fig. 5.12).
Chapter 5– 10

FIG. 5.10. Window Showing List of Fuels in the Interactive Result Mode.

FIG. 5.11. Window Showing List of Options for Extracting Results on a Fuel in the
Interactive Mode.
Chapter 5– 11

FIG. 5.12. Window Showing List of Technologies for the Selected level and fuel in the
Interactive Mode.

In the each of the data field for Balance selection, discussed above, the program gives a
different set of options depending on the selection made in the previous field. Fig. 5.13
summaries these set of options for each field for a ready reference.
Chapter 5-12

Fuel field

List of Energy
Level field* forms*

## Primary List of Energy

forms*
Secondary Pr/con field Technology field

## Final List of Energy

Producers List of
forms*
Consumers technologies*
Demand Activity
Resources List of Energy
Slack
forms*

List of Energy
forms*

## * as defined by the user

FIG. 5.13. List of Options for Balance Selection in Getting Results in Interactive Mode.
Chapter 5-13

## (b) Take Balance

On selection of an energy form, discussed in the above section, a click on the Take balance
button selects all the technologies that fall in the selected level and fuel category. For
example, selection of secondary level, electricity and output in the three fields shows that
there are a number of technologies that are producing electricity. A click on the Take balance
button, selects all these technologies for extracting results (see Fig. 5.14).

In the lower part of the Interactive results window; there is a table entitled “Selected curves”
(Fig. 5.14). After selection of data entities for extraction of results, a click on Take balance
button fills up this table with the selections. A click on the Clear button clears the table for
new selection.

FIG. 5.14. Curve Selection Table in the window for Interactive Results.
5.1.5. Getting Graphs and Tables

After selection of data entities for extraction of results, a click on Take balance (or on Take
curve) button fills up the table (entitled Selected curve) with the selections. A click on the
graph (table) button opens a window showing the graph (table) of the results on these selected
variables (Figs. 5.15 and 5.16).

In the Selected Curves table (Fig. 5.14), there are two data fields at the end of each row to
show number and colour assigned to each data entity. The user can edit these data fields to
change the number and the colour of a curve.

At the end of the row, a check box is also given to select the data entity for making the
graph/table. A click on this check box removes the tick, and the selected data entity is not
Chapter 5– 14

included in the table/graph. By default, the program selects all data entities for making the
graph/table.

In the main window (Fig. 5.14) a click on the Table button opens a window showing the
extracted results in a tabulated form (Fig. 5.15). This window gives a set of buttons to save,
export, or make a graph of these results.

## FIG. 5.15. Table of the Balance Selection in Interactive Mode.

The Graph button is given on the window showing the result in tabulated form (Fig. 5.15) and
also on the main window of the Interactive result (see Fig. 5.14). In any of these two
windows, a click on the Graph button opens a window showing the results in the graphic form
(Fig. 5.16). In this window, in addition to the Figure title, the program also displays names of
the case study and the scenario. The Graph window also shows the set of buttons to save,
export, or tabulate the results, and one additional button of Save as.

## (a) Saving a Graph/Table

In both the windows for a graph and a table (Figs. 5.15 and 5.16), a click on the Save button
opens the standard MS window to save the graph or the tabulated result in a file. In this
window, the user can select the result file name, its directory, and type of file.

## (b) Exporting a Graph/Table

The user can export the results from both the Table and Graph windows (Figs. 5.15 and 5.16).
A click on export button opens the MS Excel program and a file in it to export the results to
the excel sheet. The user can use these results for further calculation. If the user exports the
result from the Graph window the program exports both the table and graph, while in case of
Table window it only exports the table. The user can save the excel file with an appropriate
name at a desired location.
Chapter 5– 15

## (c) Save as button

In the Graph window, a click on this button opens the standard MS window to save the graph
in different form in a separate file (see Fig. 5.17); the user can choose the form in the type of
file.

## FIG. 5.17. Window for Saving the Graph in a Different Form.

Chapter 5– 16

In the Interactive results window (Fig. 5.14), the Save button is to save all the selections made
at one time into a file which can be reloaded next time using the Load buttons. There are two
substitution (Load/nS). The user may like to define a set of tables/graphs once and get this set
for different regions in a multi-region study or for different scenarios of a case study. The first
given by the user in the file field. In the fields for case and scenario selection, the user can
change the selection and press Load/WS button to get same set of tables for the selected
region/scenario.

The clear button is to clear the selections from the Curves table. A click on this button clears
all the rows of selection given in the Curves table in the lower part of the window (Fig. 5.14).

## 5.2. Extracting the Final Results through cin File

In this mode, the program gives more freedom to select its generated variable names for
extracting the solution of the model. For this purpose, the user needs to open and edit a file,
called cin file. For each data entity defined in the model, the program generates a variable
name using the user-defined names. In the cin file, the user can get values of these variables in
the solution file. Using these variables, the user can also define an algebraic relation to
compute some new variables for extracting result.

The program facilitates the user to get the program-generated variables which are categorized
into seven groups. The program shows categories of these variables, and a list of variables
included in each category. For example, the user can get the variables used for installed
capacity of a technology and the unit investment cost of it to compute total investment
required to build that technology in the solution.

The following subsections discuss how to open and edit a cin file, and how to get the results
in tabulated/graphic form.

## 5.2.1. Opening a cin file

The Edit command in the main window of the MESSAGE program becomes active after a
case study is opened. On the dropdown menu of the Edit command (Fig. 5.18), a click on
“cap input file” opens a window to select a cin file from the list. This window shows a list of
cin files created in the selected case study (Fig. 5.19). On selection of cin file, the progamme
opens a window for selection of a scenario (Fig. 5.20). On selection of a scenario, the
programme opens a window for editing of the selected cin file for the selected scenario (Fig.
5.21). Section 5.2.3 discusses how to prepare a table in the cin file.

If there is no cin file created earlier, selection of “cap input file” command (Fig. 5.18), opens
the window for selection of scenario (Fig. 5.20). On selection of a scenario, the programme
shows the edit window (Fig. 5.21) for creation and editing of a new cin file. The user enters
name of the cin file in the file field.
Chapter 5– 17

## FIG. 5.19. Window for Selecting a cin File.

FIG. 5.20. Window for Selecting a Scenario to Edit an Existing or Create a New cin File.
Chapter 5– 18

## 5.2.2. Edit a cin file

In the cin file window (Fig. 5.21), there is one data field that shows name of the cin file. For a
new cin file, by default, the program shows name of the selected case as file name. The user
can edit this file name. There are two data fields to enter name of a table that the user wants to
prepare. If the user does not edit the title field, the program shows table name as title in the
table/graph. Because the user can enter more than one table in a cin file, this field also lists all
the tables defined in the cin file. A click on the arrow in this field lists names of all the tables.
A click on a table name selects it for editing. The unit field is to enter units of the computed
variables defined by the user for a table.

## Below the data fields, a row of buttons is given to:

• Define format of a table (Table format).
• Define format of a graph (Graphic format).
• Find any word in the cin file (Search).
• Next.
• Prev (i.e. previous).
• Get a list of predefined equations defining a set of tables (Predef. tables).
• Delete a table (Delete table).
• Reorder tables if there is more than one table (Reorder tables).
• Edit title of the table and some other parameters (Edit title file).

## FIG. 5.21. Window for Editing a cin File.

Chapter 5– 19

In Fig. 5.21, below the button bar, the program shows a framework to compute some new
variables using the solution file. The user can get the results of the new variables in a form of
table/graph. The following subsections discuss windows attached with these buttons.

In a cin file the user can define as many tables as he likes. A click on the Add button refreshes
the framework and shows a default name for the new table in title field (Fig. 5.21). The user
can edit this name followed by a hit on the Enter key. If the user does not edit the title file, the
program shows the name of the table/graph as its title.

In the framework, the user first gives a name of the new variable and defines an algebraic
expression to compute it. After completing an equation, the user can press enter key to edit a
new variable and its equation. Section 5.2.3 discusses how to edit an equation in this
framework.

## (b) Delete a table

A click on the Delete button deletes the table opened in the framework. Every time the user
clicks on the Delete button, the program automatically opens the next table and deletes it (Fig.
5.21).

## ( c) Reorder tables if there are more than one tables

On the cin file window (Fig. 5.21), a click on the “Reorder the table” button opens a two-part
window (Fig. 5.22). In the left part, the program gives names of all tables defined in the cin
file. At the bottom of the left part, the program gives instructions to change the order.

## FIG. 5.22. Window for Reordering Tables in a cin File.

Chapter 5– 20

In Fig. 5.22 a click on name of the table, in the left part, selects it for moving to the right part.
The user selects the place in the right part by a click on it. If there is no name in the right part,
the user can click anywhere, and the program moves the selected table from the left part to the
first place in the right part. If there is a name in the right part, a click on it moves the selected
table after it.

A click on a name in the right part moves it to the end of the list given in the left part. The
user should be careful, that in reordering all table names are placed in the right part because
the program keeps only those names that appear in the right part and the remaining tables are
lost.

(d) Edit the title of the table and some other parameters

On the button labeled “Edit title file” (Fig. 5.21), a click opens a window to edit a file that
will contain title of the table and its format (Fig. 5.23).

## FIG. 5.23. Window to Select a Title File.

On selection of a file, the program opens a window to give title of the table and other related
information (Fig. 5.24). The program sets format of a table by default which the user can re-
define. A click on the “Reset” button clears the existing format, while a click on the
“Defaults” button sets default values in all the fields given in the window.

In this window (Fig. 5.24), data fields are given to enter title and subtitle of the table, title of
the unit, and selection of years for reporting of results. Beside each field, the default value is
shown. By default, the program shows result for all model years.

Two rows of toggles are i) to choose if base year values should be shown, ii) and to select
print direction of the time series values in the table; whether years are reported vertically (i.e.
in a column) or horizontal (i.e. in a row).

The format field is to enter format of the values reported in the table i.e. total number of digits
and digits after the decimal point. By default, the program displays results up to 8 digits with
2 after decimal point. The field labeled “tabeleformat”is to select one of the predefined
Chapter 5– 21

formats for tables. A click on the arrow in this field shows the list of these predefined formats
that include Std, tbl, Tab for tab separated ASCII file, and Tex for text file.

## (e) Format a table

In the main cin file window (Fig. 5.21), a click on the Format table button opens a window to
edit format of a table (Fig. 5.25). This format may be applied to all Tables defined in a cin file
if the user clicks on the “Apply to all” button.. The program provides a facility to compute
some summary variables such as the row/column sum for tables defined in a cin file. In this
window, the user can choose the following calculations on the table:
• sum of columns (i.e. a click on yes toggle beside the totcol: label).
• sum of rows (i.e. a click on yes toggle beside the totrow: label).
• average value of each column (i.e. a click on yes toggle beside the avgcol: label).
• average value of each row (i.e. a click on yes toggle beside the avgrow: label).
• minimum value of a column.
• maximum value of a column.
• minimum value of a row.
• maximum value of a row
• print direction of time series data (vertical or horizontal).
In the table format window (Fig. 5.25), the user can also enter:
• Column width.
• Format of the values.
• Number of digits after comma.
• Points for offsetting title from the left.
• Reported program name.
Chapter 5– 22

FIG. 5.25. File Window for Editing Format for One or All Tables.

## (f) Format a graph

The user can also edit format of a graphs made from a table defined in a cin file. A click on
the Graphic format button opens a window (Fig. 5.26) to enter name of the plot file and to
choose variables to make a graph. A double clink in the field labeled “graphcols” opens a
window that shows list of all variables defined in the cin file. The user can select the variable
and its colour for it the graph. Two toggles are given to choose if the graph is filled or not,
and if it is cumulative or not. A third toggle is to select if the lower limit of y-axis is zero or
not for a graph.

The user can select colors for the graph. A double click in the field labeled “graphcols:” opens
a window showing the list of variables names defined in the table and a data field for each
variable (Fig. 5.27). A click on the arrow in a field lists names of all the colours to choose
from. A click on a color selects it for the variable and the colour name appears in the filed.
A click on the Save button saves the format for a graph of a selected Table while a click on
“Apply to all” saves format for all graphs.
Chapter 5– 23

FIG. 5.26. Window for Editing Format of a Graph made in cin file.

FIG. 5.27. Window for Selecting colours for a Graph Made in a cin file.

(g) Search
In the Edit window (Fig. 5.21), a click on the Find button opens a window to enter the word to
be searched in the cin file. The program brings the control back to the cin file and starts
searching. The two buttons labeled “Next” and “Prev” can be used to search the next
(previous) occurrence, respectively.
5.2.3. Preparation of a Table in a cin File

The program generates variable name for each data entity defined in a model. In the cin file
window, the user can compute a new variable using these variable names. The program gives
a frame to enter an algebraic relation or an equation to compute a new variable (see the lower
portion of the cin file window in Fig. 5.28). A click on the Add button refreshes this frame to
enter equations for the new variable for preparing a table (Fig. 5.28).

The user enters name of a new variable followed by the equation sign. Above the framework
(Fig 5.28), there is a row of operators. A click on an operator places it in the equation. A click
on the left part of the mouse is used to place the cursor at the required position, and a click on
the right part of the mouse is to get the set of commands used for editing i.e. copy, paste, cut,
delete, conversion, name and Insert (see Fig. 5.28).
Chapter 5– 24

## FIG. 5.28. Window for Getting Editing Commands in a cin.

The user can find detail of a variable inserted from the solution file by selecting the name
command (Fig. 5.28).

The Insert command is used to insert name of a data entity from the solution file. The
program facilitates the user in selection of a data entity. For that purpose, the program has
divided all data entities into five categories: Technology, Storage, Resource, Relations,
Demand, and Energy forms.

As discussed in Chapter 4 (Section 4.4.5), the program maintains a dictionary of all variable
names of the model. For preparing a table, the user has access to this dictionary in the cinfile
window (Fig. 5.28). A click on the dictionary button will open a separate window to search a
variable name. However, the user will need to enter an aspect of the technology him/herself.

A right click on the mouse followed by selection of the Insert command shows the list of six
data categories and one category of aspects (Fig. 5.29). A click on any of these categories
opens a new window to show data entities defined in that category and a set of related aspects
of these data entities. In this two parts window, the left hand part shows the list of all data
entities defined in the model under this category, and the right part shows list of aspects.

For example, a click on the Technology group (Fig. 5.29) opens the window that gives the list
of all technologies defined in the model (Fig. 5.30). In the right hand part, there is a list of
aspects that can be extracted on technologies. Selection of a technology (click on the name)
followed by selection of an aspect (click on an aspect) makes one data entity to be extracted
from the solution file. After the selection a click on the Ok button inserts the model-generated
name for the selected data entity in the equation where the cursor is placed. For example, a
Chapter 5– 25

technology name followed by a colon and inv code defines a variable to extract investment on
the technology in the optimal solution.

FIG. 5.29. File Window to Select a Data Group to Insert a Variable in the cin File Equation.

In the right hand side of an equation, the user can insert an operator between the model-
generated variables to compute the new variables for the table. The user can enter back slash
(/) to continue the right side of the equation to the next line.

## FIG. 5.30. Window to Select the Technology and an Aspect of it.

Chapter 5– 26

A click on the Resources option (Fig. 5.29) opens a window to list all the resources defined in
the model (Fig. 5.31) and the resources related aspects. A click on a resource name and an
aspect followed by a click on the Ok button, inserts the program-generated name for the
selected aspect of the selected resource.
The MESSAGE program allows defining of 4 types of constraints/relations for the energy
system (Subsection 3.4.5). The right click on the mouse followed by a selection of Relations
dropdowns a list of these four categories of constraints/relations (Fig. 5.32a).

FIG. 5.31. Window to Select a Resource and its Aspect for the Equation.

## FIG. 5.32a. Window to Select a Relation in Constraints/Relations Group 1.

Chapter 5– 27

In Fig. 5.32a, a click on a category opens a window to show the list of all relations defined in
the selected category. Fig. 5.32b shows a relation defined in group 1. Selection of other
categories opens a similar window showing relations in those categories.

## FIG 5.32b. Window to Select a Relation and its Aspects.

In the relation window (Fig. 5.32b), the left part gives names of relations and the right part
gives various aspects of a relation. Selection of a relation name and an aspect, followed by a
click on the Ok button, inserts the program-generated variable name in the equation where the
cursor is placed in the Edit window (5.32b)
A click on Demand (Fig. 5.32a) opens a window to list all energy forms defined at the
demand level of the energy chain (i.e. the first level) in the model (Fig. 5.33) and the related
aspects. A click on an energy name and on an aspect followed by a click on the Ok button,
inserts the program-generated name for demand of this energy form in the equation in the cin
file.

## FIG. 5.33. Window to Select a Demand and its Aspect.

Chapter 5– 28

A click on Energy forms (Fig. 5.32a) opens a window to list all energy forms defined at levels
of the energy chain (i.e. the first level) defined in the model (Fig. 5.34) and the related
aspects. A click on an energy name and on an aspect followed by a click on the Ok button,
inserts the program-generated name for the selected aspect of the selected energy form in the
equation in the cin file.

## 5.2.4. Cin file and selection of database

While creating a cin file, the user selects a scenario. By default, the program prepares tables
defined in a cin file using the results of the selected scenario. Nevertheless, the program also
allows extraction of results from other scenarios. While inserting a variable in a table
(discussed in the previous subsection), the program allows selection of an other scenario. In
Figs. 5.32 to 5.34, a click of the arrow in a field labeled “Select Scenario”) gives a list of all
the scenarios from which the user can select. If a Scenario other than the default scenario is
selected, the program adds name of that Scenario in the name of the variable separated by a
semicolon and back slash.

## 5.2.5. Conversion of units

For all entities in the databases, the user defines unit of measurement. In the cin file, the user
can change these units. A right-click on the mouse in the Edit window (Fig. 5.35) gives a set
of editing commands including the Conversion command. Selection of this command gives a
complete list of units of measurement defined in MESSAGE to choose one.

## 5.2.6. Saving a cin File

In the cin file window (Fig. 5.35) a click on the Save button saves all the tables defined in the
cin file.
Chapter 5– 29

## 5.2.7. Calculation of the Tables Defined in the cin File

In the main window of MESSAGE (Fig. 4.1), a click on the Select command gives the option
to select a cin file. A click on cin files command opens a window showing a list of all cin files
defined by the user (Fig. 5.36). In this window, the left part gives list of all available cin files.
Selection of a file moves it to the right side while a double click on a file in the right part
moves it back to the left part. Up and Down buttons are to change the order of selected files.
Now a click on the Run command gives the option to run the cap program (Fig. 5.37). This
program calculates all variables defined in all the tables in the cin file for the selected
scenario. On the dropdown menu of the Run command, a click on all runs the cap program
after successful completion of the optimization program. The user can run the cap program
afterwards separately every time he prepares a new table in the cin file.
Chapter 5– 30

FIG. 5.36. Window to Select a cin File for a Scenario for Calculation

FIG. 5.37. Window for Computing the Tables defined in a cin File.
5.2.8. Getting Tables Defined in a cin File

In the MESSAGE’s main window, a click on the Result command gives the option to get
tables and graphs (Fig. 5.1), which are prepared using the cin file. On the dropdown menu of
the Results command, a click on tables option opens a window to select a table (Fig. 5.38).
The tables window shows all cin files created for a scenario. Besides each file name two data
fields are given, one to select a table defined in that cin file and the other to delete the selected
table. A click on the arrow in the first field gives the complete list. A click on a table name
shows the table in a separate window (Fig. 5.39). This window has the format similar to the
window that displays a table in the interactive mode of extracting results (see Fig. 5.15). The
Chapter 5– 31

window has the buttons to make a graph of the tabulated results, save the table in a file or
export it to an excel file.

FIG. 5.38. Window for Selecting a Table defined in a cin File for a Scenario.

The format for these tables is defined in the cin file that can be modified (see Subsection
5.2.2). In these tables, column headings are names of the new variables defined and computed
in the cin file.

## FIG. 5.39. Window Showing a Table defined in a cin File.

Chapter 5– 32

On the dropdown menu of the Results command, a click on Graphs option opens a window to
select a table (Fig. 5.40) for making a graph. This window is discussed above. A selection of a
table name this time opens a window showing a graph of the table defined in the cin file.
Format of the graph is defined in the cin file.

This window is similar to that given for getting graphs in the interactive mode (Fig. 5.16). It
has a set of buttons to get the result in the tabulated form, to save the graph in a file or to
export it to the MS Excel file. An additional Save as button is also given to save the file in a
format of the user choice. A click on the Graph button shows the graph of the table.

In the context of a minimization problem with a constraint, the shadow price on the constrain
is the amount that the objective function of the minimization would decrease by if the
constraint were relaxed by one unit.
On the dropdown menu of the Result Command, options are given to extract result on shadow
price (Fig. 5.40). The programme gives these shadow prices in the back ground window of the
MESSAGE (Fig. 5.41).

Replacement

## 5.2.10. Use of Pre-defined Tables

The programme helps the users in extracting detailed results by providing a template showing
various part of the solution file.
In the window for editing a cin file i.e. a input file for the cap programme (Fig. 5.35), a click
on the pre-defined Tables button shows this template (Fig. 5.42) The user makes selection in
these fields from right to left. On a selection, the programme inserts only one command in the
Cap file in simple words.
Chapter 5– 33

## Fig. 5.42 Window Showing a Selection and the Corresponding Command.

Annexure A
Mathematical formulation of
MESSAGE

2
Chapter 1

Introduction

This part of the document contains the mathematical formulation of MESSAGE. The
computer codes of the matrix generator produce equations according to this formulation, the
input data determine the form these equations actually take. In its general formulation
MESSAGE a dynamic linear programming model with a mixed integer option.1 This implies
that all relations that define the structure of a model are given as linear constraints between
continuous variables. The variables of such a model are called ”Columns”, the equations
”Rows”. This nomenclature is derived from the usual notation used to write down linear
models: in the shape of a matrix.

## The variables (columns) of MESSAGE be grouped into three categories:

1. Energy flow variables representing an annual energy flow quantity. The unit is usually
MWyr for small regions and GWyr for bigger areas,

or GW), and

## 3. Stock-piles representing the quantity of a fuel being cumulated at a certain point in

time (usual unit: MWyr or GWyr).

The constraints (rows) generated by MESSAGE be grouped into the following categories:

1. Energy flow balances modelling the flow of energy in the energy chain from resource
extraction via conversion, transport, distribution up to final utilization,

## 2. sum or relational constraints limiting aggregate activities on an annual or overall basis,

either absolute or in relation to other activities,

3. dynamic constraints setting a relation between the activities of two consecutive periods,
and
1
Nonlinear constraints or a nonlinear objective function can only be defined for a specific problem, because
the nonlinear functions and, if possible, their first derivatives have to be supplied as FORTRAN subroutines for
MINOS.

3
4. counters that are only used for accounting purposes.

## This manual gives the mathematical formulation of MESSAGE. It contains a formalized

description of all types of variables and equations that the matrix generator generates. The
reader of this paper is assumed to be familiar with the theory of linear and mixed integer
programming; if he/she wants to apply the nonlinear options, some knowledge about MINOS

Each of the building stones of MESSAGE handled in a separate chapter, which is again
subdivided into sections on columns and rows. The notation used for the variable and
equation names is the same as in the MPS-file. Uppercase letters are used to indicate
predefined identifiers, while lowercase letters represent characters that are chosen by the user
or varied over a set of characters.

In order to keep the notation simple and the mathematical description as short as possible
the more complex features are omitted from the description of the rows and described in an
additional section (see chapter 10 beginning on page 39). Since practically all parameters of
MESSAGE be defined as time series (i.e. change over the planning horizon), the index for the
period is often omitted in the formulation (e.g., for the efficiencies or the plant factors of
conversion technologies).

4
Chapter 2

Conversion Technologies

2.1 Variables

Energy conversion technologies are modelled using two types of variables, that represent

– the amount of energy converted per year in a period (activity variables) and
– the capacity installed annually in a period (capacity variables).

## 2.1.1 Activities of Energy Conversion Technologies

zsvd.elt

where
z is the level identifier of the main output of the technology.
z = U identifies the end-use level. This level is handled differently to all other
levels: It has to be the demand level and technologies with the main output on
this level are defined without load regions.
s is the main energy input of the technology (supply). If the technology has no
input s is set to ”.” (e.g., solar technologies),
v additional identifier of the conversion technology (used to distinguish technologies
with the same input and output),
d is the main energy output of the technology (demand),
e is the level of reduction of demand due to own-price elasticities of demands (does
only occur on the demand level; otherwise or if this demand has no elasticities e
= ”.”),
l identifies the load region, l ∈ {1, 2, 3, ...} or l = ”.”, if the technology is not
t identifies the period, t ∈ {a, b, c, ...}.

## The activity variable of an energy conversion technology is an energy flow variable. It

represents the annual consumption of this technology of the main input per period. If a
technology has no input, the variable represents the annual production of the main output.

5
If the level of the main output is not U and at least one of the energy carriers consumed or
supplied is defined with load regions the technology is defined with load regions. In this case
the activity variables are generated separately for each load region, which is indicated by the
additional identifier l in position 7. However, this can be changed by fixing the production of
the technology over the load regions to a predefined pattern (see section 10.4): one variable is
generated for all load regions, the distribution to the load regions is given by the definition of
the user (e.g., production pattern of solar power-plants).

If the model is formulated with demand elasticities (see section 10.10), the activity variables
of technologies with a demand as main output that is defined with elasticity are generated for
each elasticity class (identifier e in position 6).

## 2.1.2 Capacities of Energy Conversion Technologies

Y zsvd..t,

where
Y is the identifier for capacity variables.
z identifies the level on that the main energy output of the technology is defined,
s is the identifier of the main energy input of the technology,
v additional identifier of the conversion technology,
d is the identifier of the main energy output of the technology, and
t is the period in that the capacity goes into operation.

The capacity variables are power variables. Technologies can be modelled without capacity
variables. In this case no capacity constraints and no dynamic constraints on construction
can be included in the model. Capacity variables of energy conversion technologies can be
defined as integer variables, if the solution algorithm has a mixed integer option.

## If a capacity variable is continuous it represents the annual new installations of the

technology in period t, if it is integer it represents either the annual number of installations of
a certain size or the number of installations of 1/∆t times the unit size (depending on the
definition; ∆t is the length of period t in years).

2.2 Constraints

constraint) and

## – the activity or construction of a technology in a period in relation to the same variable

in the previous period (dynamic constraints).

6
2.2.1 Capacity Constraints

Czsvd.lt,

where
C is the identifier for capacity constraints,
z identifies the level on that the main energy output of the technology is defined,
s is the identifier of the main energy input of the technology,
v additional identifier of the conversion technology,
d is the identifier of the main energy output of the technology,
l identifies the load region, l ∈ {1, 2, 3, ...} or l = ”.”, if the technology is not
t is the period in that the capacity goes into operation.

For all conversion technologies modelled with capacity variables the capacity constraints will
be generated automatically. If the activity variables exist for each load region separately
is an end-use technology the sum over the elasticity classes will be included in the capacity
constraint.

Additionally the activity variables of different technologies can be linked to the same capacity
variable, which allows to leave the choice of the activity variable used with a given capacity
to the optimization (see section 10.7).

For technologies without load regions (i.e. technologies, where no input or output is modelled
with load regions) the production is related to the total installed capacity by the plant factor.
For these technologies the plant factor has to be given as the fraction they actually operate
per year. All end-use technologies (technologies with main output level ”U ”) are modelled in
this way.

min(t,κsvd )
X
²svd × zsvd...t − ∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
τ =t−τsvd

## Technologies with Load Regions and ”Free” Production Pattern

If a technology has at least one input or output with load regions, the activity variables and
capacity constraints will per default be generated separately for each load region. This can
be changed by defining the production pattern over the load regions. If the production
pattern remains free, the production in each load region is limited in relation to the installed
capacity separately for each load region, the capacity is determined by the activity in the
load region with the highest requirements. The plant factor has to be given as the fraction
the system operates in peak operation mode (in general this is the availability factor).

7
Maintenance times or minimum operation times could be included by using additional
relations, if required (see section 8).

min(t,κsvd )
²svd X
× zsvd..lt − ∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
λl τ =t−τsvd

## Technologies with Load Regions and ”Fixed” Production Pattern

If a technology has at least one input or output with load regions and the production pattern
over the load regions is predefined only one activity variable and one capacity constraint is
generated per period. The plant factor has, like for technologies with load regions and free
production pattern, to be given for the load region with the highest capacity utilization (i.e.
the highest power requirement). The capacity constraint is generated for only this load
region.

## ²svd × π(lm , svd)

× zsvd...t −
λlm

min(t,κsvd )
X
∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
τ =t−τsvd

## Technologies with Varying Inputs and Outputs

Many types of energy conversion technologies do not have fix relations between their inputs
and outputs. MESSAGE has the option to link several activity variables of conversion
technologies into one capacity constraint. For the additional activities linked to a capacity
variable a coefficient defines the maximum power available in relation to one power unit of
the main activity.

In the following this constraint is only described for technologies without load regions; the

X
svd 0
relσv 0 δ × ²σv 0 δ × zσv δ...t −

σv 0 δ

min(t,κsvd )
X
∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd ,
τ =t−τsvd

## The following notation is used in the above equations:

8
zsvd..lt is the activity of conversion technology v in period t and, if defined so, load
region l (see section 2.1.1),
Y zsvd..t is the capacity variable of conversion technology v (see section 2.1.2).
²svd is the efficiency of technology v in converting the main energy input, s, into the
main energy output, d,
κsvd is the last period in that technology v can be constructed,
πsvd is the ”plant factor” of technology v, having different meaning depending on the
type of capacity equation applied,
∆τ is the length of period τ in years,
τsvd is the plant life of technology v in periods,
t
hcsvd represents the installations built before the time horizon under consideration,
that are still in operation in the first year of period t,
fi is 1. if the capacity variable is continuous, and represents the minimum installed
capacity per year (unit size) if the variable is integer,
lm is the load region with maximum capacity use if the production pattern over the
year is fixed,
π(lm , svd) is the share of output in the load region with maximum production,
svd
relσv is the relative capacity of main output of technology (or operation mode) svd to

## the capacity of main output of the alternative technology (or operation

mode)σv 0 δ,
λl is the length of load region l as fraction of the year, and
λlm is the length of load region lm , the load region with maximum capacity
requirements, as fraction of the year.

## 2.2.2 Upper Dynamic Constraints on Construction Variables

M Y zsvd.t

The dynamic capacity constraints relate the amount of annual new installations of a
technology in a period to the annual construction during the previous period.

o o
Y zsvd..t − γysvd,t × Y zsvd..(t − 1) ≤ gysvd,t ,

where
o
γysvd,t is the maximum growth rate per period for the construction of technology v,
o
gysvd,t is the initial size (increment) that can be given for the introduction of new
technologies,
Y zsvd..t is the annual new installation of technology v in period t.

## 2.2.3 Lower Dynamic Constraints on Construction Variables

LY zsvd.t

9
Y zsvd..t − γysvd,t × Y zsvd..(t − 1) ≥ − gysvd,t ,

where
γysvd,t is the minimum growth rate per period for the construction of technologyv,
gysvd,t is the ”last” size (decrement) allowing technologies to go out of the market, and
Y zsvd..t is the annual new installation of technology v in periodt.

## 2.2.4 Upper Dynamic Constraints on Activity Variables

M zsvd..t

The dynamic production constraints relate the production of a technology in one period to
the production in the previous period. If the technology is defined with load regions, the sum
over the load regions is included in the constraint.

X h i
²svd × zsvd..lt − γaosvd,t × zsvd..l(t − 1) ≤ gaosvd,t ,
l

where
γaosvd,t and gaosvd,t are the maximum growth rate and increment as described in section
2.2.2 (the increment is to be given in units of main output), and
zsvd..lt is the activity of technology v in load region l.

If demand elasticities are modelled, the required sums are included for end-use technologies.

## 2.2.5 Lower Dynamic Constraints on Activity Variables

Lzsvd..t

X
²svd × [ zsvd..lt − γasvd,t × zsvd..l(t − 1) ] ≥ − gasvd,t ,
l

where
γasvd,t and gasvd,t are the maximum growth rate and increment as described in section
2.2.3, and
zsvd..lt is the activity of technology v in load region l.

10
Chapter 3

Storage Technologies

3.1 Variables

Energy storage technologies are modelled with two types of flow variables, and one or two
types of capacity variables.

The energy flows in a storage go in two directions: into and out of the storage facility. These
two types of flows are represented by two types of activity variables, the input and the
output variables of storage technologies.

The capacity variables represent the capacity for energy input and output and the volume
capacity of the technology. In this case the relation between I/O capacity and volume
capacity is determined by the optimization. Alternatively the relation can be predefined, no
volume capacity variables are generated.

## 3.1.1 Input to Energy Storage Technologies

SIzsv.lt,

where
SI identifies storage input variables,
s is the identifier of the energy carrier to be stored,
z identifies the level on that the energy carrier is defined,
v is an additional identifier of the storage technology (this is necessary in the case
that several storage technologies for the same energy carrier are defined),
l identifies the load region in that the energy is put into storage, and
t is the period identifier.

The storage input variables are energy flow variables and represent the amount of fuel s that
is stored in storage with identifier v in load region l and period t (if storing energy entails
energy losses, the variable represents the amount before the losses apply, i.e. the amount used
for storing).

11
3.1.2 Output from Energy Storage Technologies

Ozsv.lmt,

where
O identifies storage output variables,
s is the identifier of energy carrier stored in the technology,
z identifies the level on that the energy carrier is defined,
v is an additional identifier of the storage technology,
l is the load region in that the energy was put into storage,
m is the load region in that the energy is retrieved, and
t is the period identifier.

The storage output variables are energy flow variables and represent the amount of fuel s
that was put into storage in load region l and is retrieved in load region m (if retrieving
energy entails energy losses, the variable represents the amount before the losses apply, i.e.
the amount by that the contents of the storage is reduced).

## 3.1.3 Input/Output Capacity

Y zGsv..t,

where
Y identifies the capacity variables,
z is the level on that this energy form is defined,
G identifies the I/O capacity variables for storage technologies (generation
capacity),
s is the identifier of energy carrier stored in the technology,
v is an additional identifier of the storage technology, and
t is the period in that the new capacity is built.

The I/O capacity variables of storage technologies are power variables and represent the
annual construction of capacity to fill and empty the storage. They can be defined
continuous or integer like the capacity variables of conversion technologies.

## 3.1.4 Volume Capacity

Y zV sv..t,

where
Y identifies the capacity variables,
z is the level on that this energy form is defined,
V identifies the volume capacity variables for storage technologies,
s is the identifier of energy carrier stored in the technology,

12
v is an additional identifier of the storage technology, and
t is the period in that the new capacity is built.

The volume capacity variables of storage technologies are stock-pile variables and have an
energy- and not power-related unit. They represent the annual new installation of the
”container”. They can be defined continuous or integer like the other capacity variables. If
the relation between I/O and volume capacity in a storage system is predefined, the volume
capacity is represented by the I/O capacity with this relation as coefficient.

3.2 Constraints

The flows into and out of a storage technology are balanced by the storage balance constraint.

The input/output capacity of the storage is directly determined from the energy flows in the
I/O capacity constraint. The volume capacity is calculated from these variables and either
used to determine the volume capacity variables or once more the I/O capacity variables via
the relation between volume and I/O capacity.

## 3.2.1 Storage Balance Constraint

Szsv..lt

Section 10.5 describes the background of the implementation of energy storage in MESSAGE.
In the storage balance constraints the energy flows into and out of the storage technologies
are balanced. MESSAGE keeps track of the time that a certain amount is kept in storage by
using a separate storage output variable for each pair of input and output load regions. In
the following two examples are given; the equations differ for different kinds of storage (e.g.,
daily, weekly, seasonal).

Daily Storage

The energy can only be balanced over the load regions of one day, not between the seasons.

l+m
Xsv 1
²sv × SIzsv.lt − × Ozsv.lmt ≥ 0 ,
m=l+1
ζl,m

13
Seasonal Storage

The storage can be used for all types of load defined in the model, since the season is the
highest category. An adequate amount of the energy stored at the end of the year is put
forward to the next period.

l+m
Xsv
1 1
²sv × SIzsv.lt − fl,m × × Ozsv.lmt −
m=l+1
ζl,m

l+m
Xsv
2 1
fl,m × × Ozsv.lm(t + 1) ≥ 0 ,
m=l+1
ζl,m

## In the above equations the following notation is used

fl,m forwards the appropriate amount of fuel to the next period (this is important for
small time steps, for instance ∆t = 1),

(
1 1 f or l < m
fl,m = ∆t − 1
∆t f or l > m ,
(
2 0 f or l < m
fl,m = 1
∆(t+1) f or l > m ,

## SIzsv.lt is the amount of fuel s put into storage v in load region l,

Ozsv.lmt is the amount of fuel s taken out of storage v in load region m, which was put
into storage in load region l,
²sv is the efficiency of putting fuel s into storage v (e.g. the pumping losses in
pumped hydro storage plants can be accounted for this way),
msv is the number of load regions that the fuel can be stored. It depends on the kind
of storage (for daily storage it is the number of load regions that represent one
day, for seasonal storage the whole year, therefore all load regions) and if there is
an explicit limit given (e.g., the temperature inside a heat storage can fall below
the level where it still can be retrieved after a certain time),
ζl,m is the decrease of storage contents from load regionl to load regionm, used for
heat storage (exponential decay), and
∆t is the length of period t in years.

14
3.2.2 Input/Output Capacity

CzGsv.lt

This equation defines the capacity of storing or releasing energy per unit of time in a certain
storage technology.

 
l−1
X
²sv
×  SIzsv.lt + Ozsv.mlt −
λl m=l−m sv

min(t,κsv )
X
πsv × ∆(τ − 1) × fi × Y zGsv..τ ≤ hctsv,G × πsv ,
τ =t−τsv

where
SIzsv.lt and Ozsv.mlt are the flows into and out of the storage technology v, as described
in sections 3.1.1 and 3.1.2
Y zGsv..τ is the generation capacity of storage v as described in section 3.1.3
²sv is the efficiency of storage technology v,
λl is the length of load region l as fraction of the year,
κsv is the last period in that technology v can be constructed,
πsv is the plant factor of technology v,
∆(τ − 1) is the length of period τ − 1 in periods,
τsv is the plant life of technology v in years,
hctsv,G represents the installations built before the time horizon under consideration,
that are still in operation in period t,
fi is 1. if the capacity variable is continuous, and equal to the minimum installed
capacity per year (unit size) if the variable is integer.

## 3.2.3 Volume Capacity

CzV sv.lt

The amount of energy that can be stored (the maximum content at a time) can either be
linked to the I/O capacity or evaluated during optimization. Thus either a predefined storage
technology like batteries can be modelled or the model can have the choice to optimize the
relation between I/O capacity and storage volume.

 
l
X l
X 1
ζm,l ×  ²sv × SIzsv.mt − × Ozsv.mnt  ×
n=msv +1
ζm,n
m=l−mlsv

15
 
 min(t,κsv ) 
 X 

 ∆(τ − 1) × πsv × fi × Y zV sv..τ 

 

1 τ =t−τsv
− min(t,κsv )
≤ hctsv,V × πsv ,
nl × λl 
 X 

  

 ∆(τ − 1) × πsv × fgv × fi × Y zGsv..τ 

τ =t−τsv

where
SIzsv.lt and Ozsv.mlt are the flows into and out of the storage technology v, as described
in sections 3.1.1 and 3.1.2,
Y zGsv..τ is the generation capacity of storage v as described in section 3.1.3,
fgv is the relation of I/O to volume capacity,
Y zV sv..τ is the volume capacity variable as described in section 3.1.4,
nl is the number of occurences per year (1 for seasonal, 365 for daily, etc.),
hctsv,V represents the installations built before the time horizon under consideration,
that are still in operation in period t,
fi is 1. if the capacity variable is continuous, equal to the minimum installed
capacity per year (unit size) if the variable is integer,
ζm,l is the decrease parameter as described in section 10.5,
mlsv is described in section 10.5,

16
Chapter 4

Domestic Resources

4.1 Variables

## Extraction of domestic resources is modelled by variables that represent the quantity

extracted per year in a period. A subdivision into cost categories (which are called ”grades”
in the model) and further into elasticity classes can be modelled.

## 4.1.1 Resource Extraction Variables

Rzrgp..t,

where
R identifies resource extraction variables,
z is the level on that the resource is defined (usually = R),
r is the identifier of the resource being extracted,
g is the grade (also called cost category) of resource r, g ∈ {a, b, c, ...}.
p is the class of supply elasticity, which is defined for the resource and grade, or
”.”, if no elasticity is defined for this resource and grade, and
t identifies the period.

The resource variables are energy flow variables and represent the annual rate of extraction
of resource r. If several grades are defined, one variable per grade is generated (identifier g in
position 4). Supply elasticities can be defined for resource extraction as described in section
10.11; in this case one variable per elasticity class (identifier p in position 5) is generated.

4.2 Constraints

The overall availability of a resource is limited in the availability constraint per grade, annual
resource consumption can be constrained per grade (sum of the elasticity classes) and total.
Additionally resource depletion and dynamic resource extraction constraints can be modelled.

17

RRrg.g..

Limits the domestic resource available from one cost category (grade) over the whole time
horizon. Total availability of a resource is defined as the sum over the grades.

X X
∆t × RRrgp..t ≤ Rrg − ∆t0 Rrg,0 ,
p t

where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t,
∆t is the length of period t.
∆t0 is the number of years between the base year and the first model year, and
Rrg,0 is the extraction of resource r, grade g in the base year.

## 4.2.2 Maximum Annual Resource Extraction

RRr....t

Limits the domestic resources available annually per period over all cost categories.
X X
RRrgp..t ≤ Rrt ,
g p

where
Rrgt is the maximum amount of resource r, grade g, that can be extracted per year of
period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.

## 4.2.3 Resource Depletion Constraints

RRrg.d.t

18
The extraction of a resource in a period can be constrained in relation to the total amount
still existing in that period. For reasons of computerization these constraints can also be
generated for imports and exports, although they do not have any relevance there (they
could, e.g., be used for specific scenarios in order to stabilize the solution).

" t−1
#
X X
t
∆t RRrgp..t ≤ δrg Rrg − ∆t0 Rrg,0 − ∆τ × RRrgp..τ ,
p τ =1

where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t,
t
δrg is the maximum fraction of resource r, cost category g, that can be extracted in
period t,
Rrg is the total amount available in the base year,
∆t is the length of period t in years,
∆t0 is the number of years between the base year and the first model year, and
Rrg,0 is the extraction of resource r, grade g in the base year.

## 4.2.4 Maximum Annual Resource Extraction per Grade

RRrg.a.t

Limits the domestic resources available from one cost category per year.
X
RRrgp..t ≤ Rrgt .
p

where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.

## 4.2.5 Upper Dynamic Resource Extraction Constraints

M RRr...t

19
The annual extraction level of a resource in a period can be related to the previous one by a
growth parameter and an increment of extraction capacity resulting in upper dynamic
extraction constraints. For the first period the extraction is related to the activity in the
baseyear.
X X
o o
RRrgp..t − γrt RRrgp..(t − 1) ≤ grt ,
g,p g,p

where
o
γrt is the maximum growth of extraction of resource r between period t − 1 and t,
o
grt is the initial size (increment) of extraction of resource r in period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.

## 4.2.6 Lower Dynamic Resource Extraction Constraints

LRRr...t

The annual extraction level of a resource in a period can also be related to the previous one
by a decrease parameter and a decrement resulting in lower dynamic extraction constraints.
For the first period the extraction is related to the activity in the baseyear.
X X
RRrgp..t − γrt RRrgp..(t − 1) ≥ − grt ,
g,p g,p

where
γrt is the maximum decrease of extraction of resource r between period t − 1 and t,
grt is the ”last” size (decrement) of extraction of resource r in period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.

## 4.2.7 Dynamic Extraction Constraints per Grade

M RRrg..t, and
LRRrg..t

The same kind of relations as described in sections 4.2.5 and 4.2.6 can be defined per grade of
the resource.

20
Chapter 5

## Imports and Exports

5.1 Variables

Imports and exports are modelled by variables that represent the quantity imported per year
in a period. A subdivision into countries and further into elasticity classes can be modelled.

## 5.1.1 Import Variables

Izscp.lt,

where
I identifies import variables,
z is the level on that the imported energy form is defined (usually primary energy
and secondary energy),
s identifies the imported energy carrier,
c is the identifier of the country or region the imports come from,
p is the class of supply elasticity, which is defined for the energy carrier and
country, or ”.”, if no elasticity is defined for this energy carrier and country,
l is the load region identifier if s is modelled with load regions, otherwise ”.”, and
t identifies the period.

The import variables are energy flow variables and represent the annual import of the
identified energy carrier from the country or region given. If supply elasticities are defined for
the import of this energy carrier and country one variable per elasticity class (identifier p in
position 5) is generated.

## 5.1.2 Export Variables

Ezrcp.lt,

21
where
E is the identifier for export variables, and
z is the level on that the exported energy form is defined (usually primary energy
and secondary energy),
s identifies the exported energy carrier,
c is the identifier of the country or region the exports go to,
p is the class of supply elasticity, which is defined for the energy carrier and
country, or ”.”, if no elasticity is defined for this energy carrier and country,
l is the load region identifier if s is modelled with load regions, otherwise ”.”, and
t identifies the period.

The export variables are energy flow variables and represent the annual export of the
identified energy carrier to the country or region given. If supply elasticities are defined for
the export of this energy carrier and country one variable per elasticity class (identifier p in
position 5) is generated.

5.2 Constraints

## 5.2.1 Imports per Country

Izrc.g..

Limits the imports of a fuel from a specific country c over the whole horizon.
X X
∆t × Izrcp..t ≤ Irc ,
p t

where
Irc is the total import limit for r from country c,
Izrcp..t is the annual import of r from country c, elasticity class p in period t, and
∆t is the length of period t in years.

## 5.2.2 Maximum Annual Imports

Izr....t

Limits the annual imports of a fuel from all countries per period.
X X
Izrcp..t ≤ Irt ,
c p

where
Irt is the annual import limit for r in period t, and
Izrcp..t is the annual import of r from country c, elasticity class p in period t.

22
5.2.3 Maximum Annual Imports per Country
Izrc.a.t

## Limits the imports from one country per year.

X
Izrcp..t ≤ Irct ,
p

where
Irct is the limit on the annual imports from country c, period t of fuel r, and
Izrcp..t is the annual import of r from country c, elasticity class p in period t.

## 5.2.4 Upper Dynamic Import Constraints

M Izr...t

The annual import level of a fuel in a period can, like the resource extraction, be related to
the previous one by a growth parameter and an increment resulting in upper dynamic
constraints.
X X
o o
Izrcp..t − γrt Izrcp..(t − 1) ≤ grt ,
c,p c,p

where
Izrcp..t is the annual import of r from country c, elasticity class p in period t,
o
γrt is the maximum increase of import of r between period t − 1 and t, and
o
grt is the initial size (increment) of import of r in period t.

## 5.2.5 Lower Dynamic Import Constraints

LIzr...t

The annual import level of a fuel in a period can also be related to the previous one by a
decrease parameter and a decrement resulting in lower dynamic import constraints.
X X
Izrcp..t − γrt Izrcp..(t − 1) ≥ − grt ,
c,p c,p

where
Izrcp..t is the annual import of r from country c, elasticity class p in period t,
γrt is the maximum decrease of import of r between period t − 1 and t, and
grt is the ”last” size (decrement) of import of r in period t.

23
5.2.6 Dynamic Import Constraints per Country

M Izrc..t and

LIzrc..t

The same kind of relations can be defined per country from that the fuel is imported.

## 5.2.7 Constraints on Exports

The exports of fuels can principally be limited in the same way as the imports. In the
identifiers of the variables and constraints the ”I” is substituted by an ”E”.

24
Chapter 6

Energy Flows

6.1 Constraints

Energy flows are modelled solely by linking the activity variables of the different conversion
technologies and the resource extraction, import and export variables in balance constraints.
These constraints ensure that only the amounts of energy available are consumed. There are
no further variables required to model energy flows.

Energy demands are also modelled as part of a balance constraint: it is the right hand side
and defines the amount to be supplied by the technologies in this constraint.

The following description of the energy flow constraints in MESSAGE is given for the
following set of level identifiers:

## T Final energy (after transmission),

X Secondary energy,

## A Primary energy, and

R Energy resources.

The identifier of the demand level (U ) which gives it a special meaning (see section 2.1.1) and
imports and exports are given for primary energy. Clearly any other combination of
technologies is also possible.

25
6.1.1 Demand Constraints

U d.....t

Out of the predefined levels each one can be chosen as demand level. However, level ”U ” has
a special feature. This is related to the fact that useful energy is usually produced on-site,
e.g., space heat is produced by a central heating system, and the load variations over the year
are all covered by this one system. Thus, an allocation of production technologies to the
different areas of the load curve, like the model would set it up according to the relation
between investment and operating costs would ignore the fact that these systems are not
located in the same place and are not connected to each other. MESSAGE represents the
end-use technologies by one variable per period that produces the required useful energy in
the load pattern needed and requires the inputs in the same pattern. For special technologies
like, e.g., night storage heating systems, this pattern can be changed to represent the internal
storage capability of the system.

This representation of end-use technologies has the advantage of reducing the size of the
model, because the demand constraints, the activity variables and the capacity constraints of
the end-use technologies do not have to be generated for each load region.

If another level is chosen as demand level or the demand level is not named ”U ”, all demand
constraints for energy carriers that are modelled with load regions are generated for each load
region. The general form of the demand constraints is

X ed
X X eδ
X
d
²svd × ke × U svd.e.t + βsvδ × ke × U svδue.t ≥ U d.t ,
svd e=0 svδ e=0

where
U d.t is the annual demand for d in period t,
U svd.e.t is the activity of end-use technology v in period t, elasticity class e and period t
(see section 2.1.1),
²svd is the efficiency of end-use technology v in converting s to d,
d
βsvδ is the efficiency of end-use technology v in producing by-product d from s (δ is
the main output of the technology),
ed is the number of steps of demand reduction modelled for own-price elasticities of
demand d, and
ke is the factor giving the relation of total demand for d to the demand reduced to
level e due to the demand elasticity.
(ke × U svd.e.t = U svd.0.t, k0 = 1, ke is increasing monotonously.)

## 6.1.2 Distribution Balance

F s....lt

26
This constraint, the final energy balance, matches the use of final energy needed in the
end-use technologies and the deliveries of the distribution systems. It is generated for each

X X ed
X
²svs × F svs..lt − ηd,l × U svd.e.t −
svs svd e=0

X ed
X
s
βσvd × ηd,l × U σvd.e.t ≥ 0 ,
σvd e=0

where
F svs..lt is the activity of the distribution technology in load region l and period t (see
section 2.1.1),
²svs is the efficiency of technology v in distributing s,
U svd.e.t is the activity of end-use technology v in period t and elasticity class e,
s
βσvd is the use of fuel s relative to fuel σ (the main input) by technology v, and
ηd,l is the fraction of demand for d occurring in load region l.

## 6.1.3 Transmission or Transportation Balance

T s....lt

This constraint gives the simplest form of an energy balance equation of MESSAGE. It
matches the output of transmission to the requirements of distribution systems. The
difference to other levels (F, X, A) is not built-in, but emerges from the simplicity of energy
transportation (i.e., transportation technologies do usually not have by-products and only
one input). Also big industrial consumers that are directly connected to the transmission
system would have to be included in this constraint. Like level F it does usually exist for all
load regions if they are defined for the fuel.
X X
²svs × T svs..lt − F svs..lt ≥ 0 .
svs svs

where
T svs..lt is the activity of the transportation technology v (see section 2.1.1), and

all the other entries to the equation are the same as in section 6.1.2.

27
6.1.4 Central Conversion Balance

Xs....lt

In principle the secondary energy balance is built up in the same way as the two previous
ones (sections 6.1.2 and 6.1.3). It matches the production of central conversion technologies
to the requirements of the transmission systems. Secondary energy imports and exports of
secondary energy are usually assigned to level X.

X X X
s
²rvs × Xrvs..lt + βrvσ × Xrvσ..lt − T svs..lt +
rvs rvσ svs

X X
IXscp.lt − EXscp.lt ≥ 0
c,p c,p

where
Xrvs..lt is the activity of central conversion technology v in load region l and period t (see
section 2.1.1); if the secondary energy form s is not defined with load regions (i.e.
l = ”.”) and the activity of technology v exists for each load region, this equation
will contain the sum of the activity variables of technology v over the load regions.
²rvs is the efficiency of technology v in converting energy carrier r into secondary
energy form s,
s
βrvσ is the efficiency of technology v in converting energy carrier r into the by-product
s of technology v,
T svs..lt is explained in section 6.1.3, and
IXscp.lt and EXscp.lt are the import and export variables explained in sections 5.1.1 and
5.1.2, respectively.

## 6.1.5 Resource Extraction, Export and Import Balance

Ar.....t

This equation matches production and import of primary energy to the requirements of
central conversion, transport and for export. In the general case primary energy does not
have load regions. Some technologies, like, e.g., nuclear reactors need inventories of primary
energy and also leave a last core that is available at the end of the lifetime. It may be
necessary to model by-products of extraction technologies, for instance the availability of
associated gas at oil production sites.
" #
X X X X X
r
²rvr × Arvr...t − Xrvs..lt + βρvs × Xρvs..lt + IArcp..t −
rvr l rvs ρvs c,p

28
X X · ∆(t − τf vs )
EArcp..t + × ρ(f vs, r) × Y Xf vs..(t − τf vs ) −
c,p f vs
∆t

¸
∆(t + 1)
× ι(f vs, r) × Y Xf vs..(t + 1) ≥ 0,
∆t

where
Arvr...t is the activity of technology v extracting resource r,
²rvr is the efficiency of technology v in extracting fuel r (this is usually 1.),
r
βρvs is the efficiency of technology v in producing secondary energy form s from the
by-input ρ,
IArcp..t and EArcp..t are the import and export variables described in section 5.1.1 and
5.1.2, respectively,
τf vs is the plant life of technology v in periods (depending on the lengths of the
periods covered),
Y Xf vs..t is the annual new installation of technology v in period t (see section 2.1.2),
ι(f vs, r) is the amount of fuel r that is needed when technology v goes into operation
(usually this is the first core of a reactor). It has to be available in the period
before technology v goes into operation, the normal unit is kWyr/kW,
ρ(f vs, r) is the amount of fuel r that becomes available after technology v goes out of
operation (for a reactor this is the last core that goes to reprocessing). The unit
is the same as for ι(f vs, r), and
∆t is the length of period t in years.

## 6.1.6 Resource Consumption

Rr.....t

The resources produced by the extraction technologies in a period can come from different
cost categories (also called grades), which can, e.g., represent the different effort to reach
certain resources. Short-term variations in price due to steeply increasing demand can be
represented by an elasticity approach (see section 10.11).
X X
RRrgp..t − Arvr...t ≥ 0 ,
g,p rvr

where
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t, and
Arvr...t is the activity of extraction technology v in period t (as described in section
2.1.1).

29
Chapter 7

Stock-piles

7.1 Variables

Generally MESSAGE does not generate any variables related to an energy carrier alone.
However, in the case of man-made fuels, that are accumulated over time, a variable that
shifts the quantities to be transferred from one period to the other is necessary.

## 7.1.1 Stock-pile Variables

Qf b....t,

where
Q identifies stock-pile variables,
f identifies the fuel with stock-pile,
b distinguishes the variable from the equation, and
t is the period identifier.

The stock-pile variables represent the amount of fuel f that is transferred from period t into
period t + 1. Note that these variables do not represent annual quantities, they refer to the
period as a whole. These variables are a special type of storage, that just transfers the
quantity of an energy carrier available in one period into the next period. Stock-piles are
defined as a separate level. For all other energy carriers any overproduction that occurs in a
period is lost.

7.2 Constraints

## 7.2.1 Stock-piling Constraints

Qf.....t

30
Q is a special level on that energy forms can be defined that are accumulated over time and
consumed in later periods. One example is the accumulation of plutonium and later use in
fast breeder reactors.

## The general form of this constraint is:

"
X X f
Qf b....t − Qf b....(t − 1) + ∆t × ( zf vd..lt + βφvd × zφvd..lt −
v l

f
²svf × zsvf u.lt − βsvφ × zsvφ..lt ) + ∆t × ι(svd, f ) × Y zsvd..(t + 1) −

## ∆(t − τsvd − 1) × ρ(svd, f ) × Y zsvd..(t − τsvd ) ] = 0 ,

where
f is the identifier of the man-made fuel (e.g. plutonium, U233 ),
τsvd is the plant life of technology v in periods,
ι(svd, f ) is the ”first inventory” of technology v of f (relative to capacity of main output),
ρ(svd, f ) is the ”last core” of f in technology v, see also section 6.1.5,
∆t is the length of period t in years,
zf vd..lt is the annual input of technology v of fuel f in load region l and period t (l is ”.”
if v does not have load regions), and
Y zf vd..t is the annual new installation of technology v in period t.

31
Chapter 8

User-defined Relations

8.1 Constraints

The user-defined relations allow the user to construct constraints that are not included in the
basic set of constraints. For each technology the user can specify coefficients with that either
the production variables (see section2.1.1), the annual new installation variables (see section
2.1.2) or the total capacity in a year (like it is used in the capacity constraints, see section
2.2.1) can be included in the relation. The relations can be defined with and without load
regions, have a lower, upper or fix right hand side or remain free (non-binding) and be related
to an entry in the objective function, i.e., all entries to this relation are also entered to the
objective function with the appropriate discount factor. There are two types of user-defined
constraints, for which the entries to the objective function–without discounting–are summed
up under the cost accounting rows CAR1 and CAR2 (see chapter 9).

The formulation of the user-defined relations is given for relations, that are related to the
main output of the technologies. It is also possible (e.g., for emissions) to relate the
constraint to the main input of the technology, i.e. the amount of fuel used. In this case the
efficiencies (²) would be omitted from the formulation.

## 8.1.1 Relation without Load Regions

N m.....t or P m.....t

Relations without load regions just sum up the activities (multiplied with the given
coefficients) of all variables defined to be in this constraint. If a technology has load regions,
the activity variables for all load regions of this technology are included. If the total capacity
of a technology is included, all new capacities from previous periods still operating are
included, if new capacities are included, the annual new installation of the current period is
taken.
 
X ed
X t
X
 romt × U svd.e.t × ²svd + rcmt  +
svd svd × Y U svd..τ
svd e=0 τ =t−ip

32
"
X X
romlt
rvs × zrvs..lt × ²rvs + romt
rvs × zrvs...t × ²rvs +
rvs l

 
 f ree
t
X 
 ≥ rhst
rcmt
rvs × Y zrvs..τ
 m
,

 = rhstm
τ =t−ip 
 t
≤ rhsm

where
U svd.e.t and Y U svd..t are the activity and capacity variables of the end-use technologies,
zrvs..lt, zrvs...t and Y zrvs..t are the activity variables of technologies with and without
load regions and the capacity variables of the technologies,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romt
svd is the relative factor per unit of output of technology v (coefficient) for relational
constraint m,

rcmt
svd is the same per unit of new built capacity,

romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational

rcmlt
rvs is the same per unit of new built capacity,

## ip is 1 for accounting during construction and

the plant life on periods for accounting of total capacity, and

## 8.1.2 Relation with Load Regions

N m....lt or P m....lt

The user defined relations can be defined with load regions. Then all entries of activities of
technologies with load regions are divided by the length of the according load region resulting
in a representation of the utilized power.

 
X ed
X t
X
 romlt × U svd.e.t × ²svd + rcmlt  +
svd svd × Y U svd..τ
svd e=0 τ =t−ip

"
X romlt
rvs
× zrvs..lt × ²rvs + romt
rvs × zrvs...t × ²rvs +
rvs λl

33

 
 f ree
t
X 
 ≥ rhst
rcmlt
rvs × tl × Y zrvs..τ
 ml ,

 = rhstml
τ =t−ip 
 t
< rhsml

where
U svd.e.t and Y U svd..t are the activity and capacity variables of the end-use technologies,
zrvs..lt, zrvs...t and Y zrvs..t are the activity variables of technologies with and without
load regions and the capacity variables of the technologies,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romlt
svd is the relative factor per unit of utilized capacity of technology v (coefficient) for
relational constraint m in load region l, period t (this constraint is adapted to
represent the utilized power, as stated above),

rcmlt
svd is the same per unit of new built or installed capacity,

romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational

rcmlt
rvs is the same per unit of new built capacity,

## ip is 1 for accounting during construction and

the plant life on periods for accounting of total capacity, and

## 8.1.3 Construction of Relations between Periods

N m.....t or P m.....t

The change of activities over time can either be limited or included in the objective by
constructing relations between periods: The relations expresses the difference between the
annual activity in a period and the following period. This difference can either be limited or
included in the objective function.

" ed
X X m(t−1)
romt
svd × U svd.e.t × ²svd − rosvd ×
svd e=0

ed
#
X X h
U svd.e.(t − 1) × ²svd + romt m(t−1)
rvs × zrvs...t × ²rvs − rorvs ×
e=0 rvs

34
"
X X
zrvs...(t − 1) × ²rvs ] + romlt
rvs × zrvs..lt × ²rvs − roml(t−1)
rvs ×
rvs l

 f ree
# 
X 
 ≥ rhst
m
zrvs..l(t − 1) × ²rvs t ,

= rhs m
l  t < rhsm

where
U svd.e.t is the activity variable of the end-use technologies,
zrvs..lt and zrvs...t are the activity variables of technologies with and without load
regions,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romt
svd is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, period t,
romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, load region l, and
rhstm and is the right hand side of the constraint.

For this type of constraints only the ro-coefficients have to be supplied by the user, the rest is
included by the model. It can be defined with and without load regions.

## 8.1.4 Special Handling of Demand Elasticities

P m.....t

The second type of user defined relations differs from the first one in the fact that the
activity of the end-use technologies is multiplied by ke and therefore represents the
production without reduction by demand elasticities.

Thus this constraint can be applied to force a certain reduction level due to the elasticities
reached in one period to be also reached in the following period, allowing the interpretation
of the reduction as investments in saving. The coefficient of the technologies supplying a
demand have to be the inverse of this demand in the current period, then. This constraint
has the following form:
ed
X X κe
U svd.e.t × ²svd × −
sv e=0
U d.t
ed
X X κe
U svd.e.(t − 1) × ²svd × ≤ 0,
sv e=0
U d.(t − 1)
where

the coefficients are supplied by MESSAGE. The user can additionally define multiplicative
factors for these coefficients.

35
Chapter 9

9.1 Constraints

## 9.1.1 Cost Accounting Rows

The different types of costs (i.e. entries for the objective function) can be accumulated over
all technologies in built-in accounting rows. These rows can be generated per period or for
the whole horizon and contain the sum of the undiscounted costs. They can also be limited.
The implemented types are:

CCU R – fix (related to the installed capacity) and variable (related to the production)
operation and maintenance costs,
CCAP – investment costs; if the investments of a technology are distributed over the
previous periods, also the entries to this accounting rows are distributed (if the
capital costs are levellized, the total payments in a period can be taken from
CIN V ; CCAP shows the share of investments in the according period, then),
CRES – domestic fuel costs,
CAR1 – costs related to the user defined relations of type 1 (see section 8),
CAR2 – costs related to the user defined relations of type 2 (see section 8),
CRED – costs for reducing demands due to demand elasticities, only related to
technologies supplying the demands directly,
CIM P – import costs,
CEXP – gains for export, and
CIN V – total investments (in case of levellized investment costs, see CCAP )

## 9.1.2 The Objective Function

FUNC

In its usual form the objective function contains the sum of all discounted costs, i.e. all kinds
of costs that can be accounted for. All costs related to operation (i.e. resource use, operation

36
costs, costs of demand elasticities,...) are discounted from the middle of the current period to
the first year. Costs related to construction are by default discounted from the beginning of
the current period to the first year. By using the facility of distributing the investments or
accounting during construction these costs can be distributed over some periods before or
equal to the current one (see section 10.2). This distribution can also be performed for user
defined relations.

## The objective function has the following general form:

" ( " #
X X X X X
t
βm ∆t zsvd..lt × ²svd × ccur(svd, t) + romlt
svd × cari(ml, t) +
t svd l i m

ed
"
X X X
²svd × U svd.e.t × ²svd × κe × (ccur(svd, t) + romt
svd × car2(m, t)) +
svd e=0 m

# t
X X X
cred(d, e) + romt
svd × car1(m, t) + ∆τ × Y zsvd..τ × cf ix(svd, τ ) +
m svd τ =t−τsvd

"
X X X X
Rzrgp.lt × cres(rgpl, t) +
r g l p

#)
X X X X X X
Izrcp.lt × cimp(rcpl, t) − Ezrcp.lt × cexp(rcpl, t) +
c l p c l p

(
X t+t
Xd h
td −τ
βbt × ∆(t − 1) × Y zsvd..τ × ccap(svd, τ ) × f risvd +
svd τ =t
# )#
X X td −τ
rcmt
svd × cari(m, t) × f rasvd,m ,
i m

where
∆t is the length of period t in years,

· ¸∆i
Qt−1 1
βbt = i=1 dr(i) ) ,
1+ 100
· ¸ ∆t
2
t 1
βm = βbt × dr(t) ) ,
1+ 100

## dr(i) is the discount rate in period i in percent,

zsvd..lt is the annual consumption of technology v of fuel s load region l and period t; if
v has no load regions, l = ”.”.
²svd is the efficiency of technology v in converting s to d,

37
ccur(svd, t) are the variable operation and maintenance costs of technology v (per unit of
main output) in period t,
mlt
rosvd is the relative factor per unit of output of technology v for relational constraint
m in period t, load region l,
car1(m, t) and car2(m, t) are the coefficients for the objective function, that are related to
the user defined relation m in period t,
car1(ml, t) and car2(ml, t) are the same for load region l, if relation m has load regions,
U svd.e.t is the annual consumption of fuel s of end-use technology v in period t and
elasticity class e,
κe is the factor giving the relation of total demand for d to the demand reduced
due to the elasticity to level e,
romt
svd is the relative factor per unit of output of technology v for relational constraint
m in period t,
cred(d, e) is the cost associated with reducing the demand for d to elasticity level e,
Y zsvd..t is the annual new built capacity of technology v in period t,
cf ix(svd, t) are the fix operation and maintenance cost of technology v that was built in
period t,
ccap(svd, t) is the specific investment cost of technology v in period t (given per unit of
main output),
f rinsvd is the share of this investment that has to be paid n periods before the first
year of operation,
rcmt
svd is the relative factor per unit of new built capacity of technology v for user
defined relation m in period t,
f ransvd,m is the share of the relative amount of the user defined relation m that occurs n
periods before the first year of operation (this can, e.g., be used to account for
the use of steel in the construction of solar towers over the time of construction),
Rzrgp.lt is the annual consumption of resource r, grade g, elasticity class p in load
region l and period t,
cres(rgpl, t) is the cost of extracting resource r, grade g, elasticity class p in period t and
load region l (this should only be given, if the extraction is not modelled
explicitly),
Izrcp.lt is the annual import of fuel r from country c in load region l, period t and
elasticity class p; if r has no load regions l=”.”,
cimp(rcpl, t) is the cost of importing r in period t from country c in load region l and
elasticity class p,
Ezrcp.lt is the annual export of fuel r to country c in load region l, period t and
elasticity class p; if r has no load regions l=”.”, and
cexp(rcpl, t) is the gain for exporting r in period t to country c in load region l and elasticity
class p.

38
Chapter 10

## Special Features of the Matrix

Generator

The mathematical formulation of MESSAGE as presented in the previous sections shows the
structure of all constraints as the matrix generator builds them up. The background of the
more complicated features is given here for a better understanding.

## 10.1 The Time Horizon–Discounting the Costs

The whole time horizon of the calculations is divided into periods of optional length. All
variables of MESSAGE are represented as average over the period they represent, resulting in
a step-function. All entries in the objective function are discounted from the middle of the
respective period to the first year, if they relate to energy flow variables and from the
beginning of that period if they represent power variables. The function to discount the costs
has the following form:
Ctr
ct = t−1
,
Y drk ∆k
(1 + ) × fi
k=1
100

where
Ctr is the cost figure to be discounted,
ct is the objective function coefficient in period t,

 1
 for costs connected to investments,
fi =

 ∆t
drt
(1 + 100 )
2
else, and

## drk is the discount rate in period k.

39
10.2 Distributions of Investments

In order to support short term applications of MESSAGE the possibility to distribute the
investments for a new built technology over several periods was implemented. The same type
of distributions can be applied to entries in user defined relations if they relate to
construction. The distribution of investments can be performed in several ways. There is one
common parameter that is needed for all of these possibilities, the construction time of the
technology [ct].

## The implemented possiblilities are: 1. Explicit definition of the different shares of

investments for the years of construction. The input are ct figures that will be normalized to
1 internally. 2. The investment distribution is given as a polynomium of 2nd degree, the
input consists of the three coefficients:

y = a + bx + cx2 , x = 1(1)ct,
where ct is the construction time. The values of the function are internally normalized to 1,

taking into account the construction time. 3. Equal distribution of the investments over the
construction period. 4. A distribution function based on a logistic function of the type

100
f = ,
1 + e−α(x−x0 )

where
ct
x0 = 2 ,
and
2
α = ct ln ( 100
² − 1) .

## This function is expanded to a normalized distribution function of the following type:

 
100 1
g =  ln( 100
− ² ×
² .
− ² −1)(x−50)
50 1 −
1 + e 50

g gives the accumulated investment at the time x, x is given in percent of the construction
time. The parameter ² describes the difference of the investment in the different years. ² near
to 50 results nearly in equal distribution, an ² close to 0 indicates high concentration of the
expenditures in the middle of the construction period.

In order to shift the peak of costs away from the middle of the construction period the
function is transformed by a polynomium:

## x = az 2 + bz , 0 < z < 100 ,

40
where
5000 − d2
b = 100d − d2
, 0 < d < 100 ,
and
1−b
a = 100 .

d denotes the time at that the peak of expenditures occurs in percent of ct.

The distribution of these yearly shares of investments is done starting in the first period of
operation with a one years share, the expenditures of the remaining ct − 1 years are
distributed to the previous periods.

## The coefficients of the capacity variables of a technology in a relational constraint can be

distributed like the investments.

The years representing a period can be subdivided into so-called load regions. This can be
done by either ordering the whole year according to the power requirements for the most
important energy carriers like, e.g., electricity, or by grouping the year into load regions with
similar characteristics (hereafter called characteristic loads), like, e.g., winter days and nights
and summer days and nights. The first option results in an interpolation of the usual
representation of the load curve by a step function (see Figure 10.1), the second one in a
step-function where the time is still ordered in a historic way.

Figure 10.1: Example of an ordered (left) and a semi-ordered load curve (right)
(WD stands fpr winter day, WN for winter night, SD for summer day and SN for summer
night.)

41
10.4 Consideration of Load Variations in Conversion
Technologies

The activity of a conversion technology is generated for each load region, if the main in- or
output energy form is defined to have load regions. In this case the relation of these activities
between the load regions is freely chosen by the model. The relations can be fixed by the user
to reflect a certain fixed production pattern. In this case the activity will only be generated
once and written to the energy flow balances with coefficients reflecting the chosen pattern.
A powerplant operating in baseload mode would for instance have the shares of the load
regions in the year as coefficients in the balances of energy forms with load regions.

For end-use technologies (output level ”U ”) the production is assumed to meet the demand
pattern, the input of the technology is fixed to reflect the according demand variations. This
can also be changed into to a different pattern. This would, e.g., model night storage heating
systems that meet the heat demand of a houshold, but generate a final electricity demand
with a different load distribution, namely at night.

## 10.5 The Implementation of Energy Storage

MESSAGE contains a quite complex model of energy storage. Section 3 contains the
mathematical formulation. In order to allow for different types of storage like daily and
seasonal the distribution of demands over the year has to be depicted in a semi ordered load
curve: The user has to define the load regions in a physical order. Daily storage would for
instance need the definition of several parts of the day that are ordered like in an actual day.
The model can then store energy in one part of the day and release it in one of the following
load regions, keeping track of the storage contents in each load region. This loop of storage is
closed for all but seasonal storage, where an appropriate part of the energy stored in the last
load region is delivered to the next period.

The length of time that the content of a storage can be held can also be limited to some
fraction of the time it is dedicated to. An example would be a daily heat storage that can
only keep the heat 80% of the day, after that time it could have too low a temperature to be
used. The loss of energy in the case of heat storage can be modeled by a decay function:

col+1 = col × eζ × δl ,

where
col is the content of storage in load region l,
1
ζ is the decay constant of storage [unit: k ],
k is 1 day for daily storage, 1 year for seasonal storage, etc. and
δl is the fraction of k that lies between load regions l and l + 1 [unit: k ].

42
The amount of energy available from storage is reduced over time according to this function.

If several types of load regions are defined, e.g. weekly and seasonal, (it should rather be
named yearly for reasons of consistency) they are ordered according to the length of the time
period they span. The ”bigger” one (the seasonal) can then work like the smaller one
(weekly), too (see Figure 10.2). The decay of content and limitation on time is only applied
to the biggest type of load the storage works in.

## Figure 10.2: Flows of energy in daily and seasonal storage

The two basic parts of a storing device, namely the input/output part (for a pumped hydro
storage the generator/turbine/pump part) and the real storage (dam and reservoir) can be
handled in two different ways. One of them is to link them in size, i.e. to fix the content (in
MWyrs or GWyrs) in relation to the generation capacity (in MW or GW), as it is usually the
case with batteries.

The other possibility, which could, e.g., be useful for pumped hydropower storage plants, is
to keep them separate with their own costs and leave the relation of the two open for the
optimization process.

## 10.6 Lag Times Between Input and Output of a Technology

Since MESSAGE can be used for very short time steps, even for steps of 1 year per period,
the implementation of lag-times between input and output of a conversion technology seemed
to be appropriate. One possible application are the reprocessing units for nuclear fuels, which
usually keep the fuels for several years.

The lag time for a technology (keyword lag) is given in years and the period in which the
output is available is calculated beginning from the middle of the period when the input is
required.

## 10.7 Variable Inputs and Outputs

A lot of power plants can use different fuels for electricity generation, the highest variability
occurs between oil products and natural gas as fuel. This can be modeled by having two or

43
even more energy conversion variables with different inputs, efficiencies and variable
operation and maintainance costs linked to one capacity in one capacity equation (definition

The same link of different conversion activities can be used to model co-generation of
electricity and heat with a variable output pattern. In this case one of the conversions would
be to electricity (with an efficiency ²e ) and the other one producing a mix of electricity and
the maximal possible share of district heat (producing ²c electricity and δc district heat from
one unit of input). In the latter case the efficiency to electricity (²c ) is lower than in the first
case (²e ), but the overall efficiency is naturally much higher. The two conversion variables
have to be related to the same capacity by a factor giving the relative production of the main
product possible with one unit of installed capacity, which is always related to the first
operation mode. In the terms used above this would mean that the plant can produce ²e
electricity in the first operation mode, while it can produce ²c with the same capacity in the
second operation mode. For the model this means that the electric capacity is not utilized
fully in the second mode, the relation has to be defined by the user. (It would be ²e / ²c in
the described case, but could also be independent from the efficiencies for other technologies.)

## 10.8 The Contribution of Capacities Existing in the Base

Year

The possible contribution of an installation that exists in the base year is kept track of over
time. There are two possibilities to give the necessary information to MESSAGE.

1. Define the capacities that were built in the years iyr, ..., iyr − τ + 1, with iyr = base
year and τ = plant life in years explicitly. These capacities are then distributed to
historic periods of the length ν.

2. Define the total capacity, c0 , that exists in iyr and the rate at that it grew in the last τ
years, γ. This information is then converted to one similar to 1. by using the function:

γ −ν − 1
y0 = c0 ,
ν(γ −τ − 1)

τ
yt = y0 γ −t × ν , t = 1(1) ,
ν

where
yt is the annual construction in period −t, (0 = base year),
γ is the annual growth of new installations before the base year,
c0 is the total capacity in the base year,

44
τ is the plant life, and
ν is the length of the periods in that the time before the base year is divided.

The right hand sides in the capacity constraints are derived by summing up all the old
capacities that still exist in a certain period (according to the plant life). If the life of a
technology expires within a period, MESSAGE takes the average production capacity in this
period as installed capacity (this represents a linear interpolation between the starting points
of this and the following period).

## 10.9 Capacities which Operate Longer than the Time Horizon

If a capacity of a technology is built in one of the last periods its life time can exceed the
calculation horizon. This fact is taken care of by reducing the investment costs by the
following formula:
τp −ν t+k−1
X Y 1
k=1 τ =t
1 + drτ
Ctr = Ct × τp t+k−1
X Y 1
k=1 τ =t
1 + drτ

where
ν is the number of years the technology exists after the end of the calculation
horizon,
drτ is the discount rate for year τ ,
τp is the plant life in years,
Ct is the investment cost in year t, and
Ctr is the reduced investment.

## Own-price elasticities of demand can be interpreted either as short-term elasticities resulting

in reduced demand due to sharp price increases (they have to relate to a reference price- and
demand level and represent renunciation of services) or as long-term elasticities reached by
substituting capital for energy. In the latter case the user has to asure that the relatively
decreased demand level is maintained over the calculation horizon by applying user-defined
relations (see section 8). The costs and levels of demand reduction can be derived from the
investments and savings that are associated to certain additional installations, like, e.g.,
three-glass windows to save in space heating.

45
The form of the own price elasticity function of demand is
· ¸²
Q P
= ,
Qr Pr

where
Qr is the reference demand level,
Pr is the reference price level, and
² is the elasticity, (assumed to be < 0).

It says that the demand will decrease by a factor of x² if the price rises by x. This function is
approximated by a step-function of the following form:

The demands (Q) and prices (P ) are normalized to the reference levels:

Q = q × Qr ,

and
P = p × Pr ,
the normalized values follow the function

q = p² ,

or
1
p(q) = q ² .
To reduce the demand to the level qi the supply has to have the cost

Z 1 h i
1 1 1
c(qi ) = q ² dq = 1 × 1 − qi 1+ ² ,
qi 1+ ²

a function increasing monotonously with decreasing qi (see also Figure 10.3). In absolute
terms this means that the cost would be higher by an absolute value of

Qi
R(Qi ) = c( ) × Qr × Pr
Qr
compared to the cost at the reference level.

The step-function is then defined by choosing certain levels of demands and prices
(Qi, Pi ), i = 1(1)n with Qi < Qr , that fulfil the elasticity function. The code can choose,
which demand level it supplies, but if it supplies a level Qi < Qr it has to pay addititionally
R(Qi ), the cost of reducing the demand to level i.

46
Figure 10.3: Representation of Demand Elasticities

## 10.11 Supply Elasticities

The reaction of the market prices to changes in demand can be expressed as elasticities:
· ¸α
P S
= ,
Pr Sr

where
Pr is the reference price level,
Sr the reference supply level, and
α the elasticity.

## The normalized form of this equation is

c = sα ,

where
P
c = Pr ,

47
and
S
s = Sr .

The relationship is converted to a step-function with n steps, which is shown in Figure 10.4.
f (s1 ) is the cost of supplying amount s1 relative to supplying sr , while f (s1 ) + (s2 ) ist the
relative cost of supplying the amount s2 . The marginal costs are then defined as
R si
si−1 σ α dσ
µ(s) = ,
si − si−1

where
si−1 < s ≤. si

## Figure 10.4: Representation of Supply Elasticities

According to the normalized function the total price of buying the amount s is then

i−1
X
tc(s) = µ(sj ) × (sj − sj−1 ) + µ(si ) × (s − si−1 ) .
j=1

## The price of the amount S, Si−1 < S < Si, is defined as

S
T C(S) = Pr × Sr × tc( ).
Sr

48
In the matrix this function is implemented as n + 1 additive elasticity classes for resources
and imports ( R0 = Sr, Ri = Si − Si−1 , i = 1(1)n ), which have increasing costs. The code
takes these classes as supply one after the other and has to pay incrasing prices, then.

## 10.12 The Mixed Integer Option

If the LP-package used to solve a problem formulated by MESSAGE has the capability to
solve mixed integer problems, this can be used to improve the quality of the formulated
problems, especially for applications to small regions.

The improvement consists in a definition of unit sizes for certain technologies that can only
be built in large units. This avoids for instance the installation of a 10 kW nuclear reactor in
the model of the energy system of a city or small region (it can only be built in units of e.g.,
700 MW). Additionally this option allows to take care of the ”economies of scale” of certain
technologies.

This option is implemented for a technology by simply defining the unit size chosen for this
technology (keyword cmix). The according capacity variable is then generated as integer in
the matrix, its value is the installation of one powerplant of unit size.

If a problem is formulated as mixed integer it can be applied without this option by changing
just one switch in the general definition file (keyword mixsw). Then all capacity variables are
generated as real variables.

## 10.13 Nonlinear Objective Functions

In combination with MINOS MESSAGE can be applied to problems with a partly nonlinear
objective function or with nonlinear constraints. The requirements are that the functions are
differentiable and convex with respect to the solution space.

In order to use a nonlinear objective or nonlinear constraints the user has to identify the
variables that are to be included with nonlinear coefficients in the input file (keyword nonl;
they will be written to the matrix as first entries in the columns section–as required by
MINOS) and to supply MINOS with an additional subroutine (Funcon for nonlinear
constraints and Funobj for nonlinear objective gradients), which yields the nonlinear part of
the constraints or objective and the first derivatives as required by MINOS.

In order to start a nonlinear problem it can be solved as linear problem in the beginning.
The nonlinear variables can be fixed to user-defined estimates by specifying ”initial bounds”
in the bounds section.

The order in that the nonlinear variables appear in the input file is essential, because the
same order is used for identifying them in Funcon and in Funobj. MESSAGE generates the
activity variables first, then the capacity variables (both of them in the order in that the
technologies appear in the input file). The loops in producing the columns are nested in the
following order:

49

– time periods.

## MESSAGE is capable of handling two types of multiobjective optimization: It can generate

weights on different types of activities or prepare the MPS-file for using the Reference
Trajectory Optimization Method.

Weights on Activities

The common way to optimize several objectives at the same time is to define weights for the
different types of activities in the model. MESSAGE provides an easy way to do this: It is
possible to define costs that are added to the objective gradients of all technologies that have
coefficients in a specific additional relation (see chapter 8), e.g. all technologies emitting SO2
accounting for the emissions of SO2 .

Alternatively additive and multiplicative weights for all activities considered in the ”Cost
Accounting Rows” (see section 9.1.1) can be defined. As an example, additional costs (taxes)
put on energy imports could be imposed this way.

## The Reference Trajectory Method

The ”Reference Trajectory Optimization Method”1 is an approach to optimize more than one
objective function for a problem in a way that circumvents the necessity to define weights on
the single objectives. It allows to define reference trajectories for all objectives; the solution
will lie on the ”pareto”-optimal border of the feasible region and be as close as possible to all
reference trajectories.

The way in which the pareto-optimal border is approached can either be problem oriented
with an egalitarian approach between the objectives, or aspiration oriented, meaning that
objectives with a reference point that is closer to the overall optimum (the UTOPIA2 point),
get higher influence on the solution.

The objectives can be grouped to nodes, for each of which a multiobjective approach is
taken. The nodes are just summed up in the objective function. This feature is useful if
interconnected models with separate objectives are depicted in one physical model.
1
This method is based on the ”Reference Point Optimization Method, that has been developed at IIASA
and is implemented in the DIDASS system.
2
The UTOPIA point is the combination of all single-objective optima into one overall optimum, which is
usually not in the feasible region.

50
Mathematically the objective functions are summed into a single function that minimizes the
maximum difference between the reference trajectory and the actual value of the function for
each time step. The difference is calculated using the Chebychev norm of the two points
(reference point and actual value). The time steps are usually handled like the nodes, i.e.
each point in time has a single objective. Alternatively the time steps can be included in one
objective, which means that the compromise solution is searched over all objectives and time
steps at once. This algorithm may lead to unrealistic results, since the dynamics of the model

## The aggregated objective function has the following general form:

Ã ! 
XX yj,t − ȳ j,t X y j,t − ȳ j,t
min  max σj +² σj 
n t
j∈Jn αj,t j∈Jn
αj,t

where
n is the index for the nodes,
t is the index for the time steps,
Jn is the set of objectives in node n,
j is the index for the objectives,
σj is a scaling factor to improve numerical stability (all objectives should have the
same order of magnitude to avoid rounding-off errors),
yj,t is the actual value of objective j in time step t,
ŷj,t is the reference point for objective j in time step t,
αj,t is the scaling factor for objective j in time step t, it represents the way the
pareto-optimal border is approached, and
² is a small number to drive th solution algorithm in the right direction.

If all time steps are to be aggregated into one objective, the sum over t is added to the sums
over the variables instead of being outside the maximum.

The scaling factors are generated depending on a criterion regarding the way in which the
absolutely optimal (and probably infeasible) point is approached:
1.
Problem oriented scaling: αi,t = ȳi.t

1.
Aspiration oriented scaling: αi,t = ui,t −ȳi.t

where
uj,t is the optimal value for objective j in time step t with single-objective
optimization. The respective values for all objective constitute the UTOPIA
point.

51
Annexure B-1

## Modelling of combined heat and electricity production

B.1 Introduction

Combined heat and electricity production power plants (CHP) produce heat and
electricity and are characterized with much more efficient utilization of primary energy –
fuel. They replace condensing power plant and boiler-house that correspondingly serves
for electricity and heat production. An example of energy flows in CHP in comparison
with separate electricity and heat production is shown in Fig. 1.

## Separate heat and electricity DEMAND Combined heat and power

generation production

Conventional Electricity
power plant (oil/gas) 172 MWh CHP
453 MWh (oil/gas)
η= 0,38 584 MWh
η= 0,81

Boiler-house Heat
(oil/gas)
302 MWh
335 MWh
η= 0,9
281 110
33
MWh
MWh MWh

Losses Losses
Total primary energy requirement 788 MWh Total primary energy requirement 584 MWh

## Saving of primary energy requirement 26%

Figure 1. Energy flows in the case of separate and combined electricity and heat production.

Two different types of combined heat and power plants should be mentioned when their
modeling with the MESSAGE model is considered.
One type is CHP with back-pressure units. In this case steam produced in steam boiler
drives steam turbine and generator and produces electricity. The rest of thermal energy
from steam leaving steam turbine is taken by industrial or residential consumers using
special heat exchanger and heat distribution network. Principal diagram of such type of
CHP is presented in Fig. 2. Electricity production in this case is only possible if heat
demand exists at the same time. If heat consumption is non-existent electricity production
is not possible because steam leaving turbine is not condensed and not cooled
sufficiently.
Main difference of CHP with extraction units is opportunity of electricity production
without heat production. This is possible because of condenser used for cooling of steam
leaving steam turbine. Principal diagram of such type of CHP is presented in Fig. 3. If
Annexure B-2

there is heat demand available in district heating network steam leaving steam turbine is
cooled by heat agent circulating in the network and is used efficiently. If heat demand is
not available steam leaving steam turbine is cooled in condenser and this heat is lost.
Steam

Generator
Fuel input
Boiler Turbine
~
Heat to consumers

Heat exchanger

Heat
consumers
Condensate

## Figure 2. Principal diagram of back-pressure CHP.

Steam

Generator
Fuel input
Boiler Turbine
~
Heat to consumers

Heat exchanger

Heat
consumers

Heat from
consumers

Condenser
Condensate

Annexure B-3

## B.2 Modelling of CHP with back pressure units

Heat and electricity output in back pressure CHP is strictly related one with another.
Relation of heat and electricity output is shown in Fig. 4.

(P)

Pn

## Back pressure line

Qn Heat (Q)

Figure 4. Relation between heat and electricity output in back pressure CHP.

Increasing electricity production in back pressure CHP causes increasing heat output
according so called “Back pressure line” shown in Fig. 4. Nominal electrical capacity Pn
corresponds to the nominal thermal capacity Qn.
Main technical parameters characterizing back pressure CHP are:
• Nominal electrical capacity (Pn),
• Nominal thermal capacity (Qn),
• Total fuel efficiency η∑.
As other types of power plants back-pressure CHP’s may use one particular type or few
types of fuel. The easiest modeling of CHP in the MESSAGE model is modeling of
single fuel back-pressure CHP.

B.2.1 Modeling of CHP with back pressure units utilizing one type of
fuel

Technology with two related outputs is used in order to model CHP with back-pressure
units utilizing one type of fuel. Technology representation and energy flows are shown in
Fig. 5.
Annexure B-4

Electricity
alt a Main output a
Main input η’el
Related output a Heat

η’h

Figure 5. Representation of CHP with back-pressure units utilizing one type of fuel in the MESSAGE
model.

Main output of technology may be selected for electricity output or for heat output.
Related output in this case will be for heat and electricity output correspondingly. In
other words allocation of energy form to one or another output is free of choice, however,
capacity of the plant, investment cost, operation and maintenance costs should be
consentaneous with the main output. This means that if electricity is selected for the main
output capacity of the plant means electrical capacity, investment cost and fixed
operation and maintenance cost should be related to electrical capacity and variable
O&M – to electricity output. If heat output is selected for the main output, plant capacity
represents thermal capacity, investment cost and fixed O&M cost is related to this
thermal capacity and variable O&M cost – to heat output.
If for example we have back pressure CHP with following parameters:
Pn = 23.3 MW,
Qn = 102.3 MW,
η∑ = 0.825,
and electricity is selected for the main output of technology, parameters that should be
entered into MESSAGE model are calculated in a following way:
Capacity (historical capacity) P , = Pn = 23.3MW ,
Efficiency of the main (electricity) output
Pn 23.3
η , el = = = 0.153;
( Pn + Qn ) / η ∑ ( 23.3 + 102.3) / 0.825
Efficiency of related (heat) output
Qn 102.3
η ,h = = = 0.672;
( Pn + Qn ) / η ∑ (23.3 + 102.3) / 0.825
Taking into account fixed cost calculated as total annual fixed cost of the plant divided by
electrical capacity (72.52 \$/kW/yr), variable cost calculated as total annual variable cost
of the plant divided by electricity output (89.17 \$/kWyr), plant factor (0.9), share of
operation time (0.87), investment cost (850 \$/kW), life time (30 years) and others screen
of MESSAGE model containing data about above mentioned CHP looks like it is
presented in Fig. 6.
Annexure B-5

## b) part two, representing activity related parameters

Figure 6. “Technologies” screen of the MESSAGE model representing CHP with back-pressure units
utilising one type of fuel.

Numerical value of efficiency of related (heat) output (0.672) is entered into screen
appearing after consecutive press of button “outp” located in part two of the
“Technologies” screen, representing activity related parameters and “Edit/Add”, located
in the appeared screen, shown in Fig. 7.
Annexure B-6

## Figure 7. Screen containing information about related output.

B.2.2 Modeling of CHP with back pressure units using different fuels
in fixed shares

In the case when CHP with back pressure units utilizes few types of fuel in a fixed
proportion it’s representation in the MESSAGE model is almost similar as back pressure
CHP utilizing one type of fuel. There is only one difference in the part two of
“Technologies” sheet representing activity related parameters. One type of fuel should be
selected as main fuel and share of it’s input should be entered into “Value” cell of main
input of technology. Shares of other fuels have to be entered into separate screen
appearing after press of button “inp” in the “Technologies” screen. For example if we
would like to model CHP with back pressure units utilising 80% of natural gas and 20%
of oil, “Technologies” screen would look like it is shown in Fig. 8.

Figure 8. Representation of fixed fuel input shares for CHP with back-pressure units.
Annexure B-7

B.2.3 Modeling of CHP with back pressure units using few different
fuels

In the case when CHP with back-pressure units utilizes few types of fuels ant their shares
are not limited representation of energy flows in such kind of technology is shown in Fig.
9.

Activities
Main output a Electricity
Main input a alt a
(gas) alt b Main output b

Heat
Related output b
Main input b
(oil)

Figure 9. Representation of energy flows in CHP with back-pressure units utilizing two types of fuels.

Separate alternatives of “Activities” “alt a”, “alt b” and so on are used for representation
of different fuel types utilised at the plant. Individually those alternatives have no
differences in their representation described in section B.2.1, except of different fuel
names in “main input” cells. In addition, if efficiency of energy production is different
using different types of fuels this feature may be reflected in different values of
efficiencies both for the main and related outputs. For example, if efficiency of electricity
production using gas is 0.0676 and 0.662 for heat production, and 0.066 and 0.646
correspondingly using oil “Technologies” sheet for CHP representation looks like it is
shown in Fig. 10.
Annexure B-8

## a) sheet representing oil utilisation

Figure 10. “Technologies” data for CHP with back pressure units utilizing gas and oil.
Annexure B-9

## B.3 Modelling of CHP with extraction units

Operation of CHP with extraction units is more flexible. It’s operation diagram or
possible heat and electricity relationship is shown in Fig. 11.

## Electricity Extraction units

(P)
Pk Constant fuel input line

Area
Pn
of CHP
Condensing
line operation Back pressure line

Qn Heat (Q)

Figure 11. Relation between heat and electricity output in CHP with extraction units.

In the case when electricity and heat from turbine is fully utilized electrical and thermal
capacities of the plant are changing according “Back pressure line” from zero until their
nominal values Qn (Nominal thermal capacity) and Pn (nominal electrical capacity in
combined heat and electricity production mode). Later, if heat demand is decreasing from
Qn until zero but fuel supply to the boiler remain stable electrical capacity changes
according “Constant fuel input line” until reaches value Pk (Nominal electrical capacity
in condensing mode). If heat demand is absent but fuel supply is increasing electrical
capacity increases from zero up to value Pk along “Condensing line”. Area constrained
by the “Condensing line”, “Back pressure line” and “Constant fuel input line” is area of
possible CHP operation in the case of different proportion of electrical and heat demand
as it was described above.
CHP with extraction units is characterized by set of following parameters:
• Nominal electrical capacity in CHP mode (Pn),
• Nominal electrical capacity in condensing mode (Pk),
• Nominal thermal capacity (Qn),
• Fuel efficiency in condensing mode (ηk).
• Fuel efficiency in CHP mode (Total efficiency) (ηT ).
Annexure B-10

CHP with extraction units, as CHP with back-pressure units may utilize one particular
type or few types of fuel. The easiest modeling of CHP with extraction units in the
MESSAGE model is modeling of single fuel CHP.

B.3.1 Modeling of CHP with extraction units utilizing one type of fuel

Modeling of CHP with extraction units (See Fig. 12) may be considered as linear
combination of two processes going on in:
• Condensing power plant (“alt a”),
• CHP with back pressure units (“alt b”).

## alt a Main output a Electri-

Main input ηel city

η’el

## Related output b Heat

η ’h

Figure 12. Representation of energy flows in CHP with extraction units utilizing one type of fuel.

Main output of “alt a” models electricity production in condensing mode. If heat demand
is absent increasing fuel supply (flow in the main input) causes increasing electricity
supply according “Condensing line” shown in Fig. 11. Efficiency of electricity
production is equal to the CHP efficiency in condensing mode η k. Maximal electrical
capacity reaches nominal capacity in condensing mode Pk. Energy flows in links of “alt
b” in this case are equal to zero.
“Alt b” represents CHP operation in pure combined heat and electricity production mode.
Main output of “alt b” in this case represents electricity production and related output –
heat production. Increasing fuel supply (flow in the main input) causes increasing
electricity and heat supply according “Back presure line” shown in Fig. 11. Maximal
electrical capacity reaches it’s nominal value in combined heat and electricity production
mode Pn and maximal thermal capacity – value of nominal thermal capacity Qn. Energy
flow in link of “alt a” in this case is equal to zero.
If heat demand from CHP is lower than Qn but electricity demand in the system is
sufficiently high both “alt b” and “alt a” are active and an extra electricity production
occurs in condensing operation mode (“alt a”). If energy input to technology is the same
Annexure B-11

as for nominal regime relationship between thermal and electrical output is according the
“Constant fuel input line” shown in Fig. 11. If energy input (fuel input) is lower as in
the nominal regime point of CHP operation is in the “Area of CHP operation” shown in
Fig. 11.
In the case when CHP with extraction units is characterized by the set of following
parameters:
Pn = 171.8 MW,
Pk = 208 MW,
Qn = 302.3 MW,
ηk = 0.357,
ηT = 0.81.
parameters for the MESSAGE model may be calculated in the following way:
Efficiency of the main output of “alt a” η el = η k = 0.357,
Efficiency of the main output of “alt b”
Pn 171.8
η , el = = = 0.293;
( Pn + Qn ) / η T (171.8 + 302.3) / 0.81
Efficiency of the related output of “alt b”
Qn 302.3
η ,h = = = 0.516;
( Pn + Qn ) / ηT (171.8 + 302.3) / 0.81
Power relation
Pk 208
pow.rel. =
= = 1.21;
Pn 171.8
“Technologies” screen with entered numerical values of parameters calculated above is
shown in Fig. 13.
Investment costs and fixed O&M costs are related to the CHP electrical capacity in
condensing mode. Variable O&M costs are related to electricity output in condensing
operation regime.
Annexure B-12

## a) part of “Technologies” screen representing condensing operation mode of CHP

a) part of “Technologies” screen representing combined heat and electricity production mode of CHP
Figure 13. Representation of CHP with extraction units using one type of fuel in the MESSAGE
model.
Annexure B-13

## B.3.2 Modeling of CHP with extraction units using different fuels in

fixed shares

Approach of CHP modelling with extraction units utilizing few types of fuels in a fixed
proportion is similar as for CHP with back-pressure units (See section B.2.2). However,
fuel shares have to be entered for both “alt a” and “alt b” correspondingly representing
condensing and combined heat and electricity production mode of CHP operation. Screen
for data entrée appear after press of button “inp” in the “Technologies” screen.

B.3.3 Modeling of CHP with extraction units utilizing few types of fuel
in free relation

In this case one technology with multiple input is used for modeling of fuel input to CHP.
This technology is linked to the technology representing CHP with extraction units
utilizing one type of fuel which was described in section B.3.1. Connection of
technologies and possible energy flows in such a case is shown in Fig. 14.

alt a
HFO Main input Electri-
alt a Main output a
city
ηHFO=1 Main output
Main input ηel
alt b
Gas Main input

Main output
ηgas/ ηHFO
alt b Main output b

η’el
Heat
Related output b
For modeling of η’h
For modeling of
unrelated fuel input unrelated electricity
and heat output

a) modelling approach when boiler efficiency is combined in total cycle efficiency of CHP
Annexure B-14

## Using real boiler’s efficiencies

alt a
HFO Main input Electri-
alt a Main output a
Main output city
ηHFO
Main input ηel/ ηHFO
alt b
Gas Main input

Main output
ηgas/ ηHFO
alt b Main output b

η’el / ηHFO
Heat
Related output b
For modeling of η’h / ηHFO
For modeling of
unrelated fuel input unrelated electricity
and heat output

## b) modelling approach using real boiler efficiencies

Figure 14. Representation of technology connection and energy flows in CHP with extraction units
utilizing two types of fuel.

Two modelling approaches can be used for CHP modelling in this case:
a) modelling approach when boiler efficiency is combined into whole CHP cycle
efficiency and is represented in technology modeling unrelated electricity and
heat output,
b) modelling approach using real boiler efficiency which is used for technology
modeling unrelated fuel input.
In the case a) when efficiency of heat and electricity production at CHP is different using
different fuel types one type of fuel has to be selected as the “main” fuel. (The heavy fuel
oil (HFO) is such fuel in our case.) All output efficiencies of technology modelling
unrelated electricity and heat output have to be adjusted to this selected kind of fuel. In
other words parameters ηel, η’el, η’h presented in Fig 14a have to represent real
efficiencies of CHP when heavy fuel oil is used. Efficiency correction for other fuels (in
this case for gas) is made in technology for modeling of unrelated fuel input. In this
relation efficiency of “alt a” representing utilisation of HFO in technology modelling
unrelated fuel input has efficiency η HFO=1 (no efficiency correction for CHP), while CHP
efficiency correction when gas is used is made in “alt b” by dividing boiler efficiency
ηgas by boiler efficiency when HFO is used ηHFO.
When modelling approach using real boiler efficiency is used for technology modeling
unrelated fuel input (Fig 14b) real value of boiler efficiency is used for one selected kind
of fuel. In our case this is done for HFO in “alt a” where real boiler efficiency ηHFO is
shown. Boiler efficiency for other kinds of fuel is represented in relation to boiler
efficiency of selected fuel. In case of Fig 14b efficiency of “alt b” has a value ηgas / ηHFO.
Annexure B-15

This is the same efficiency correction as for case shown in Fig 14a. However, in this case
efficiencies have to be corrected and for technology modeling unrelated electricity and
heat output. This means that whole CHP cycle efficiencies ηel, η’el, and η’h have to be
divided by boiler efficiency of the selected fuel. In our case they are divided by ηHFO
because HFO was used as “selected” fuel.
“Technologies” screen representing technology of unrelated electricity and heat output in
the case of modeling approach a) is the same as in Fig 13. The screen difference when
modeling approach b) is used is only in numerical values of efficiencies. Mainly
technology modeling unrelated fuel input has entries only in efficiency cells, however, it
can be used for representation of the whole boiler and all data about cost, capacity and
others can be entered for this technology. Sometimes this is useful when more detailed
analysis of particular plant has to be performed. Different boiler types, boiler
modernization or other things can be modeled in this case. However, it is necessary to
keep in mind that parameters describing technology modeling unrelated electricity and
heat output (especially cost data) should be also correspondingly corrected.

## B.4 Ability of CHP to cower heat and power demand

Combined heat and power plants are efficient technologies for both electricity and heat
production. However, their use is constrained because:
• Heat demand should be in the geographical area near the plant,
• Regimes of electricity and heat demand have different shapes.
Heat and electricity demand depend on climatic conditions, type of consumers and other
factors. One possible dynamics of electricity and heat demand is shown in Fig. 15.

Power demand

## Difference between heat

And power demand

Figure 15. Electricity and heat demand variation during the year.
Annexure B-16

In the case when electrical and thermal capacities of CHP are adjusted to the demand in
winter time (December or January) shown in Fig. 15 CHP will not have sufficient heat
demand during summer. This will result either reduced electricity production during
summer period (in the case of back pressure units), either CHP operation in condensing
mode (in the case of extraction units). In this turn back-pressure units would require
additional capacities of other power plants to cover electricity demand during winter or
extraction units would be operated in a non efficient condensing mode during summer.

Big seasonal variations in heat demand determine comparatively low capacity factor of
CHP. This reduces efficiency of CHP because of longer payback period of investments.
In order to reduce payback of investments and increase efficiency of CHP it is usually
combined with heat only boilers. Principal schema of CHP with heat only boiler is shown
in Fig. 16.

## Fig. 16. Principal schema of CHP with heat only boiler.

Heat only boilers require much lower investment cost in comparison with CHP. That’s
why they usually are used to cover peak heat demand while CHP is mainly used for base
demand.
During day heat or electricity demand fluctuation may be also significant and may be not
coincident one with another. In this case heat accumulator may be used in order to
increase technical possibility and efficiency of CHP operation. Principal schema of CHP
with heat accumulator is shown in Fig. 17.
Annexure B-17

## Fig. 17. Principal schema of CHP with heat accumulator.

During short term electricity demand increase excess of heat from turbine is redirected to
heat accumulator, while during short term decrease of electricity demand lack of heat is
covered by heat from heat accumulator. Heat accumulator makes operation of CHP more
flexible. From the other hand heat distribution network in some respect may be
considered as heat accumulator too. Thus, modeling of CHP with heat accumulator may
be necessary in order to reflect better existing reality.

## B.4.2 Modeling of heat accumulator

Part of the MESSAGE model network with CHP consisting from turbine, heat only boiler
and heat accumulator is presented in Fig. 18. Network includes also technologies of fuel
supply, electricity and heat distribution as well as dummy technologies “Heat to
accumulator” and Heat from accumulator” necessary for modeling of heat storage.
“Electricity”, “Heat” and “Dummy” energy forms are represented for two load regions
(two energy form lines and two energy flow lines for each energy kind) in order to show
that those energy flows in the MESSAGE model are separate and how heat using heat
Modeling of heat accumulator in details including simplified equations is presented in
Fig. 19. X1 and Y1, X2 and Y2 represent energy flows in corresponding links in the first
and the second load region correspondingly. Parameter ηak is efficiency of heat
accumulation and is used for the main output in technology “Heat to accumulator”.
Coefficients “1” and “-1” are used for relation of energy flows through heat accumulator
and dummy technologies “Heat to accumulator” and “Heat from accumulator”
correspondingly. Entries of their values are in the screens “Linked storage constrains
on activities” that appear after press of buttons “consa” in “Technologies” screen
Annexure B-18

## describing above mentioned dummy technologies. Screens of MESSAGE model with

data for heat accumulator are presented in Fig. 20 - 22.

## Resources Primary Intermediate Final Useful

Oil Oil Heat Electricity Electricity
Heat Heat
Dummy
Heat
allocation

Electricity
CHP distribution

Dummy flow
Extraction Heat to
accumulator
Heat
Boiler Heat from
distribution

accumulator

Heat accumulator

Fig. 18. Part of the MESSAGE model network with CHP consisting from turbine, heat only boiler
and heat accumulator.

X1
ηak
X1
Heat to
accumulator X1’ = X1; X2’ = X2;
X2 X2
ηak
1 Y1
Heat from
accumulator
Y1 = Y1’; Y2 = Y2’;
Y2

-1
X1’ X2’ Y1’ Y2’ X1’ – Y1’ <= active volume;

## Heat accumulator X1’ + X2’ - Y1’ –Y2’ <= active volume;

Fig. 19. Modeling of heat accumulator in the MESSAGE model.
Annexure B-19

Fig. 20. “Storage technologies” screen and necessary steps for entry of data about heat accumulator.

Entry of data about heat accumulator starts with pressing of button “Constrains”(1 step
in Fig. 20). Step 2 is selection “storage” in the appeared screen. Step 3 is pressing of
button “New” after which screen shown in Fig.21 appears where name of constrain has to
be entered. Step 4 is fill in data in “Storage technologies” screen.

Fig. 21. Table appearing after press of button “consa” in “Technologies” screen.
Annexure B-20

Annexure B-21

## B.4.3 Representation of load regions when CHP is modeled

Representation of load regions for heat in geographical region 1, electricity and heat in
geographical region 2 is shown in Fig. 23.

## End of winter, Tuesday, Heat region 1

2000
Lr1 Lr2 Lr3 Lr4 Lr6 Lr7
Lr5
1500
MW

1000

500

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours

Approximation Actual

## End of winter, Tuesday, Electricity

2000

1500
MW

1000

500

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours

Approximation Actual

## End of winter, Tuesday, Heat region 2

1000
800
600
MW

400
200
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours

Approximation Actual

Fig.23. Load regions for heat in region 1, electricity and heat in region 2.
Annexure B-22

Representation of load regions for electricity and heat has to be consistent. This means
that load regions for electricity and heat in each geographical region have to be the same.
They should represent the same season of the year, the same day of the season, the same
number of hours during day and so on.

## 1.5 Test case of CHP modeling

Principal schema of the test model for modeling of CHP is shown in Fig. 24. It includes
major part of CHP modeling cases described above.

Annexure B-23

## The model includes technologies:

1. Gas transport to city 1 gas_to_c1
2. Oil transport to city 1 oil_to_c1
3. Gas transport to city 2 gas_to_c2
4. Oil transport to city 2 oil_to_c2
5. Gas transport to power plants gas_transport
6. Oil transport to power plants oil_transport
7. Gas/Oil burning at extraction CHP gas_oil_chp_c1
8. Gas/Oil burning at new extraction CHP gas_oil_newchp
9. Single fuel back presure CHP bp_chp_gen_c1
10. Boilers at single fuel back presure CHP boil_bpchp_gen_c1
11. Extraction units multiple fuel extr_chp_gen_c1
12. Boilers in city 1 boil_gen_c1
13. Extraction unit single fuel CHP extr_chp_gen_c2
14. Multi-fuel back presure CHP bp_chp_gen_c2
15. Boilers in city 2 boil_gen_c2
16. New CHP new_chp_gen
17. Oil/gas condensing power plant oilgas_gen
18. Hydro power plant hydro_gen
19. Bye-pass of heat accumulator byepass_accum
20. Heat to accumulator heat_to_accum
21. Heat from accumulator heat_from_accum
22. Heat distribution in city 1 heat_dist_c1
23. Electricity transmission / distribution electr_trans_dist
24. Heat distribution in city 2 heat_dist_c2
Annexure C-1

Summary

## The aim of the work is to demonstrate MESSAGE possibilities in nuclear fuel

cycle modelling.

It is well known that nuclear fuel chain differs from the other ones because of
special properties of nuclear fuel. Since calorific value of nuclear fuel depends not
only on the quantity of “burning” substance but also on fuel residence time, reactor
spectrum, fuel isotopic composition ect., special consideration was given to the
description of nuclear data reduction to MESSAGE data format. Some simple
formulas for the data conversion were given.

One of the possible closed nuclear fuel cycle options was modelled using
MESSAGE. The referenced nuclear fuel cycle includes 2 types of reactor: light water
reactor (LWR) and fast breeder reactor (FR) (see the referenced nuclear fuel cycle
diagram). The steps of the front-end and back-end of nuclear fuel cycle and nuclear
reactor operation were described. The nuclear cycle time lags were taken into
consideration.
It was suggested that LWR and FR spent fuel was reprocessed at separate
reprocessing plants, extracted fissile Pu was accumulated in Pu storage and was
supposed to be used for FR core fuel production.
Different types of storages for short term (cooling), intermediate (before
reprocessing) and permanent (depleted and reprocessed U, HLW) storing of nuclear
materials were modelled.
The reprocessed U extracted at LWR and FR reprocessing plants was
accumulated in 2 separate storages and was not recycled. High-level radioactive
wastes from both reprocessing plants were delivered to HLW storage.
In order to demonstrate MESSAGE ability to model multi-zone nuclear
installations FR was described as a two-zone (a core and a blanket) installation with
proper separate fuel flows. It was suggested that depleted U was used for blanket fuel
production.
One of the possible approaches to the enrichment process modelling was
realized and the appropriate procedure for data preparation was described.
Reactor structure materials consumption and Zr consumption for LWR
assemblies production was modelled.

## Using a nuclear fuel cycle case an example of multi-region nuclear services

exchange was modelled. The multi-region case contains 4 sub-regions: a sub-region,
supplying the nuclear services, and 3 sub-regions with LWR park and only part of
domestic nuclear services or without them.

Estimated costs for nuclear fuel cycle and corresponding references are given.
Annexure C-2

C.1. Introduction

The nuclear fuel cycle (NFC) consists of individual steps and refers to all the
activities related to the use of fissile materials as the main fuel in fission reactors. The
nuclear fuel activities begins with the extraction of uranium ore and ends with the
disposal of radioactive wastes generated during a reactor operation.
There are a lot of possibilities of NFC organizing. The variants depend on the
following options:
a) once-through (open) or closed NFC- depending on whether the spent fuel is reused
or not;
b) once- or multi-recycled spent fuel;
c) fuel composition: UO2, PuO2, MOX, UC, PuN etc.;
d) reactor spectrum (thermal, fast);
e) fuel breeding;
d) NFC fertile material (uranium, thorium).
All the options are interrelated and when chosen define a NFC structure.
NFC steps and relations between them are presented on Fig. 1.
NFC technologies and interrelations can be modelled with different level of
details, but a few particular features of NFC should be taken into account.
Special measures on nuclear fuel management require definite time lags
between some of the NFC steps. In particular, mandatory spent fuel cooling in reactor
cooling pond (minimum 4-5 years for LWR) or utilization of Pu coming from LWR
spent fuel (maximum 3 years [Ref.2]).
For the same reason NFC structure generally contains different types of
storages: cooling, intermediate and final disposal, fissile materials etc.
Nuclear reactors have rather long life- times (up to 60 years). To estimate new
nuclear technologies and fuel cycles competitiveness at least 100 year prognosis
period is required. In order to take into account NFC time lags the prognosis period
should be divided for a year steps.

## Experience obtained by the moment in MESSAGE NFC modelling show that

MESSAGE allows to describe material flows loops and can be used for extensive
studies of NFC options.

## Although MESSAGE is optimisation programme it can answer the questions

that belong to the field of so-called Mass Flow Analysis (MFA). The report includes
calculation results for one of the MFA problems that was solved with MESSAGE.

Activities related to the NFC have became widely spread around the world
and the emergance of new providers and consumers of fuel cycle servicies has
increased the complexity of the market. From the MESSAGE modelling point of view
NFC international market interrelations modelling is a multi-regional problem. A
multi-regional simple case containing “fuel cycle services provider” region was
created. The calculation results obtained showed the ability of MESSAGE to solve
this type of problems.
Annexure C-3

## Fig 1 Nuclear fuel cycle diagram [Ref.1]

The referenced scheme which was used to illustrate MESSAGE nuclear fuel
cycle data preparation is given on Fig 2.
Resource SWU Fuel Secondary
Reprocessed

ZrZrprod
prod

LWR
FR core fabr.
LWR
Fuel
SWU LWR fuel reproces
LWR
fabr.. sing cooling
t
F_blanket_
dummy LWR
Reprocessed U interim
Enrich
ment FR blanket Reprocessed U
L_dummy
Annexure C-4

fabr.
HLW
disposal
FR

Depleted U
storage
L FR FR core
dummy Fuel
Iron prod cooling
reproces
LWR F_blanc sing FR
U3O fuel
SWU F_bl _dummy blanket
FR _cool
U_e core
F electricity
fuel bl
Zr Reprocessed
iron Pu

Annexure C-5

## C.2. MESSAGE nuclear fuel cycle data.

Nuclear fuel has some specific features that differ it from hydrocarbon fuels:
1) it should be specially prepared before using in a nuclear reactor; 2) it can be
reprocessed and recycled and 3) spent fuel and radioactive wastes require long-term
management.
The chemical form of U (and/or Pu) is varied at different NFC stages. U is
extracted in the form of oxides (U3O8), than it is converted into UF6 for the
enrichment. Depending on a reactor type different chemical compounds of U and Pu
(oxides, nitrides, carbides) can be used as a nuclear fuel. But in contrast to
hydrocarbon fuels, while burning, the nuclear fuel chemical compound doesn’t
change. It’s important to trace isotopic composition changes of U and Pu because
these are the ones defining the heating of nuclear fuel. So light components of
chemical nuclear fuel compound (O, N, C) may not be taken into consideration. A
special mass unit – tons of Heavy Metal (tHM)- is used for nuclear fuel flows
calculations. The correspondence between (t) and (tHM) is as follows. The molecular
mass of UO2, which is usual fuel composition for LWR, is (238+16*2=) 270. The
share of uranium in this composition is approximately 88%. LWR needs about 23
tHM of uranium as an annual reload, which is 88% of uranium dioxide fuel. The total
amount of UO2 fuel tablets is (23/.88=) 26.1 t. The data used in the following
examples are given in tHM.

Reactor data.

All the mass flow data in MESSAGE are related to the main output:
main input, secondary inputs, secondary outputs – to all the main output value;

Annexure C-6

## corin, corout, consa – to a unit of output.

To put a nuclear reactor into operation an initial quantity of nuclear fuel (initial
core) that generally differs from the following annual reloads should be loaded.
In case of fast reactor, which has at least two zones (a core and a blanket), two
different types of fuel should be loaded as an initial core. On the capacity form for
FR technology a click on the “corein” button opens a window to input data of core
and blanket initial load (Fig. 3). The data should be entered are specific values related
to the unit of the reactor installed capacity. In our example FR installed capacity is
800 MW, initial load of core fuel is 12.6 tHM and blanket fuel initial load is 11.5
tHM. The corresponding specific values for MESSAGE are 12.6/800=0.0158
tHM/MW (core fuel) and 11.5/800=0.0144 tHM/MW (blanket fuel).
reactor reload schedule, nuclear fuel can remain in the core from some months to a
few years and a reload can make various shares of initial core. An average annual
reload of nuclear fuel is used for NFC modelling.

## Assuming 0.8 plant factor FR produces 640 MWyr of electricity. An annual

core fuel reload is modelled as the main input and annual blanket fuel reload is
modelled as a secondary input as Fig.4 shows. To produce 640 MWyr of electricity
FR requires 8.76 tHM of core fuel and 8 tHM of blanket fuel annually.

## C.3. Delivering of spent fuel to the storage.

The spent nuclear fuel discharged from the reactor must be put to storage for
cooling. In our example cooling storages for core spent fuel and blanket spent fuel are
modelled as separate storage technologies.
Annexure C-7

To link storage and a technology one should click on the button “entries” on
the screen “Storages” and in the field “other technologies” choose the name of the
technology to be linked to the storage from the list suggested by the program.
In the example under consideration spent fuel discharged from the reactor
should be reprocessed after 4 years cooling in the storage. So the “FR_core_cooling”
storage has links with two technologies: FR and FR core fuel reprocessing plant
(FR_repr.) as shown in Fig. 5.

## The data should be input on “Entries in relation FR_core_cooling” window are

specific values related to the main output of the corresponding technology: annual
nuclear fuel reload related to the annual electricity production of FR (8.76/640=
0.0137 tHM/MWyr) and the amount of core spent fuel required to extract 1 tHM of
fissile Pu through a reprocessing process (-5.89 tHM/tHM) (Fig.3).
A special attention should be paid to the signs of the values: all the flows
coming to the storage must be positive, and all the flows outcoming from the storage
must be negative. In our example 0.0137 tHM/MWyr is put to the storage (the sign is
(+)) and 5.89 tHM/tHM is taken for reprocessing (the sign is (-)).
After the data are entered on a “Storages” form the links to the storage can be
edited from the “Technologies” forms. A click on the “consa” button opens a window
to edit data of discharged core fuel put into cooling storage (Fig.6). But whatever
form is used for data editing the signs of the input values must be assigned as
described above.
It should be noted that a simplified approach to a cooling storage modeling is
used in our example. A cooling storage is considered as a single installation which
accumulates all the spent fuel of a certain type. The volume of cooling storage
calculated with MESSAGE should be interpreted as cumulative spent fuel repository
at all nuclear power stations of the type considered. In case of FR there are two
Annexure C-8

storages: one of them accumulates core spent fuel and the other one accumulates
blanket spent fuel discharged from all FRs. In reality a cooling storage is a part of
nuclear power station built and put into operation at one time with a nuclear reactor. A
user can model individual storages construction using additional user defined
relations.

## Fig.6 Link to FR core spent fuel cooling storage.

MESSAGE allows to model direct fuel discharge from a reactor to storage only for a
fuel selected as the main input.
For the fuel selected as a secondary input (in our case it’s blanket fuel) the
spent fuel discharge to a storage is modelled using an additional dummy technology
(F_bl_dummy) which converts the secondary output into the main input. The
discharged blanket fuel (FR secondary output on the FR technology activity form as it
is shown on Fig.7) is transmitted to an auxiliary energy form F_bl_cool (see the
referenced diagram). The same way as for the main input and a secondary input, the
data for a secondary output is related to all the main output value. In our example 8
tHM of spent blanket fuel is discharged from the reactor per 640 MWyr of annual
electricity production.

## The dummy technology F_bl_dummy delivers discharged blanket fuel from

the energy form F_bl_cool to the FR blanket cooling storage (F_bl_cool_st). Since
the dummy technology just transmits all the spent blanket fuel available at the energy
form F_bl_cool and no transformation of the fuel flow happens the main input and
output of the dummy technology and the value of the spent blanket fuel it delivers to
the FR blanket cooling storage are equal to 1 (Fig. 8).
Annexure C-9

## Fig. 9 shows FR blanket cooling storage (F_bl_cool_st) screen and “Entries”

window with entered data for corresponding linkages. As blanket spent fuel contains
fissile Pu isotopes that can be used for FR core fuel production it is sent to the
Annexure C-10

reprocessing plant after retaining for 4 years in the blanket cooling storage. Here
again we have the opposite signs of the input data. The reprocessing technology
FR_repr takes some amount of blanket spent fuel (-6.01 tHM) from the storage and
the dummy technology puts to the storage a unit of blanket spent fuel (+1 tHM).

## C.4. Spent fuel reprocessing data.

In our example we have two reprocessing plants because LWR spent fuel and FR
spent fuel has different isotope composition and requires different management.
According to the scheme described (see the referenced diagram) fissile Pu extracted
at both reprocessing plants is used for FR core fuel production. Reprocessed U is a
by-product which doesn’t return to the cycle. It accumulates in two separate storages
linked to the according reprocessing plants. Radioactive wastes of high level activity
(HLW) from both LWR and FR reprocessing plants are delivered to a HLW storage.
Fig. 10 shows a screen with the data used for FR reprocessing plant (FR_repr)
modelling. In our example we assumed that core and blanket spent fuel are
reprocessed together. To produce 1 tHM of reprocessed Pu the technology requires
5.89 tHM of spent core fuel and 6.01 tHM of spent blanket fuel. Both values are
negative since these are amounts of fuels taken from the cooling storages. The
quantity of HLW extracted per 1 tHM of Pu produced through the reprocessing
process and put into the storage HLW_stor is 0.5 tHM; 10.9 t HM of reprocessed U
per 1 tHM of Pu is delivered to the storage repr_U_FR. The balance of incoming and
outcoming flows differs by quantity of even isotopes of Pu which are not taken into
consideration.
Annexure C-11

The same approach is used to model LWR spent fuel reprocessing plant
(Fig.11). 122 tHM of LWR spent fuel is taken from LWR interim storage (L_int_stor)
to produce 1 tHM of fissile Pu. 4 tHM of HLW and 95 tHM of reprocessed U per 1
tHM of Pu are put in HLW storage and LWR reprocessed U storage.

Annexure C-12

## C.5. Fuel production modelling.

In the nuclear fuel cycle considered we have 3 different fuel types: FR core
fuel (PuO2), FR blanket fuel (UO2 – depleted U) and LWR fuel (UO2 – enriched U).
No U is required for FR core fuel production as Pu is a product of nuclear
breeding. According to the refferenced scheme Pu extracted at LWR and FR spent
fuel reprocessing plants is delivered to the energy form “Reprocessed Pu” and is used

Annexure C-13

## for FR core fabrication at FR_core_fabr. technology as Fig .12 shows.

To produce 1 tHM of FR core fuel 0.17 tHM of reprocessed Pu is required.

Unlike FR core fuel to produce LWR fuel and FR blanket fuel U is required.
The same chemical composition of uranium– UO2 – is used for LWR and FR
blanket fuel production. But because of different U235 containment these are different
types of fuel.
In our example FR blanket is loaded with depleted U which is the by-prodact
of the enrichment process. As shown in Fig. 13, we use FR_blank_prod technology to
model FR blanket fuel production. The technology takes 1tHM of depleted U from a
depleted U storage depleted_U_stor to produce 1tHM of FR blanket fuel.
To produce LWR fuel enriched U is required. As a fuel production process
doesn’t include a step of nuclear material preparation, no changes in nuclear fuel flow
happens at this step and the same approach as for modelling FR blanket fuel
production can be used to model LWR fuel production (see Fig. 14).

## The technology LWR_fuel_prod consumes 1 tHM of enriched U to produce 1t HM of

LWR fuel. Zr consumption, which is the construction material for LWR fuel
assemblies production can be modelled as a secondary input of LWR_fuel_prod.

## C.6. Enrichment modelling

As was stated above LWRs (and some other reactors) use enriched U as a
nuclear fuel and the content of fissile isotope of U – U235- is different for different
types of reactors.
Annexure C-14

## Two components are necessary to get enriched U: natiral U (U235 content is

0.714%) and some effort (enrichment work) needed to separate U235 and U238.
Enrichment is expressed in terms of the separative work unit (SWU), which is a
measure of the amount of work performed in separating the two isotopes. The number
of SWUs required to produce fuel depends not only on the quantity and enrichment
required, but also on the enrichment of the feed (usually 0.00714) and the tails assay,
which is a measure of the amount of U235 remaining with the depleted steam.

(1) In order to generate a unit of fuel with the enrichment equal to x from
natural uranium, provided that content of 235U in depleted uranium is xdep,
G=
x − x dep (1)
0 . 00714 − x dep
units of natural uranium are required.

(2) To produce a unit of fuel with the enrichment equal to x from natural uranium,

## x − 0 . 00714 x − x dep (2)

SWU = V ( x ) + V ( x dep ) − V ( 0 . 00714 )
0 . 00714 − x dep 0 . 00714 − x dep
SWUs are required,
⎛1− X ⎞
V ( X ) = (1 − 2 X ) ln⎜ ⎟
where ⎝ X ⎠ is the so-called separation potential.

## In our example LWR fuel enrichment is x=0.044, the content of U235 in

depleted uranium is xdep =0.0021.
From formula (1) we obtain G=8.313 tHM are needed to produce 1 tHM of
LWR fuel.
According to formula (2) 7.25 SWU are required to produce a unit of LWR
fuel. Enrichment work can be measured in kilograms of separative work:
1kgSW=1SWU, so in our case 7.25 tSW are required to produce 1 tHM of LWR fuel.
It is suggested in our example that depleted U is used for FR blanket fuel
production, so we should know depleted U output from enrichment process. It can be
calculated using the following formula:

x − 0 . 00714 (3)
G dep =
0 . 00714 − x dep
For our data formula (3) gives 7.24 tHM of depleted U per 1 tHM of LWR
fuel.
Annexure C-15

## In the technology enrichment used to model the enriched U production

(Fig.15) natural U is consumed from the “Recourses” level as the main input. To
model a source of SWU consumed by the secondary input a dummy technology SWU
is included in the nuclear fuel cycle model (see the referenced diagram). As shown in
Fig. 14, the SWU technology doesn’t have input. It produces and delivers to the to the
energy form “SWU” as much SWU as the technology enrichment requires.

Annexure C-16

## As mentioned above the by-product of the enrichment process is depleted U which is

used for FR blanket fuel production (see Fig. 13).

## MESSAGE gives two possibilities for NFC lags modelling: lags on

technology outputs and storage retantion time. Depending on the problem considered
a user can choose one of them or use both in the same case.
Secondary
Fuel Secondary Fuel

cooling pond

LWR cooling
storage

L_dummy
Reprocessing
LWR interim
storage

## L_dummy LWR interim

LWR fuel storage
L_dummy electricity Spent_f_
LWR fuel LWR L_dummy electricity

## Fig. 17 Separate LWR cooling Fig 18 LWR with cooling pond

storage

For example reactor cooling pond can be modelled as a separate storage (as in
the referenced case, see also Fig 17). In this case the time lag because of mandatory
cooling of outloaded spent fuel is modelled by retantion time variable which is one of
the MESSAGE input data for storage.
After cooling time (retantion time in cooling storage) LWR spent fuel is
delivered to the interim storage by transport technology (Ldummy) (see the referenced
case scheme).
The corresponding MESSAGE data input is given in Fig 19 (a,b,c). It is
assumed that there is no losses during spent fuel transportation, that is for a unit of
input from LWR cooling storage Ldummy technology delivers a unit of output to the
LWR interim storage (Fig 19 (b)).
The spent fuel accumulated in the interim storage can be reprocessed and
reused in FRs (Fig 19 (c)).
Annexure C-17

Fig 19 (a) LWR spent fuel cooling time is modelled as retantion time.

Fig 19 (b) transport technology connecting LWR cooling storage and LWR interim
storage.
Annexure C-18

## Fig 19(c) LWR interim storage entries.

Another possible approach to cooling time lag modeling can be used if the
prosess of cooling pond infill is not taking into consideration (for example different

## Fig 20 Lag on LWR spent fuel discharging

Annexure C-19

reprosessing options is a central point of a study) and only time lag value is important
for the analysis.

## Fig 21 Function fix for spent_f_LWR energy form

Spent fuel discharged from the reactor can be modelled as a secondary output, and the
fuel cooling in this case is described with a lag parameter for the secondary output
(see Fig 20). Additional technology is needed to deliver spent fuel from the energy
form spent_f_LWR to the interim storage.
As spent fuel in our case must be delivered to the interim storage, MESSAGE
function fix should be used for spent_f_LWR energy form (Fig 21).

## C.8. Helpful information on reactor data preparation.

The reactor data used in the example considered above was taken from [Ref.3]
as the data presented this report are the most sutable for MESSAGE data format. But
the information resources (reactor data bases, reports, articles etc.) a user may need to
get for an original research work can contain reactor data prepared in a format which
differs from the MESSAGE one. Usually the data in reactor data bases are more
detailed reactor parameters than the data to be entered in MESSAGE. Sometimes an
annual nuclear fuel reload or first core load can be unavailable. If so these input
MESSAGE data can be calculated by the following simple formulas:

365 ⋅ W ⋅ ϕ
Gx = for annual nuclear fuel reload, where
η⋅B
Gx [tHM] is the fuel consumption for annual refueling,

Annexure C-20

## η is the plant (reactor) efficiency.

W ⋅ Teff
Gf = for a first core load, where
η⋅B
Teff [day] is mean nuclear fuel residence time.

## Fig.22 LWR activity data.

The installed capacity for LWR we present in our example is 1000 MW, the capacity
factor is 0.8, the efficiency is 0.31 and the fuel burn-up is 41000 MWd/tHM.
According to the formula for annual nuclear fuel reload
(365*1000*0.8/(0.31*41000)=23) 23 tHM are required to produce 800 MWyr of
electricity. As was stated above the annual spent fuel reload should be calculated as
23/800= 0.02875 tHM/MWyr. As Fig.22 shows this annually reloaded spent fuel is
delivered to LWR cooling storage.

If Teff is given ( Teff = 890 days for LWR fuel in our case), a first core load can
be calculated using the correspondent formula G f =1000*890/(0.31*41000)=70 tHM.
For MESSAGE input data a specific first core load should be used :
70 tHM/1000 MW = 0.07 tHM (see Fig. 23).
Annexure C-21

## C.9. Fuel cycle costs

The estimated costs for NFC given in different publications varies in wide
range. Table 1 contains a set of NFC cost data that can be used for MESSAGE
calculations.

## Fuel cycle steps Reactor type Unit Cost (\$/unit)

Uranium LWR kg U 20 – 80

Annexure C-22

## LWR spent kgHM 300 - 600

fuel
Final disposal
HLW kgHM 80 - 200

## The following problem, which can be classified as a Material Flow Analysis

problem, was formulated and solved, as MESSAGE nuclear fuel cycle modelling
exercise, to illustrate the modeling scheme functioning:
to find out the nuclear system structure with maximum possible share of FR
provided that no initial Pu volume is available. The optimisation period is 50 years
with a year step.
The calculation results are given.
Fig. 17 shows the nuclear system structure provided that all fissile Pu is
recycled and used for FR core fuel production.

## Fig. 24 Referenced nuclear system structure in case of complete Pu consumption.

New installed capacity construction for the system structure obtained is shown
in Fig 25 and 26.
Annexure C-23

According to the model assumptions nuclear power plants built in 1995 had
exhausted their technical resource by 2035 and must be decommissioned and
substituted with the new power plants. This is the reason for the peak in 2035 for
LWR new installed capacities (Fig. 25).

Fig. 25 LWR new installed capacities. Fig. 26. FR new installed capacities.

Nuclear fuel production of LWR fuel and FR fuel (core and blanket) is
presented in Fig. 27. In Fig. 28 fissile Pu quantity used for FR core fuel production
can be seen.

## The volumes of accumulated reprocessed U and HLW calculated for the

referenced case are presented in Fig. 29.
Annexure C-24

## Fig. 29. Volumes of reprocessed U and HLW accumulated in the corresponding

storages.

b) Multi-region problem

## The multi-regional case contains 4 regions:

1) a region which has closed NFC and can provide any kind of fuel services;

## 3) a region with LWR park and domestic uranium resources;

4) a region with LWR park, domestic nuclear fuel production and interim
storage.

Region 1:
all fuel cycle services

Enriched U
LWR
fuel SF
LWR
SF U fuel LWR park,
fuel production,
LWR SF storage
park LWR park,
U resources

Annexure C-25

Annexure C-26

## Fig 34 Reg. 1 system structure Fig 35 Reg. 1 system structure

(Reg 1 is a separate region) (Reg. 1 is a part of the multi-regional case)

## Fig. 31 – 35 present the results of the multi-regional case calculations. Fig. 31

and 32 is to show the scale of general energy demand and nuclear electricity
production.
Fig 34 and 35 demonstrate the influance of the fuel services produced by
region 1 on it’s energy system structure.
Annexure C-27

C.11. Conclusions

MESSAGE can be applied for nuclear fuel cycle modeling, both once-throug
and closed options. All specific features of nuclear fuel cycle can be taking into
account:

## • material flows of nuclear (fuel compositions, separate elements or isotopes)

and structure materials through all the steps of nuclear fuel cycle can be
described;
• nuclear fuel cycle time lags can be modelled by MESSAGE technology
variable lag or storage variable retantion time;
• any type of storages (cooling, interim, final disposal) can be modelled;
• nuclear reactor can be described as multi-zone installation.
Nuclear power station can be considered as a multi-production technology,
that is special application of nuclear power (hydrogen, high temperature,
dessolination) can be modelled.

## It should be stressed that as MESSAGE uses annual average values as input

data, only steady state of nuclear reactors operation and NFC flows can be modeled.

Isotopic composition changes for separate isotopes can be taken into account
privided that reactor calculations data for different steps of fuel cycle are available.

## For innovative nuclear reactors prospects comparison the time horison up to at

least 120 years with one year time steps should be available.

References

## 2. R.G. Cochran, N. Tsoulfanidis. The Nuclear Fuel Cycle: Analysis and

Management, 2nd Edition, 1999. ANS Order #: 350015.

## 3. ISTC Project #369 "Study on the Feasibility and Economics of the

Use of Ex-Weapons Plutonium and Civil Plutonium as Fuel for both
Fast and Thermal Reactors". Final Report on Direction 4 "System
Analysis of Various Options of Plutonium Utilization". International
Science and Technology Centre, Moscow, 1998.

## 4. M. Bunn, S. Fetter, J.P. Holdren, B.van der Zwaan. The Economics of

Reprocessing vs. Direct Disposal of Spent Nuclear Fuel. Final Report 8/12/1999-
7/30/2003, DE-FG26-99FT4028, Harvard University.

5. Country Nuclear Fuel Profiles. Technical Reports Series No. 404, IAEA, Vienna,
2001.

## 6. The Economic Future of Nuclear Power. A Study Conducted at the University of

Chicago, August 2004.