{"id":16,"date":"2024-01-10T22:00:00","date_gmt":"2024-01-10T22:00:00","guid":{"rendered":"https:\/\/greoux.re\/explore\/?p=16"},"modified":"2024-01-10T22:00:00","modified_gmt":"2024-01-10T22:00:00","slug":"ieso-setup-guide","status":"publish","type":"post","link":"https:\/\/greoux.re\/explore\/ieso-setup-guide\/","title":{"rendered":"IESO Setup Guide"},"content":{"rendered":"\n<!--more-->\n\n\n<div class=\"alert alert-light\" role=\"alert\">\n<div style=\"line-height: 1.75;\">\nRecommended Citation:<br\/>\nGr\u00e9oux Research. (2024). IESO Setup Guide. Online Article.<br\/>\n<a href=\"https:\/\/greoux.re\/explore\/ieso-setup-guide\/\">https:\/\/greoux.re\/explore\/ieso-setup-guide\/<\/a>\n<\/div>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Introduction<\/h4>\n\n\n<p>This article provides a guide on how to set up and run the <a href=\"https:\/\/github.com\/greoux-research\/ieso\" rel=\"noreferrer noopener\" target=\"_blank\">Integrated Energy Systems Optimiser<\/a> (IESO), a linear optimiser-based energy system modelling environment designed to support initial investigations such as options evaluation and trend analysis.<\/p>\n\n\n<div class=\"vsep1\"><\/div>\n<div class=\"text-center\">\n<div class=\"button\">\n<a class=\"btn btn-lg btn-primary\" href=\"https:\/\/github.com\/greoux-research\/ieso\" rel=\"noopener\" target=\"_blank\">\n<i class=\"bi bi-github\"><\/i>\n\u00a0\nGet IESO\n<\/a>\n<\/div>\n<\/div>\n<div class=\"vsep1\"><\/div>\n\n\n<p>IESO&#8217;s modelling approach is described in <a href=\"https:\/\/greoux.re\/explore\/ieso-modelling-approach\/\" rel=\"noreferrer noopener\">this article<\/a>. Its IO file structure is documented <a href=\"https:\/\/greoux.re\/explore\/ieso-io-file-structure\/\" rel=\"noreferrer noopener\">at this link<\/a>.<\/p>\n\n\n<p>IESO is implemented in Python 3 and doesn&#8217;t require direct installation itself. However, it relies on external libraries: <a href=\"https:\/\/developers.google.com\/optimization\/install\" rel=\"noreferrer noopener\" target=\"_blank\">OR-Tools<\/a>, <a href=\"https:\/\/numpy.org\/install\/\" rel=\"noreferrer noopener\" target=\"_blank\">NumPy<\/a>, and <a href=\"https:\/\/matplotlib.org\/stable\/users\/installing\/index.html\" rel=\"noreferrer noopener\" target=\"_blank\">Matplotlib<\/a>, which need to be pre-installed.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Creating a virtual environment for IESO<\/h4>\n\n\n<p>We highly recommend creating a virtual environment for IESO to isolate project dependencies and avoid conflicts with other Python projects on your system.<\/p>\n\n\n<p><span class=\"spotlight\">macOS and Ubuntu Linux<\/span><\/p>\n\n\n<p>1. On macOS, the <code>python3-venv<\/code> package should be available by default. On Ubuntu Linux, the package is installed using the command line:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/0f74f9ca41f7d62e72f1226be3dc32dd.js\"><\/script>\n<\/div>\n\n\n<p>2. Create the IESO virtual environment:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/e73056c9c985d8d83c83c508771dc6a6.js\"><\/script>\n<\/div>\n\n\n<p>3. Activate the virtual environment:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/f414dc3df69d5d67ff0503bd38ebe72d.js\"><\/script>\n<\/div>\n\n\n<p>4. Installing IESO dependencies:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/79f3448a0d76b3596525f8d3adba5af5.js\"><\/script>\n<\/div>\n\n\n<p><span class=\"spotlight\">Windows<\/span><\/p>\n\n\n<p>1. <a href=\"https:\/\/docs.anaconda.com\/free\/miniconda\/index.html\" rel=\"noreferrer noopener\" target=\"_blank\">Install Miniconda<\/a>.<\/p>\n\n\n<p>2. Open the Anaconda prompt and create the IESO virtual environment:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/31c067b783e69b072844ba8ed43b8c18.js\"><\/script>\n<\/div>\n\n\n<p>3. Activate the virtual environment:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/5d7ef1ce84fc681c71ba9a47d13b2d05.js\"><\/script>\n<\/div>\n\n\n<p>4. Installing IESO dependencies:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/79f3448a0d76b3596525f8d3adba5af5.js\"><\/script>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Getting IESO<\/h4>\n\n\n<p>The initial step required to run an IESO simulation is to fetch the tool <a href=\"https:\/\/github.com\/greoux-research\/ieso\" rel=\"noreferrer noopener\" target=\"_blank\">from GitHub<\/a>.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Building the IESO-embedded thermodynamic calculations tool<\/h4>\n\n\n<p>IESO includes a thermodynamic calculations tool within its &#8220;thermo&#8221; folder. This tool needs to be compiled before use:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>On macOS or Ubuntu Linux systems: Run the script <code>build.sh<\/code>.<\/li>\n\n\n<li>On Windows systems: Run the script <code>build.bat<\/code>.<\/li>\n<\/ul>\n\n\n<p>This process assumes that a C++ compiler is already installed on your device. If not, you can install it following the instructions provided below.<\/p>\n\n\n<p><span class=\"spotlight\">macOS<\/span><\/p>\n\n\n<p>On macOS, you can install the GNU Compiler Collection (GCC), which includes the GNU C++ compiler, using the Xcode Command Line Tools:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/d8fdac3c16d752d508d2d541b9afcde7.js\"><\/script>\n<\/div>\n\n\n<p><span class=\"spotlight\">Ubuntu Linux<\/span><\/p>\n\n\n<p>To install the GNU C++ compiler and other essential build tools, you can run the following command in your terminal:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/94e07230e214a1651f749662c0c4efbe.js\"><\/script>\n<\/div>\n\n\n<p><span class=\"spotlight\">Windows<\/span><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Download <a href=\"https:\/\/sourceforge.net\/projects\/mingw\/\" rel=\"noreferrer noopener\" target=\"_blank\">MinGW<\/a> and install it, ensuring that the GNU C++ compiler is included in the package.<\/li>\n\n\n<li>After installation, find the binary folder of MinGW. Usually, it is located at a path such as <code>C:\\MinGW\\bin<\/code>.<\/li>\n\n\n<li>Add the path of the MinGW binary folder to your system&#8217;s PATH environment variable.<\/li>\n<\/ul>\n\n\n<h4 class=\"wp-block-heading\">Running an IESO simulation<\/h4>\n\n\n<p>IESO is called with one or two arguments:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>The first argument (mandatory) is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\" rel=\"noreferrer noopener\" target=\"_blank\">JSON<\/a> file (we will denote it as <code>input.json<\/code>) that describes the integrated energy system optimisation problem.<\/li>\n\n\n<li>The secondary argument (optional) specifies the carbon constraint.<\/li>\n<\/ol>\n\n\n<p>The output of IESO materialises as a JSON file named <code>input.ieso.json<\/code>, structured identically to <code>input.json<\/code> but inclusive of the simulation results.<\/p>\n\n\n<p>Before running IESO, the environment needs to be set up, as described by the examples below.<\/p>\n\n\n<p><span class=\"spotlight\">macOS and Ubuntu Linux<\/span><\/p>\n\n\n<p>Open a Terminal window and run the following commands:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/039f8f983a8d8b791c9d04673ae686bb.js\"><\/script>\n<\/div>\n\n\n<p><span class=\"spotlight\">Windows<\/span><\/p>\n\n\n<p>Open the Anaconda prompt and run the following commands:<\/p>\n\n\n<div style=\"width: 100%;max-width: 600px;margin: 0 auto\">\n<script src=\"https:\/\/gist.github.com\/greoux-research\/cc24cb64be79a5ff00f62d8e72be996b.js\"><\/script>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A step-by-step guide to setting up and running the Integrated Energy Systems Optimiser (IESO), a linear-optimiser-based energy system modelling environment.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[10,12],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-tech-docs","tag-ieso","tag-modelling-and-simulation"],"_links":{"self":[{"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":0,"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/greoux.re\/explore\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}