Skip to content

Releases: TulipaEnergy/TulipaEnergyModel.jl

v0.11.0

29 Jan 09:16
19dd03f
Compare
Choose a tag to compare

TulipaEnergyModel v0.11.0

Diff since v0.10.4

Breaking changes

  • Major internal refactoring of the code to speed up the model creation using DuckDB
  • Input schema has changed. Therefore, CSV files from version 0.10.x V must be upgraded to the new format in version 0.11.0

Merged pull requests:

Closed issues:

  • Return tables (a.k.a. DuckDB) or dataframes as the output format (#115)
  • Consider storing the profile aggregation in the constraints data frames (or somewhere else) (#473)
  • Use functions for saving flow solutions (#566)
  • Change from_asset/to_asset or from/to for consistency (#624)
  • Add the dual solutions to energy_problem.dataframes[:highest_in_out] (#637)
  • EU benchmark files are too big, store somewhere else (#673)
  • Split profile_name in the profiles_table (#683)
  • Create a site/notebook/template/repo for the whole pipeline documentation (#685)
  • Explore uses of DuckDB to create a single column to iterate (#716)
  • Create outputs for the new results of the variables (#818)
  • Implement automatic flow resolutions (#880)
  • Update documentation with feedback from Maaike (#935)
  • Remove first row from the input files (#991)
  • Update benchmark case study (#1001)
  • Find all cases where the flow resolution can/must be inferred (#453)
  • Improve _parse_rp_partitions to reflect more general usage (#610)
  • Change construct_dataframes to use tables (a.k.a. DuckDB) or input data frames (#611)
  • Add a repo checklist to README.DEV (#630)
  • Rename the variables and constraints dataframes in the model (#642)
  • Test TimeStruct.jl package to handle the flexible time resolution in the model (#689)
  • Add policy questions to answer with the model to the docs (#775)
  • Add formatter option to have explicit returns (#796)
  • Remove test using Tiny/bad-assets-data.csv (and file) (#812)
  • Update documentation - formulation (note that formulation needs updates not only in the investments, but also in ramping, groups, and binary charging) (#819)
  • Modify the documentation on the lower bound of flows (#882)
  • Define variable tables (#884)
  • Create all data and tables necessary for the model before the function (#885)
  • Update documentation - how-to (#891)
  • Change functions that receive explicit sets to receive the variable sets (#892)
  • Define partition tables (#895)
  • Create flow variables using the indices in the variable structure (#898)
  • Create units on variables using the indices in the variable structure (#901)
  • Update storage variables using the indices in the variable structure (#903)
  • Instead of DF, use a TulipaIO table (#909)
  • units_on (#911)
  • Create constraints indices for highest_in (#912)
  • Create constraints indices for highest_out (#914)
  • Create constraints indices for units_on and units_on_and_outflows (#918)
  • Refactor variables (#923)
  • Define (balance) constraints tables (#927)
  • Try using @timeit to on function calls, not on begin ... end blocks (#934)
  • Change the default of the enable_names option to false in the create_model function (#937)
  • Update JuliaFormater options (#940)
  • Don't get data from graph object in src/constraints/consumer.jl (#943)
  • Don't get data from graph object in src/constraints/investment.jl (#945)
  • Don't get data from graph object in src/constraints/capacity.jl (#947)
  • Update compute_assets_partitions! to use DuckDB more efficiently (#948)
  • Don't get data from graph object in src/constraints/storage.jl (#955)
  • Update TulipaConstraint to store the dual variables and the list of constraints that use the same set of indices (#957)
  • Rename constraint names to names in Miro that don't have to split or that are simple to split (#958)
  • Rename, split, create new constraints for capacity.jl (#961)
  • Rename, split, create new constraints for ramping-and-unit-commitment.jl (#964)
  • Rename, split, create new constraints for storage.jl (#966)
  • Rename, split, create new constraints for group.jl (#969)
  • Don't get data from graph object in src/constraints/group.jl (#977)
  • Apply specific 'using' syntax to the tests (#994)

v0.10.4

15 Jan 12:23
b204e0a
Compare
Choose a tag to compare

TulipaEnergyModel v0.10.4

Diff since v0.10.3

Merged pull requests:

v0.10.3

14 Jan 09:07
Compare
Choose a tag to compare

TulipaEnergyModel v0.10.3

Diff since v0.10.2

Merged pull requests:

  • Fix to improve inter-rp expression creation time (#998) (@datejada)

v0.10.2

15 Oct 08:04
0488653
Compare
Choose a tag to compare

TulipaEnergyModel v0.10.2

Diff since v0.10.1

Merged pull requests:

Closed issues:

  • Apply BestieTemplate.jl (#676)
  • Add checks to the domain of decommission variables and make sure they only exist when there are existing capacities or investments - compact method. (#828)
  • The model can be unbounded under certain set-ups (#844)
  • [BUG] - Italics in docs (#847)
  • Update online codecov requirement to 98% (#849)
  • [Bug] Fix link to CONTRIBUTING and README.dev.md (#855)
  • [Bug] Replace <kbd>stuff</kbd> by backticks (#858)

v0.10.1

08 Oct 16:45
8bf0a92
Compare
Choose a tag to compare

TulipaEnergyModel v0.10.1

Diff since v0.10.0

Merged pull requests:

Closed issues:

  • Update structures with year information and update the tests to use the multi-year test data (#759)
  • Update EU case study (#827)

v0.10.0

30 Sep 14:23
1b93615
Compare
Choose a tag to compare

TulipaEnergyModel v0.10.0

Diff since v0.9.2

Merged pull requests:

Closed issues:

  • Build the input workflow (#289)
  • Add Dependabot to check actions (#444)
  • Use dataframes instead of dict for RP weight matrix (#495)
  • Refactor architecture to use Tables (DuckDB) (#547)
  • Add basic version of unit commitment and ramping constraints (#581)
  • Make Docs landing page more friendly (#592)
  • Update citation.cff file (#619)
  • Change Symbol to String (#632)
  • Use the input schema again (#636)
  • run_scenario for connection or other convenience functions (#665)
  • Write down and review the formulation including different levels of detail (#690)
  • Add remote url fix to readme.dev (#695)
  • Fix readme.dev to our fork workflow (#696)
  • Remove all csv related reading functions and use TulipaIO instead. (#702)
  • Use strings instead of Symbols in the create_input_dataframes function (#705)
  • Refactor the inputs to use DuckDB as much as possible (#706)
  • Refactor to create RepresentativePeriod from DuckDB (#707)
  • Refactor timeframe and assets data inputs to read from DuckDB (#710)
  • How to get a column from DuckDB directly? (#714)
  • Add basic investment model (obj, upper bounds, conversion, cost efficiency), and create the needed parameters (#722)
  • Add optional ramping constraints (#724)
  • Remove table_tree (the end) (#729)
  • [BUG] Italics in docstring (#730)
  • Create new "entity" called "group" to have a set of common constraints (#732)
  • Change the name schema_per_file to schema_per_table_name (#734)
  • Add the most complicated method (#740)
  • Update documentation with the group feature (#743)
  • Multi-year data and timeframe relation (#748)
  • Update the documentation with ramping and unit commitment constraints (#750)
  • Add new case study to test UC and ramping constraints (#752)
  • Add information for diff of CSV files (#753)
  • Files assets-data.csv have an extra hidden empty column (#754)
  • Add operational cost of units_on in the objective function (#756)
  • Create multi-year test data (#758)
  • Update dataframe for UC and ramping constraints (#763)
  • Create a test dataset for multi-year that makes more sense, considering existing capacities with different profiles. (#765)
  • Prepare more data for multi-year simple and compact formulation (#766)
  • Include a new section for ramping and unit commitment constraints in the concepts (#770)
  • Include durations on the ramping constraints (#772)
  • Update EU case study for benchmark (#776)
  • Add additional data to multi-year that will be used for both simple and compact methods (#777)
  • Add to model the common lists/subsets for years for both simple and compact methods (#778)
  • Use initial_units instead of initial_capacity as input data (#779)
  • Add the compact method (#783)
  • Add the simplest method for multi-year investment (#786)
  • Add investment_method data to the graph structure (#787)
  • Update group constraints according to the investment methods (#789)
  • Update ramping constraints to consider multi-year investment methods (#790)
  • Update binary to avoid simultaneously charging/discharging constraints to consider multi-year investment methods (#791)
  • Add the simple method for investments in transport assets (#792)
  • Avoid having missing value in the investment_method (#794)
  • Update input file for vintage information (#797)
  • Change accumulated capacity expression to account for both investment methods (#798)
  • Create economic parameters (#802)
  • Add the simple method for storage assets (#806)
  • Add investment weights (#810)
  • Add operation weights (#816)
  • Review duplicated data in assets-data and vintage-assets-data (same for flows) (#825)
  • Create functions for the economic parameters calculations (#826)
  • Make multi-year test feasible (#831)
  • Use weights for investments and operation in the objective function. (#835)
  • Update the test for multi-year investment, including ramps, binary charging, investments in storage (and in energy storage) to be sure the constraints are correct when using multi-year investment (#838)

v0.9.2

18 Jul 17:10
7574009
Compare
Choose a tag to compare

TulipaEnergyModel v0.9.2

Diff since v0.9.1

Merged pull requests:

Closed issues:

  • Create new variables and constraints to have a max/min energy outgoing flow for assets, using the base periods (#526)
  • Update citation.cff file (#619)
  • Update documentation with max/min energy outgoing flow for assets (#662)
  • [BUG] - Change aggregation function for the max/min energy outgoing flow for assets (#692)

v0.9.1

28 Jun 15:46
ac1f899
Compare
Choose a tag to compare

TulipaEnergyModel v0.9.1

Diff since v0.9.0

Merged pull requests:

v0.9.0

28 Jun 08:31
82446a2
Compare
Choose a tag to compare

TulipaEnergyModel v0.9.0

Diff since v0.8.0

Merged pull requests:

  • Modify investment limit to integer when necessary (#582) (@gnawin)
  • Update EU benchmark files (#583) (@datejada)
  • Update formulation in the documentation (#587) (@datejada)
  • Change Inf to 86400 in the benchmarks.jl script and benchmark on the HEAD script (#590) (@abelsiqueira)
  • Add balance sense option to the consumer assets (#591) (@datejada)
  • Update Norse case test to use JuMP.is_solved_and_feasible (#594) (@datejada)
  • Update storage assets documentation (#597) (@datejada)
  • Fix typos (#602) (@gnawin)
  • Create new parameters for storage methods (#603) (@gnawin)
  • Refactor io into reading and processing and create table tree structure (#607) (@abelsiqueira)
  • Remove duplicate "Code format & guidelines" section (#608) (@clizbe)
  • Change core model for storage methods (#616) (@gnawin)
  • Update filter usage to be more efficient (#618) (@abelsiqueira)
  • Fix command typo in README.dev.md (#621) (@suvayu)
  • Output energy storage investment to the solution (#627) (@datejada)
  • Update documentation with new energy storage investment option (#633) (@datejada)
  • Read CSV using TulipaIO and DuckDB and create table_tree from DB (#634) (@abelsiqueira)
  • New parameter to use tighter storage formulation (#641) (@datejada)
  • Update documentation with formulation to avoid storage charging and discharging simultaneously (#644) (@datejada)
  • Create new variable and constraints for the use_binary_storage_method (#645) (@datejada)
  • CompatHelper: add new compat entry for TulipaIO at version 0.1, (keep existing compat) (#646) (@github-actions[bot])
  • CompatHelper: bump compat for DuckDB to 1, (keep existing compat) (#648) (@github-actions[bot])
  • Fix bug (#651) (@gnawin)
  • Update documentación of limits constraints for producer assets (#653) (@mauro-gs)
  • Add more timers to the log (#654) (@datejada)
  • New parameters and data for the min/max energy in base periods (#656) (@datejada)
  • Add min/max outgoing energy for base periods (inter-temporal) constraints (#658) (@datejada)
  • Standardize the names of representative periods to rep_period (#666) (@datejada)
  • Rename profile files for assets and flows (#669) (@datejada)
  • Move timing from run scenario (#670) (@datejada)
  • Refactor code to use a function to create the inter-rp dataframes (#671) (@datejada)
  • Join profiles files into a single file per period type (#672) (@abelsiqueira)
  • Allow timeframe and partitions tables to be missing (#675) (@abelsiqueira)
  • Release v0.9.0 (#677) (@abelsiqueira)
  • Fix allowing timeframe and partitions tables to be missing (#674) (#678) (@abelsiqueira)
  • Create timing dict for EnergyProblem and time constructor (#681) (@abelsiqueira)

Closed issues:

  • JuMP Model to Output (#97)
  • Create a simple European case study for testing (#112)
  • Update western EU case to use 123 resolution (#426)
  • Add TulipaIO package (#450)
  • Explore how to merge hub and consumer (#477)
  • Separate the reading and processing in the IO (#544)
  • Improve data of Norse case tutorial (#574)
  • Add investment methods for energy storage assets (#575)
  • Use tighter formulation for energy storage assets (#576)
  • Improve investment limit constraint (#577)
  • Improve the log description (#584)
  • Add an input parameter for consumer assets to choose the balance sense (#585)
  • Include comments from UU to the mathematical formulation in the docs (#586)
  • [BUG] Benchmarks are failing with Inf not supported by JSON (#588)
  • Change test for the Norse case study (#593)
  • Update documentation for seasonal and non-seasonal storage (#595)
  • Create the new parameters and update the input files with the new data (#600)
  • Create the new variables and constraints. Modify existing ones, including the objective function (#604)
  • Update the outputs with storage investment on energy variable (v^{inv_energy}_{a}) (#626)
  • Update the documentation with investment methods for energy storage assets (#628)
  • Use TulipaIO instead of reading CSV (#629)
  • Create the new parameter and update the input files for the use of a tighter formulation for storage assets (#638)
  • Create the new variables and constraints for the use of a tighter formulation for storage assets (#639)
  • Update the documentation (formulation and tutorial/how-to) with the use of a tighter formulation for storage assets (#640)
  • [BUG] - Model errors when a storage asset is investable==false but storage_method_energy==true (#650)
  • Update the mathematical formulation in the documentation for producers (issue #526) (#652)
  • Create the new parameters to have a max/min energy outgoing flow for assets (#655)
  • Add dataframes, variables, and constraints to include max/min energy outgoing flow for assets, using the base periods (#657)
  • Improve/refactor dataframe creation for inter-period constraints (#659)
  • Rename rep_periods_data.id to rep_periods_data.rep_period for consistency (#661)
  • Use the original assets and flows profiles table (#663)
  • Move timing from run_scenario to EnergyProblem function (#667)
  • Merge all profiles-* files into one (#668)
  • Accept default of missing timeframe and partition tables (#674)
  • Time creating dataframes et al. separately from reading CSV (#680)

v0.8.0

29 Mar 17:07
ace372f
Compare
Choose a tag to compare

TulipaEnergyModel v0.8.0

Diff since v0.7.0

Merged pull requests:

Closed issues:

  • Check if Lazy Loading is possible (#28)
  • Add linked-representative days formulation for seasonal (long-term) storage (#255)
  • Add references to docstrings & documentation (#397)
  • Apply specific "using" syntax (#431)
  • Add to the README.dev.md the Julia Register procedure (#435)
  • Validate the efficiency for inflows and outflows for conversion assets (#437)
  • Refactor model creation using functions (#452)
  • Add more JuliaFormatter options (#454)
  • Update documentation with the linked-representative days (#458)
  • Review documentation for Q1 release (#467)
  • Consider using time_block instead of B internally (#470)
  • Add a How-To for dealing with infeasible solutions of the model (#472)
  • Improve comments of create-model.jl (#489)
  • Add a pre-commit hook to include additional formatting for Markdown (#501)
  • Documentation for Solution in how-to-use is out-of-date (#506)
  • Rename Dataframes in the create_graph_and_representative_periods_from_csv_folder function (#508)
  • Refactor add_expression_terms_intra_rp_constraints (#529)
  • Add How-To for different level of investment detail (#530)
  • Update benchmark options (#534)
  • flows-data needs a is_seasonal column (or remove base partitions of flows) (#537)
  • Use is_seasonal to define the base partitions (#538)
  • Use Prettier for Markdown formatting (#539)
  • Consider using Symbol instead of String for columns and other identifier (#540)
  • Replace the schema structures by Dict or similar (#541)
  • [BUG] - Fix the storage output to CSV so it is not divided by the duration (#548)
  • Define a new name for the base periods (#549)
  • Export the storage level solution as an interpolation (#553)
  • Move pngs to new folder (#559)
  • Add the new Storage example to the tests (#569)
  • Update README & README.dev (#571)