Skip to article frontmatterSkip to article content
README

STRE3AM

Strategic Technology Roadmapping, and Energy, Environmental, and Economic Analysis Model

Authors
Affiliations
Energy Systems and Infrastructure Analysis.
Energy Systems and Infrastructure Analysis.

Introduction

STRE3AM or stre3am is a framework for analyzing the technological makeup of a sector, e.g. manufacturing. This considers a set of technologies alongside its cost and performance descriptors, and a set of plants or assets each with its unique descriptors. The decision to adopt a technology in a particular plant is currently framed two contexts, (i) a plant retrofit, and (ii) a “new plant”[1]. These decisions are possible over a number of periods in such a way that an objective is minimized, typically Net Present Value (NPV).

The current framework is encoded into a mixed-integer linear program (MILP). It has been formulated using JuMP, which enables the use of several solvers, included open-source solvers.

stre3am is open-source and is subject to the terms of the 3-Clause BSD License.

Installation

At the Julia REPL press ] mode, then stre3am can be obtained directly from the repository as follows,

add https://github.com/ANL-CEEESA/STREAM

The stre3am directory structure

The source is organized as follows,

.
├── LICENSE
├── Manifest.toml   # julia record of pakages
├── Project.toml    # julia dependencies
├── README.md   # project readme
├── data    # data folder
│   ├── aeoCFs.jl
│   ├── egridproc.jl
│   └── prototype
│       └── prototype_0.xlsx
├── docs
│   ├── model_c # continuous model description
│   │   ├── Makefile
│   │   ├── bibl.bib
│   │   └── stre3am_c.tex
│   └── model_d # discrete model description
│       ├── Makefile
│       └── stre3am_d.tex
├── instance    # case studies folder
│   └── prototypes  # example prototypes
│       ├── prototype.jl -> prototype_310123.jl
│       └── prototype_310123.jl
├── src
│   ├── stre3am.jl
│   ├── stre3am_c
│   │   ├── coef
│   │   │   └── coef_custom.jl
│   │   ├── kern
│   │   │   └── modKern.jl
│   │   ├── matrix  # data structures
│   │   │   └── mat_struct.jl
│   │   ├── mods    # models
│   │   │   └── model.jl
│   │   ├── post    # results postprocessing
│   │   │   └── postprocess.jl
│   │   ├── stre3am_c.jl
│   │   └── utils   # this generates some useful plots
│   │       ├── coalesce_py
│   │       │   └── coalesce.py
│   │       └── plot_py
│   │           ├── generalD.py
│   │           ├── pltBar.py
│   │           ├── pltBars.py
│   │           ├── pltEm.py
│   │           ├── pltNpvAug.py
│   │           ├── pltPerTech.py
│   │           └── readExcelResults.py
│   ├── stre3am_d
│   │   ├── kern
│   │   │   └── kern.jl # model kernel
│   │   ├── mod
│   │   │   └── bm.jl  # blocked model
│   │   ├── post
│   │   │   └── postprocess.jl  # write result file
│   │   ├── stre3am_d.jl
│   │   └── util
│   │       ├── plot_py  # general plot tools
│   │       │   ├── bars.py
│   │       │   ├── fuels.py
│   │       │   ├── map_pie.py
│   │       │   └── switches.py
│   │       └── toy  # toy problem specific plots
│   │           ├── bars.py
│   │           ├── fuels.py
│   │           ├── map_pie.py
│   │           └── switches.py
│   └── utils
│       └── journalist.jl
└── test  # testing files
    ├── gestalt
    │   └── test_modKern.jl
    ├── matrix
    │   └── test_matrix.jl
    ├── mods
    │   └── test_mods.jl
    └── runtests.jl

33 directories, 64 files

Data requirements

Before running a problem, please consult the data requirements from the input page.

Prototype case study

An example case study is constructed in the prototype page.

Contributors

License

License

stre3am is licensed under the 3-Clause BSD license.

Additionally, stre3am utilizes several dependencies, which have their own licences. Refer to their respective repositories for more information about the licenses.

Footnotes
  1. A new plant is constrained by several aspcects, including the availability of empty location. Please refer to the model document.