Skip to content

Commit 0dbc2eb

Browse files
authored
Merge pull request #106 from switch-model/2.0.1
Release 2.0.1
2 parents 02aa13d + 823672e commit 0dbc2eb

File tree

58 files changed

+1663
-659
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1663
-659
lines changed

CHANGELOG.txt

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
-------------------------------------------------------------------------------
2+
Switch 2.0.1
3+
-------------------------------------------------------------------------------
4+
5+
- General
6+
- Switch is now compatible with Pyomo 5.6+ (in addition to earlier
7+
versions).
8+
- A new --no-post-solve option prevents all post-solve actions (e.g., saving
9+
variable results).
10+
- If the user specifies --reload-prior-solution, Switch now behaves as if it
11+
had just solved the model, i.e., after loading the solution, it runs post-
12+
solve code unless --no-post-solve is specified (useful for re-running
13+
reporting code), and it only drops to an interactive Python prompt if the
14+
user also specifies --interact.
15+
- A new --no-save-solution disables automatic solution-saving. This saves
16+
time and disk space for models that won't need to be reloaded later.
17+
- New --quiet and --no-stream-solver arguments cancel --verbose and
18+
--stream-solver.
19+
- A new "--save-expression[s] <name1> <name2> ..." argument can be used to
20+
save values for any Pyomo Expression object to a .tab file after the model
21+
is solved (similar to the automatic saving of variable values). This also
22+
works for Param objects.
23+
- The --include-module(s), --exclude-module(s), --save-expression(s),
24+
--suffix(es) and --scenario(s) flags can now be used repeatedly on the
25+
command line, in options.txt or in scenarios.txt. The include and exclude
26+
options will be applied in the order they are encountered, in options.txt,
27+
then scenarios.txt, then the command line.
28+
- A new --retrieve-cplex-mip-duals flag can be used to support retrieving
29+
duals for a MIP program from the cplex solver (users must also turn on the
30+
"duals") suffix. This flag patches the Pyomo-generated cplex command
31+
script to pass the "change problem fix" command to the solver and then
32+
solve a second time. This fixes integer variables at their final values,
33+
then re-solves to obtain duals. This flag is not needed with the cplexamp
34+
solver.
35+
- A new balancing.demand_response.iterative module has been added. This was
36+
formerly in the Hawaii regional package. This moduel performs iterative solutions with any convex demand system, based on a bid-response
37+
process.
38+
- New indexed sets have been added to allow efficient selection of groups of
39+
generators that use a particular technology, fuel or non-fuel energy
40+
source: GENS_BY_TECHNOLOGY, GENS_BY_FUEL, GENS_BY_NON_FUEL_ENERGY_SOURCE.
41+
- Generator capacity data is saved to gen_cap.tab instead of gen_cap.txt and
42+
rows are sorted if user specifies --sorted-output.
43+
- Even if a model has solver warnings, results will be reported and
44+
post-solve will be performed if a valid solution is available.
45+
- A more descriptive warning is given when switch_model.reporting finds an
46+
uninitialized variable.
47+
- A warning is given about potential errors parsing arguments in the form
48+
"--flag=value". Python's argument parsing module can make mistakes with
49+
these, so "--flag value" is a safer choice.
50+
- Switch now monkeypatches Pyomo to accelerate reloading prior solutions.
51+
Previously Pyomo 5.1.1 (and maybe others) took longer to load prior
52+
solutions than solving the model.
53+
- At startup, "switch solve-scenarios" will restart jobs that were
54+
previously interrupted after being started by the same worker (same
55+
--job-id argument or SWITCH_JOB_ID environment variable). Note that
56+
workers automatically pull scenarios from the scenario list file until
57+
there are none left to solve, and avoid solving scenarios that have been
58+
pulled by other workers. Each worker should be given a unique job ID, and
59+
this ID should be reused if the worker is terminated and restarted. The
60+
new behavior ensures that jobs are not abandoned if a worker is restarted.
61+
62+
- Upgrade scripts
63+
- The upgrade scripts now report changes in module behavior or renamed
64+
modules while upgrading an inputs directory. This only reports changes to
65+
modules used in the current model.
66+
- The hawaii.reserves module is automatically replaced by
67+
balancing.operating_reserves.areas and
68+
balancing.operating_reserves.spinning_reserves in the module list.
69+
- The hawaii.demand_response module is replaced by
70+
balancing.demand_response.iterative and hawaii.r_demand_system is replaced
71+
by balancing.demand_response.iterative.r_demand_system in the module list.
72+
- "switch_mod" will not be changed to "switch_modelel" if a module file is
73+
upgraded from 2.0.0b1 to 2.0.0b2 twice.
74+
75+
- Hawaii regional package
76+
- The hawaii.reserves module has been deprecated and the
77+
hawaii.demand_response module has been moved (see upgrade scripts)
78+
- Switch now places limits on down-reserves from pumped-storage hydro.
79+
- A new --rps-prefer-dist-pv option for hawaii.rps will prevent construction
80+
of new large PV until 90% of distributed PV potential has been developed.
81+
- Limits on load-shifting between hours in hawaii.demand_response_simple
82+
have been formalized.
83+
- The Hawaii storage energy cost calculation has been fixed.
84+
- Total production by energy source is reported by hawaii.save_results,
85+
ad-hoc technologies are added to production_by_technology.tsv, and
86+
hourly dispatch is disaggregated by non-fuel technologies.
87+
- Bugs have been fixed in reserve calculation for EVs and in
88+
hawaii.smooth_dispatch and hawaii.scenario_data.
89+
- hawaii.smooth_dispatch minimizes total inter-hour change instead of square
90+
of levels. The old quadratic smoothing method has been moved to
91+
hawaii.smooth_dispatch.quadratic (slow and possibly buggy).
92+
- The must-run requirement in hawaii.kalaeloa is turned off when RPS or EV
93+
share is above 75% (can be overridden by --run-kalaeloa-even-with-high-rps)
94+
- Support for nominal-dollar fuel price forecasts has been dropped from
95+
hawaii.scenario_data
96+
- A new --no-hydrogen flag can be used to deactivate the hydrogen module.
97+
- The hawaii.ev_advanced module now calculates vehicle fleet emissions.
98+
99+
-------------------------------------------------------------------------------
100+
Switch 2.0.0
101+
-------------------------------------------------------------------------------
102+
103+
First public release of Switch 2. This uses a similar framework to Switch 1,
104+
but with numerous improvements. The most significant are:
105+
106+
- Written in Python instead of AMPL language
107+
- Modular approach, so components can be easily added or removed from model
108+
- Modeling of unit commitment and part load heat rates (optional)
109+
- Generalization of sample timeseries to have arbitrary length instead of single
110+
days
111+
- Standardized reporting, e.g., automatic export of all variable values
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0b4
1+
2.0.1

