Releases: TulipaEnergy/TulipaEnergyModel.jl
Releases · TulipaEnergy/TulipaEnergyModel.jl
v0.7.0
TulipaEnergyModel v0.7.0
Merged pull requests:
- Add long and short storage asset constraints (#498) (@datejada)
- Update feature.md (#500) (@gnawin)
- Add memory table to the benchmark report (#504) (@abelsiqueira)
- Add storage level between (intra) representative periods to the outputs (#511) (@datejada)
- Change storage type definition to use boolean instead of strings (#515) (@datejada)
- Add optimization problem size info to the display of
EnergyProblem
(#519) (@gnawin) - Use multiple profile types (#521) (@abelsiqueira)
- Add partitions for base_periods and create separate partitions and profiles files (#524) (@abelsiqueira)
- Add minimum and maximum storage level limits (#527) (@datejada)
- Rename flow columns in the constraints dataframes to ignore the suffix _lowest and _highest (#528) (@abelsiqueira)
Closed issues:
- Add the constraints for short- and long-storage in the model (#456)
- Consider refactoring the names of the incoming and outgoing flows (#468)
- Update the features explanation in the documentation (#480)
- Update the GitHub actions for testing in the main branch (#481)
- Update benchmark to show memory (#502)
- Change the temporal structure of the inter period constraints to be more similar to the partitions in the intra period constraints (#507)
- Add the new
storage_level_intra_rp
results to the outputs (#509) - Show more solver info in
run_scenario
(#510) - Add a new
spillage
variable for thestorage_inter_rp_balance
(#512) - Change the storage type to boolean (e.g.,
is_long
) instead of a string (#514) - Create new files to store the different kinds of profiles (#516)
- Improve the pre-filled contents of the csv files (#520)
- Refactor the base periods to have partitions and add base period profiles (#522)
- Add constraints for the limits for storage in the base periods (#523)
v0.6.2
TulipaEnergyModel v0.6.2
Merged pull requests:
- Implement all different resolutions (#469) (@abelsiqueira)
- Update logo (#476) (@greg-neustroev)
- Remove plotting part and link them to new repo (#479) (@gnawin)
- Display timer for energy problem (#482) (@gnawin)
- Improve docs for
EnergyProblem
(#483) (@gnawin) - Update CITATION.cff (#485) (@abelsiqueira)
- CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#487) (@github-actions[bot])
- CompatHelper: add new compat entry for OrderedCollections at version 1, (keep existing compat) (#488) (@github-actions[bot])
- Save the complete solution to CSV (#491) (@abelsiqueira)
- Replace Cbc by GLPK in the tutorial (#493) (@abelsiqueira)
- Implement Solution structure and add to EnergyProblem (#494) (@abelsiqueira)
- Remove nightly from tests (#496) (@abelsiqueira)
- Update codecov action to v4 (#497) (@abelsiqueira)
Closed issues:
- Create a function to export the whole solution to file (e.g., CSV, parquet, JSON, etc.) (#295)
- Check if JuMP is threaded (#338)
- Change the
compute_rp_partition
function strategies (#344) - Update CodeCov action to v4 (#445)
- Move TulipaPlots to separate repo (#451)
- Update the logo (#460)
- Improve the EnergyProblem documentation (#471)
- Add to the EnergyProblem structure the time to create the problem and the time to solve (#474)
- [BUG] - Can't build documentation locally (#478)
- [BUG] Remove Cbc from documentation (#490)
- Create Solution structure and add to energy model (#492)
v0.6.1
TulipaEnergyModel v0.6.1
Merged pull requests:
- Spellcheck & grammarcheck for how-to-use (#433) (@clizbe)
- Added inline backticks to avoid italics from underscores (#439) (@clizbe)
- Update the CSV files for the test case studies (#441) (@datejada)
- Always attach efficiencies to flows (#442) (@gnawin)
- Add input data for seasonal storage (i.e., long-term storage) (#446) (@datejada)
- Don't test using Cbc to prevent error on Mac M1 (#448) (@abelsiqueira)
- Export EnergyProblem in structures.jl (#464) (@datejada)
- Release 0.6.1 (#465) (@datejada)
Closed issues:
- Make plots dependencies optional (#424)
- [BUG] - Parsing underscores in documentation (#434)
- Always attach efficiencies to inflows and outflows (#436)
- Update the columns in the CSV input files of the case studies (#440)
- Tests fail on Mac with M1 chip (#447)
- Update the input data and read it into the model for the linked-representative days (#455)
- [BUG] - The
EnergyProblem
is not exported in the model (#463)
v0.6.0
TulipaEnergyModel v0.6.0
Merged pull requests:
- Comment out direct_usage from benchmarks.jl to allow comparison in the EU case (#401) (@abelsiqueira)
- Only run Benchmark if not in a fork and document (#405) (@abelsiqueira)
- Use DataFrames to linearize indices (#407) (@abelsiqueira)
- Split CONTRIBUTING out of README.dev (#410) (@clizbe)
- Change display of EnergyProblem variable (#413) (@gnawin)
- Add an extra condition to only include files ending with .jl (#416) (@datejada)
- Update EU data with West Europe (#418) (@abelsiqueira)
- Minor edits in dev.md (#420) (@gnawin)
- Fix running codecov only on ubuntu-latest for Julia 1 (#423) (@abelsiqueira)
- Added CONTRIBUTING ref to README (#425) (@clizbe)
- Add function to compute duals (#427) (@datejada)
Closed issues:
- Map ESDL to a Julia data structure (assets data, flows data, and graph) (#89)
- Add tests for convergence and correctness (#114)
- Produce feedback for failed benchmark runs (#234)
- Profile the problem solving (#294)
- Implement show for the EnergyProblem type (#321)
- Add prices to the solution of the model (#328)
- [BUG] Benchmark action is still not working or broken again (#403)
- Split README.dev into 2 docs (#406)
- On runtests.jl, only include files ending with .jl (#409)
- Consider using a dummy variable for the initial energy storage level (#412)
- Rearrange some instructions in dev.md (#417)
- The western EU case results in an infeasible optimization problem (#419)
- Add CONTRIBUTING to Contributing section of Readme (#421)
- [BUG] - The codecov badge in the README.md status is unknown (#422)
v0.5.2
TulipaEnergyModel v0.5.2
Merged pull requests:
- 191 plot functions (#360) (@clizbe)
- Add verbose option to run_scenario (#361) (@clizbe)
- Updates on the feature section (#363) (@datejada)
- Update EU data with rep-periods-data.csv (#365) (@abelsiqueira)
- Update features.md (#367) (@g-moralesespana)
- Allow passing a different optimizer and attributes (#368) (@abelsiqueira)
- Refactor model.jl into create-model.jl and solve-model.jl (#370) (@abelsiqueira)
- CompatHelper: add new compat entry for MathOptInterface at version 1, (keep existing compat) (#375) (@github-actions[bot])
- Test the Norse case with solvers HiGHS and SCIP (#377) (@abelsiqueira)
- default_parameters now dispatches on Val types (#379) (@abelsiqueira)
- Test Norse with Cbc and GLPK and conditionally with SCIP (#380) (@abelsiqueira)
- Added pkg install & minor edits (#382) (@clizbe)
- Create function to read parameters from file (#384) (@abelsiqueira)
- Add stable doc badge (#386) (@abelsiqueira)
- Add logo to the documentation (#387) (@datejada)
- Add option to have both integer and continuous investments (#388) (@datejada)
- CompatHelper: add new compat entry for TOML at version 1, (keep existing compat) (#389) (@github-actions[bot])
- CompatHelper: add new compat entry for GraphMakie at version 0.5, (keep existing compat) (#390) (@github-actions[bot])
- CompatHelper: add new compat entry for Colors at version 0.12, (keep existing compat) (#391) (@github-actions[bot])
- CompatHelper: add new compat entry for Plots at version 1, (keep existing compat) (#392) (@github-actions[bot])
- CompatHelper: add new compat entry for CairoMakie at version 0.11, (keep existing compat) (#393) (@github-actions[bot])
- Add option to have the initial storage level as free value (#394) (@datejada)
- Update benchmark action (#395) (@abelsiqueira)
- Updated plot tutorial and minor docs fixes (#398) (@clizbe)
- Added strict flag to check all assets have partition data (#399) (@clizbe)
- Add log file (#400) (@gnawin)
- CompatHelper: add new compat entry for TimerOutputs at version 0.5, (keep existing compat) (#402) (@github-actions[bot])
Closed issues:
- Compare output to expected output (#35)
- Add tests using multiple solvers (#113)
- Create function to plot (#191)
- Add an input column for assets and investments to select MIP or LP investments (#214)
- Improve comment of run-benchmark (#235)
- Include solver & options in call to optimize (#246)
- Add a strict flag to reading partition data that disallows missing assets (#290)
- Add option to set the initial stored energy free (#296)
- Test @expression vs Dict for the calculation of flow_max_capacity (#305)
- Create a log file recording the time spent for every step of the workflow (#308)
- Add
verbose
option to therun_scenario
function (#309) - Add to the documentation how to use commercial solvers (i.e., Gurobi, Xpress, Cplex) (#312)
- Add a new section in the features in the documentation for the graph representation (#346)
- Give option to rerun model with fixed integer variables to produce duals (#353)
- [BUG] The EU data is not up-to-date (#364)
- Refactor model.jl into create-model.jl and solve-model.jl (#369)
- Update How to Use: Install section (#372)
- Allow reading solver options from a file (#373)
- Explain how to use different solvers and set different options in the documentation (#374)
- Change how the default solver parameter function works (#376)
- [BUG] SCIP doesn't work on Windows so testing fails (#378)
- Update Plotting section of tutorial to include new plot functions (#381)
- Add Tulipa logo to docs (#383)
- Add stable doc badge (#385)
v0.5.1
TulipaEnergyModel v0.5.1
Merged pull requests:
- CompatHelper: bump compat for MetaGraphsNext to 0.7, (keep existing compat) (#347) (@github-actions[bot])
- Update the explanation of the features (variable time resolution) (#348) (@datejada)
- Reduced run_scenario from 2 functions to 1 with same functionality (#349) (@clizbe)
- Remove obsolete function
resolution_matrix
(#354) (@gnawin) - Change the RP input structure (#356) (@greg-neustroev)
- Refactor transport capacity (#357) (@gnawin)
- Release 0.5.1 (#362) (@gnawin)
Closed issues:
- Change the Tulipa logo (#99)
- Update text across repos (#251)
- Update formulation in the documentation with the ranges/matrices (#256)
- Document structures with examples (#298)
- Change the rep-periods-data.csv structure to allow time-linking constraints (#336)
- Merge two
run_scenario
functions into one (#343) - Transport assets export/import capacity refactor (#345)
- Obsolete function
resolution_matrix
(#351)
v0.5.0
TulipaEnergyModel v0.5.0
Merged pull requests:
- Update readme dev (#248) (@greg-neustroev)
- Add Greg to citation (#249) (@greg-neustroev)
- Added coverage to gitignore (#250) (@clizbe)
- Manually filter the partitions that intersect (#252) (@abelsiqueira)
- Implement graph structure (#254) (@abelsiqueira)
- Deleted redundant row from Norse flow data (#259) (@clizbe)
- Increase .JuliaFormatter margin to 100 (#260) (@abelsiqueira)
- Fix summation of flow profile over time block (#265) (@abelsiqueira)
- Add profiles to graph structure (#267) (@abelsiqueira)
- Remove id from CSV files and use the asset name explicitly (#270) (@abelsiqueira)
- Move partitions to inside the graph structure (#272) (@abelsiqueira)
- Create a structure for representative periods (#273) (@abelsiqueira)
- Create EnergyModel structure (#274) (@abelsiqueira)
- Added Lauren's ORCID to CFF (#276) (@clizbe)
- Store the solution inside the graph structure and the objective value inside the problem struct (#277) (@abelsiqueira)
- Rename ...energy_model... to ...energy_problem... (#283) (@abelsiqueira)
- Return all variables in the solution and pass the solution to save output (#284) (@abelsiqueira)
- Move the constraints partitions to EnergyProblem (#285) (@abelsiqueira)
- Move model to inside the EnergyProblem structure (#286) (@abelsiqueira)
- CompatHelper: add new compat entry for MetaGraphsNext at version 0.6, (keep existing compat) (#287) (@github-actions[bot])
- Include the investment potential (#297) (@datejada)
- Allow user to decide whether to use EnergyModel or not (#299) (@abelsiqueira)
- Fix objective function calculation of the variable cost (#301) (@datejada)
- Add Tiny case study with variable resolution (#302) (@clizbe)
- Update gitignore file (#304) (@datejada)
- Update benchmarks (#311) (@abelsiqueira)
- Add profiling.jl and instructions (#314) (@abelsiqueira)
- Don't sort profile to avoid memory allocation (#315) (@abelsiqueira)
- Improve computation of rp partition (#317) (@abelsiqueira)
- Add duration of the block to the upper and lower bound of the flows (#318) (@datejada)
- Use graph functions to find in and out neighbors of assets (#319) (@abelsiqueira)
- Change capacity constraints to be defined in the lowest resolution (#322) (@datejada)
- Document structures, how to use, and tutorial (#323) (@abelsiqueira)
- Short tutorial on writing to a CSV and plots (#330) (@abelsiqueira)
- Small fix on benchmarks (#331) (@abelsiqueira)
- Filter B_flow in the highest resolution expressions (#333) (@abelsiqueira)
- Avoid creating a dataframe of unique values in IO (#335) (@abelsiqueira)
- Add simple EU case input data to benchmark folder (#337) (@gnawin)
- Made documentation cleaner and more navigable (#339) (@clizbe)
- Remove obsolete function
create_graph
(#341) (@gnawin) - Add flexible time resolution to the documentation (#342) (@datejada)
Closed issues:
- Compare using NamedTuples instead of Dict for the parameters (#36)
- Data structures to JuMP Model (#61)
- ESDL to CSV (#88)
- CSV to data structures (#94)
- Create
struct
to hold the Asset and Flow attributes (#105) - Create a graph with the data structure (#106)
- Decide whether to use DataFrames as data structures or actual structs (#118)
- Use ids in the model formulation instead of node_name (#125)
- Refactor the flow definition in the i/o and the model (#183)
- Add a parameter and constraint in the model to include a max investment limit (#197)
- Check if filtering the time intervals improves the speed of the model (#220)
- Investigate whether using the matrix for time resolutions is a good idea (#221)
- Create a new tiny test using different time resolutions (#225)
- Update README.DEV (#238)
- Add Greg to the CITATION.cff (#242)
- Add to the gitignore the folder /coverage (#245)
- [BUG] - Norse data has repeated flow (#253)
- Add Lauren's ORCID to the CFF (#258)
- Store the profiles in the graph structures (#261)
- Create a structure for the representative periods and other time stuff (#262)
- Create a structure to hold all parts (#263)
- [BUG] - Flow profiles are not being used correctly (#264)
- Store solution in the graph structures (#268)
- Move partitions to inside the graph structure (#271)
- Move constraints_partitions to energy problem structure (#279)
- Rename create_energy_model... to create_energy_problem... (#280)
- Consider moving the JuMP model inside the EnergyProblem structure (#281)
- Return all solution values in the solve and pass more general structs to the save output function (#282)
- Allow non-EnergyModel usage (#293)
- The variable cost of flow does not get multiplied by the partition range (#300)
- Add the debugging folder to the gitignore file (#303)
- Update documentation for V1.0 release! (#306)
- Add the Julia packages to use XPRESS, GUROBI, CPLEX in the Project.toml file (#310)
- The
overall_output_flows
constraint should be written in the highest resolution not the lowest (#313) - [BUG] - The upper and lower bound of the flows is not multiply by the duration (#316)
- Document structures, how to use, and tutorial (#324)
- Create a section in the documentation with an explanation of the flexible temporal resolution (#325)
- Describe in the documentation the input data (#326)
- Include in the tutorial how to export the results to CSV and how to plot some results (#327)
- Filter B_flow in new highest resolution expressions (#332)
- Remove a redundant function (#340)
v0.4.0
TulipaEnergyModel v0.4.0
Merged pull requests:
- Add template for Epic issue (#98) (@sjvrijn)
- Updated issue templates (#185) (@clizbe)
- Fixed benchmark "redefinition of constant" warning (#189) (@clizbe)
- Updated README.DEV to include JuilaFormatter (#192) (@clizbe)
- Add new data for a second representative period (#194) (@datejada)
- Add new columns to the rp file (#195) (@gnawin)
- Put tests in separate files (#196) (@clizbe)
- Make the time step (k) dependent on the representative period (rp) (#199) (@gnawin)
- Add warning catch for infeasible test (#200) (@clizbe)
- Fix infeasible catch for Julia 1.6 (#201) (@clizbe)
- Changed Norse flows-data to use asset_name (#204) (@clizbe)
- Updated documentation to fix linebreaks (#205) (@clizbe)
- Multiply the time-resolution matrices by the rp time scale/duration (#206) (@abelsiqueira)
- Add files with Assets and Flows time intervals and functions to parse it (#210) (@abelsiqueira)
- Also test on Julia 1.6 on PRs (#211) (@abelsiqueira)
- Model the different time resolutions (#212) (@abelsiqueira)
- Add a section to build docs locally (#213) (@datejada)
- Implement :all strategy for computing rp_periods (#215) (@abelsiqueira)
- Added function to run Tulipa in one line (#216) (@clizbe)
- Add LocalCoverage instructions to README.dev.md (#218) (@sjvrijn)
- Update README.dev.md for consistency (#219) (@sjvrijn)
- Create expressions for incoming and outgoing flows (#228) (@abelsiqueira)
- Use a random tmp dir to write the solver output in the benchmark (#231) (@abelsiqueira)
- Remove single-letter prefix for expressions and constraints (#232) (@abelsiqueira)
- Write a comment on the PR when running benchmark (#236) (@abelsiqueira)
- Add initial storage level and storage inflows (#239) (@datejada)
- Rename time symbols (#240) (@greg-neustroev)
- Change constraint to bound (#241) (@greg-neustroev)
- Add quotes on the benchmark comment body (#244) (@abelsiqueira)
- Add compat bounds to SparseArrays (#247) (@abelsiqueira)
Closed issues:
- Update the issue templates (#90)
- Associate parameters (from ESDL) with asset/flow attributes (#91)
- Change Actions to only run Ubuntu except on Main (#133)
- Organize tests into different files (#152)
- Add LocalCoverage into the workflow (#169)
- Input and output folders for the benchmark (#174)
- Update matrix creation (#178)
- Add number of time steps and time scale to RP file (#179)
- Make the periods dependent of the representative period (#180)
- Add a second representative period to Norse case (#181)
- Add file for the time aggregation/resolution of assets and flows (#182)
- Add information on installing JuliaFormatter for the pre-commit (#186)
- Update matrix creation to use time_scale (#187)
- Add a function to create the constraint time resolution using all breakpoints (#188)
- Catch warning from infeasible test (#190)
- Write the output of the benchmark to a different location (#193)
- Add Storage Inflows and Initial Storage Level data for the Hydro in the Norse Case (#198)
- Fix mathematical formulation in documentation (#202)
- Change Norse flows-data to use asset_name (#203)
- Document running the documentation locally (#207)
- Better name for time resolution "stuff" (#208)
- Function to run_scenario (#209)
- How to layout the time profiles after clustering for representative periods? (#217)
- Create expressions for the incoming and outgoing flows (and possible others) (#222)
- Add the initial storage to the equation (#223)
- Don't use @constraint for lower bound of flow (#224)
- Standarised all the expression's name in the optimisation model without
e_
(#229) - [BUG] - Benchmark workflow is broken (#230)
- Early feedback when run-benchmark is run (#233)
- [BUG] - Benchmark broken again (#243)
v0.3.0
TulipaEnergyModel v0.3.0
Merged pull requests:
- Created structs describing CSVs (#122) (@clizbe)
- 127-change-inputs-names (#128) (@datejada)
- Input validation (#132) (@suvayu)
- Change the name convention (#139) (@datejada)
- Made reading CSV into dataframe a separate function (#140) (@clizbe)
- Change all Float32 to Float64 (#142) (@gnawin)
- Changed HowTo and added link to Preprint (#143) (@clizbe)
- Add functions to compute time resolution periods and matrices (#144) (@abelsiqueira)
- Fix benchmarks and add info on how to run it manually (#150) (@abelsiqueira)
- Add csv files in the test folder (#151) (@gnawin)
- Changed naming convention and removed old CSVs (#154) (@clizbe)
- Add infeasible run test (#155) (@datejada)
- Create TestOnPR workflow with a lighter test load (#156) (@abelsiqueira)
- Added new test to achieve full coverage (#157) (@clizbe)
- 135 include all assets (#161) (@clizbe)
- Separate create and solve model (#162) (@gnawin)
- Added details to README.dev to prevent pushing to origin (#163) (@clizbe)
- Validate CSV files schema while reading (#166) (@abelsiqueira)
- Refactor header argument into read_csv_with_schema (#168) (@abelsiqueira)
- Use Norse data on the benchmarks (#171) (@abelsiqueira)
- Add data for flows profile (#173) (@datejada)
- 175 improve norse case (#176) (@datejada)
- Release 0.3.0 (#184) (@gnawin)
Closed issues:
- Compare to a model without Sets and dictionaries (#16)
- Consider adding a triage tag/status (#34)
- [BUG] Fix CompatHelper action (#39)
- Add parameters to the Norse case (#101)
- Describe every CSV that is required (#102)
- Create function that reads CSVs (#104)
- Formulate the model as a network graph (#107)
- Implement a function that generates the resolution matrix (#109)
- Add *.lp to .gitignore (#120)
- Revise the naming convention for everything (e.g.,
p_*
) (#123) - Change InputTables.jl to match io.jl (#127)
- [BUG] - Issue Status Workflow not working (#129)
- Change Actions to only run Ubuntu except on Main (#133)
- Ability to couple with other models (#134)
- Include all the asset types in the formulation (#135)
- Change Float32 to Float64 (#136)
- Implement naming convention (#137)
- Update documentation (#141)
- Update tests to make Codecov happy (#145)
- [BUG] - The benchmarks have not been updated (#146)
- Add an infeasible model for testing (#149)
- Consider splitting the model creation and the model solving to allow benchmarking separately (#153)
- Improve dev documentation for push and rebase (#158)
- Add a description to validate_df (also for autodoc) (#164)
- Read CSV passing type information to validate while reading (#165)
- header = 2 can be refactored inside the reading function (#167)
- Update benchmarks with Norse case (#170)
- Add data to flows-profiles of Norse (#172)
- Improve the Norse case test case data (#175)
v0.2.0
TulipaEnergyModel v0.2.0
Merged pull requests:
- Add tiny test files by @datejada (#119) (@abelsiqueira)
- Add function to create graph from node and edges data CSV (#121) (@abelsiqueira)
- Use new tiny data and the graph structure in the model (#124) (@abelsiqueira)
- Release 0.2.0 (#126) (@clizbe)
Closed issues: