Skip to content

Releases: TulipaEnergy/TulipaEnergyModel.jl

v0.14.0

24 Mar 14:34
13e5e2a
Compare
Choose a tag to compare

TulipaEnergyModel v0.14.0

Diff since v0.13.0

Breaking changes

  • Changes in the model schema due to the new parameter flow_coefficient_in_capacity_constraint in the flow_commission table.

Merged pull requests:

Closed issues:

  • Add argument descriptions to all "add constraints" functions (#723)
  • Add pre-processing step to calculate the flow (#1072)
  • Verify in the CI that the MPS files have not changed (#1076)
  • No duplicate rows in input data (#1091)
  • Add option to determine which flows are included in the capacity constraints (#1096)
  • Check that all assets have a type associated (i.e., consumer, producer, conversion, storage, hub) (#1098)
  • Check that the flows that are defined as investable are also defined as transport (#1101)
  • Validate consistency between group field in asset and group table (#1105)

v0.13.0

11 Mar 15:07
c3096d4
Compare
Choose a tag to compare

TulipaEnergyModel v0.13.0

Diff since v0.12.0

Breaking changes

  • Update DuckDB version that fixes the windows build.

Merged pull requests:

Closed issues:

  • Store schema in a JSON file (#992)
  • Put the defaults in a JSON file (#1039)
  • Fix multi-year data and fix objective function (#1046)
  • [Bug] Error building the max_output_flows_limit constraint (#1071)
  • Update DuckDB to a version that works on Windows (#1074)
  • Make test output cleaner (#1077)

v0.12.0

18 Feb 16:55
91619f7
Compare
Choose a tag to compare

TulipaEnergyModel v0.12.0

Diff since v0.11.0

Breaking changes

  • Remove graph, representative_periods, years, and timeframe structures in favour of tables.
  • Change various names of tables and IO functions.

Merged pull requests:

  • Refactor many files related to multi-year expressions remove graph and completely removes the sets structure (#1004) (@abelsiqueira)
  • Fix sort in the query to keep linear index per asset in the storage constraint (#1010) (@datejada)
  • Add explicit asset timeframe partitions (#1012) (@datejada)
  • Improve performance to create constraints over clustered year (#1017) (@abelsiqueira)
  • Change sum(coef * var) to JuMP.add_to_expression (#1018) (@abelsiqueira)
  • Remove graph and other internal structures and general cleaning (#1023) (@abelsiqueira)
  • Refactor names in the ramping constraints (#1025) (@datejada)
  • Remove active parameter (#1027) (@datejada)
  • Improve documentation multi-year (#1028) (@gnawin)
  • Create src/data-preparation.jl and move creation of partition-related tables there (#1029) (@abelsiqueira)
  • Remove variable lookup that was created only for the strangle pattern (#1030) (@abelsiqueira)

Closed issues:

  • Make sure that inactive assets (and their flows) are removed from the model (#266)
  • Multi-year investment (#462)
  • Change representative_periods to use DuckDB (#713)
  • Refactor the groupby inside create_internal_structure to use DuckDB/TulipaIO in the for loops of profiles (#738)
  • Change graph data access and constraint creation to use the indices tables (#942)
  • Remove active parameter from flows and assets (#960)
  • [Bug] The storage balance constraints are not correctly created (#1007)
  • Add default values for assets_timeframe_partitions table (#1009)
  • Improve performance v0.11.0 (#1014)
  • Fix data for simple investment method (#1016)
  • Update names on ramping constraints creation (#1024)
  • Formulation of multi-year investment needs a correction on the fixed costs (#1026)

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)