setup.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
"""Setup script for SWITCH.
1+
"""Setup script for SWITCH.
22
33
Use "pip install --upgrade ." to install a copy in the site packages directory.
44
5-
Use "pip install --upgrade --editable ." to install SWITCH to be run from its
5+
Use "pip install --upgrade --editable ." to install SWITCH to be run from its
66
current location.
77
8-
Optional dependencies can be added during the initial install or later by
9-
running a command like this:
8+
Optional dependencies can be added during the initial install or later by
9+
running a command like this:
1010
pip install --upgrade --editable .[advanced,database_access]
1111
1212
Use "pip uninstall switch" to uninstall switch from your system.
@@ -36,7 +36,7 @@ def read(*rnames):
3636
description='SWITCH Power System Planning Model',
3737
long_description=read('README'),
3838
classifiers=[
39-
'Development Status :: 4 - Beta',
39+
'Development Status :: 5 - Production/Stable',
4040
'Environment :: Console',
4141
'Intended Audience :: Education',
4242
'Intended Audience :: End Users/Desktop',
@@ -45,16 +45,16 @@ def read(*rnames):
4545
'Natural Language :: English',
4646
'Operating System :: Microsoft :: Windows',
4747
'Operating System :: MacOS :: MacOS X',
48+
'Operating System :: POSIX :: Linux',
4849
'Operating System :: Unix',
4950
'Programming Language :: Python',
50-
'Programming Language :: Unix Shell',
5151
'Topic :: Scientific/Engineering',
5252
'Topic :: Software Development :: Libraries :: Python Modules'
5353
],
5454
packages=find_packages(include=['switch_model', 'switch_model.*']),
5555
keywords=[
56-
'renewable', 'power', 'energy', 'electricity',
57-
'production cost', 'capacity expansion',
56+
'renewable', 'power', 'energy', 'electricity',
57+
'production cost', 'capacity expansion',
5858
'planning', 'optimization'
5959
],
6060
install_requires=[

0 commit comments

Comments
 (0)