Skip to content

update india genx - #7

Open
aneeshamanocha wants to merge 103 commits into
aneeshamanocha:indiafrom
GenXProject:Develop
Open

update india genx#7
aneeshamanocha wants to merge 103 commits into
aneeshamanocha:indiafrom
GenXProject:Develop

Conversation

@aneeshamanocha

Copy link
Copy Markdown
Owner

No description provided.

RuaridhMacd and others added 30 commits March 4, 2023 18:30
Instead of true/false according to new HiGHS+JuMP interface rule
This PR modifies the generate_model.jl file by changing the following line of code:

co2_cap!(EP, inputs, setup)

to

if setup["CO2Cap"] >= 1
		co2_cap!(EP, inputs, setup)
end
This is essential because if CO2 capacity constraints are not taken into consideration, then we don't need to execute the co2_cap!(EP, inputs, setup) function.
Currently there's a mismatch between the implementation in the code base and the doc pages regarding the minimum up time and down time. This PR fixes the documentation by starting the summation counter as $$ vCOMMIT[t] \geq \sum_{s = t-(MinUpTime-1)}^t vSTART[s]$$ instead of the $$ vCOMMIT[t] \geq \sum_{s = t-MinUpTime}^t vSTART[s]$$
Rather than keep the license block in each file, we refer readers to
the LICENSE file in the root of the repo. This is done to decrease the
total number of lines of code, to avoid the need to update the copyright
year, and to prevent developers from needing to scroll down.
* less repetition of names, etc

New feature: now *any* key-value pairs can be passed to the solver
(as long as the keys are strings). Previously, only explicitly specified
pairs could be passed.

If we really want to prevent the user from passing arbitrary settings
(say, because JuMP doesn't support them) then we should add a filter or
other validation, rather than have them silently do nothing.

* fixed a few of the default values listed in the docstrings to match
  the implementation.
Rather than start with the user settings and add defaults if these user
settings are absent, start with the default and merge the user settings
with these. The outcome is the same, but the code is much cleaner.
This also paves the way to add additional layers of user settings, such
as always using the same solver.

I removed the documentation here (for what setting means what) because it's already present in the
docs/ folder. That should be the canonical source.
In examples and documentation
Having this setting in gurobi_settings.yml passes it to the solver. This
leads to an error in Gurobi.
This commit removes this settings from the gurobi_settings.yml files.
the lists are in the form of two dataframe columns:
StartNode, EndNode
This does not change the interface at all but makes the code shorter.

Co-authored-by: Chakrabarti, Sambuddha (Sam) <sambuddha.chakrabarti@gmail.com>
Add a function to load a dataframe from our common sort of CSV file.
This helps DRY with regard to dataframe loading settings, making code
easier to read and ensuring the same options are applied everywhere.
Also, if we want to make dataframe loading smarter, now there's one
centralized place to do it.

This commit adds a feature that CSV files of different case can also be
loaded. It does not look for folders or yaml files with different cases.
For reading CSV and returning DataFrame, in a case-insensitive way
Add documentation for load_inputs

Co-authored-by: Jacob Schwartz <jacob@jaschwartz.net>
This allows sets of columns to be extracted from a dataframe into a matrix, for
columns which are in any order. Previously the columns needed to be
consecutive and in order.

For example, the ESR_1, ESR_2, ... ESR_N columns in
Energy_share_requirement.csv can now be provided in any order.
The "None" fuel type, commonly used for wind, solar, etc, is no longer
required in Fuels_data.csv files. This fixes a point of
confusion for new users (like me...) where it's actually
required to have a column called "None", filled with (presumably) all
zeros. It is automatically added to memory if it doesn't exist.
Resources which would have had a column of all 1's in
generators_variability.csv no longer need to be listed.

Note that even if there is a system without any variable
resources, a file with the Time_Index column will still be
required.
This was done previously for all the other files, I guess we missed this
one.
df[__, :][!, :col] --> df[__, :col]

df[!, :col][y] --> df[y, :col]
This should only change the behavior of the ISONE_Trizone, since all
other examples which had doubled LDS columns had them all zeros anyway.
Add JuMP macro to not waste time setting "string names" for JuMP variables; this may slightly speed up model creation.
Removes division by ModelScalingFacroe when ParameterScale is set to 0, to express the COR emissions in tons (instead of kilotons).
sambuddhac and others added 7 commits April 27, 2023 14:22
By multiplying by the ModelScalingFactor
y in keys(EP_cur[c]) is a DenseAxisArray key, to extract the index we need to have y[1], as already done also on line 350 in function fix_capacity_tracking.
Add an `ID` column.
Turn off ModelingToGenerateAlternatives
cfe316 added 3 commits April 27, 2023 16:24
CapResPeriodLength is not implemented now.
No need for a warning.
GenX does not actually have any binaries or scripts --- files starting with `#!/usr/bin/julia` or similar --- so having the executable permission bit set is not actually necessary. The only executable that GenX uses currently is the user's installation of `julia`.

This commit unsets the executable bit for many GenX files.
* Add docs for using run_genx_case!

* Add docs section on running separate TDR
github-actions Bot and others added 15 commits May 18, 2023 16:46
…at) (#447)

Co-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org>
Because of the new default settings, the first term would always
evaluate to false. It can be removed.
Also remove a wayward Project.toml file and a random lock file
…ag (#426)

Eliminate the OperationWrapping flag, and keep the TimeDomainReduction flag.
In the past, certain combinations of the two flags would be required to run full-year cases, or cases with pre-clustered data, or cases where GenX performs the clustering. This was very confusing and led to serious, silent errors.

Now, use TimeDomainReduction=1 if you want GenX to perform clustering and use the results. This will put clustered results in the TDR_Results folder.
Use TimeDomainReduction = 0 if you want an external program (like PowerGenome) to generate reduced time series, or for full-year cases.

Adds functions to validate the time series construction and makes sure that the inputs are self-consistent.

Time series "weights" are always loaded, so expect the `time_weights.csv` output file for all cases.
Not overwriting results (0) is the typical setting in the examples.
* Slack variables documentation update

Added the documentation file slack_variables_overview.md and updated the example folder to include the max cap requirement.

* Update to slack variables documentation

Fixed column names in Maximum_capacity_requirement.csv example, added new lines in documentation file, removed backup file.

* Update make.jl

Include reference to slack variables documentation

* Add new lines to slack_variables_overview.md
#444)

* Update README.md and doc pages for version bump to v0.3.5 and environment upgrade

* Update Project.toml

* Update how_to_run_genx.md

* Update make.jl

* Update Project.toml

* Update Project.toml

reinstate backward compatibility

* Update changelog

---------

Co-authored-by: Jacob Schwartz <jacob@jaschwartz.net>
* Update make.jl to update the documentation pages for GenX v0.3.5

Doc page upgrade: moving the input output before additional tools, fleshing out the multistage, getting rid of/adding content to the missing content in doc pages.
Better integrating multi-stage expansion instructions and file content and format.

---------

Co-authored-by: Jacob Schwartz <jacob@jaschwartz.net>
To set the frequency of environment upgrade to monthly
@GenXProject
GenXProject deleted the Develop branch August 2, 2023 15:12
@GenXProject
GenXProject restored the Develop branch August 2, 2023 15:20
@sambuddhac
sambuddhac deleted the Develop branch August 2, 2023 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants