Releases: TulipaEnergy/TulipaEnergyModel.jl
Releases · TulipaEnergy/TulipaEnergyModel.jl
v0.16.0
TulipaEnergyModel v0.16.0
Breaking changes
- DC-OPF requires new columns
- Flows relationships requires new tables
- Column
consumer_balance_sense
does not accept missing populate_with_defaults!
enforce schema and will replace types and fill NULLs
Merged pull requests:
- Add new table to define flows relationships (#1176) (@datejada)
- Add low bound to the sum of flows for transport flows (#1178) (@gnawin)
- Add parameters for dc-opf feature (#1179) (@gnawin)
- [AUTO] pre-commit update (#1180) (@github-actions[bot])
- Add new tables to calculate the lowest resolution for flows that have a flows relationship (#1183) (@datejada)
- Add electricity angle variables (#1185) (@gnawin)
- Minor edits multi year docs (#1186) (@gnawin)
- Fix CompareMPS when files differ in length (#1190) (@abelsiqueira)
- Always run find-comment in CompareMPS, whether it fails or not (#1191) (@abelsiqueira)
- Fix bug with mixing compact and simple/none investment methods (#1195) (@urosgluscevic)
- Update EU benchmark case study (#1196) (@datejada)
- Improve the hotfix for the alignment of
units_on
and compact method (#1197) (@gnawin) - Create highest resolution table for flows and their connecting assets (#1198) (@gnawin)
- Add flows relationship constraints (#1202) (@datejada)
- Run the case studies twice to ensure it doesn't raise an error (#1207) (@abelsiqueira)
- Add test to make sure that populate_with_defaults doesn't drop extra columns (#1208) (@abelsiqueira)
- Fix consumer_balance_sense check and fix data validation (#1211) (@abelsiqueira)
- Create Tinier test case study simplifying Tiny (#1212) (@abelsiqueira)
- Make populate_with_defaults enforce schema (correct types and fill NULLs) (#1213) (@abelsiqueira)
Closed issues:
- Check (or apply schema) after adding the defaults (#1156)
- Lower bound for the capacity constraints (#1159)
- Create a new table to define the fix ratio relationships between two flows (#1166)
- Enforce transport flows have free signs (#1168)
- Define new parameters (#1177)
- Add variables for dc-opf (#1181)
- Create a table with the lowest resolution of both flows in the flows relationship table (#1182)
- Simplify the test case studies input data by using the defaults function (#1184)
- Add highest resolution table between flows and its connecting assets (#1187)
- [Bug] MPS workflow false positive result (#1188)
- Add table for constraints with flows relationship (#1189)
- Update EU case study for the benchmarks (#1193)
- [Bug] Misalignment of variables when using the compact method with unit commitment constraints (#1194)
- Make sure that running
run_scenario
twice works (#1205) - Make sure that populate_with_defaults keeps extra columns (#1206)
- [Bug] consumer_balance_sense is being incorrectly checked (and data-validation is wrong) (#1210)
v0.15.1
TulipaEnergyModel v0.15.1
Merged pull requests:
- Add description of outputs to docs (#1131) (@clizbe)
- 1037_fixpartiallydocs (#1149) (@nope82)
- [AUTO] pre-commit update (#1151) (@github-actions[bot])
- Add new section with the scientific references (#1161) (@datejada)
- Fix list in docstring (#1167) (@clizbe)
- Replace inter-temporal and intra-temporal in docs (#1170) (@clizbe)
- Release 0.15.1 (#1175) (@clizbe)
Closed issues:
- Add explanation of model output to documentation (#352)
- Replace all intra_rp by rep_period and inter_rp by over_clustered_year in the docs (#984)
- Add "don't clone to cloud" to dev docs (#1095)
- Fix linebreak rendering in docs (#1134)
- Conversion assets with multiple inputs and outputs (#1154)
- Udpate paper references in the docs (#1155)
- Fix Info and other boxes in Math Formulation (#1157)
- [Bug] Running Multi-Year throws an error (#1171)
v0.15.0
TulipaEnergyModel v0.15.0
Breaking changes
- New feature to consider self-loss for storage assets
- New simple method for the multi-year investment feature
Merged pull requests:
- [AUTO] pre-commit update (#897) (@github-actions[bot])
- Add simple method multi-year (#1122) (@gnawin)
- Add option to use JuMP direct model (#1124) (@clizbe)
- Create function to populate defaults (#1130) (@abelsiqueira)
- Remove broken HTML syntax tags (#1136) (@clizbe)
- Add feature self loss storage (#1137) (@gnawin)
- docs: add IsaiMaganTNO as a contributor for review (#1139) (@allcontributors[bot])
- docs: add nope82 as a contributor for review (#1140) (@allcontributors[bot])
- Modify operation discounting for multi-year investments (#1141) (@gnawin)
- Remove save_solution from solve_model arguments (#1142) (@clizbe)
- Add validation between
use_binary_storage_method
andinvestment_limit
(#1144) (@gnawin) - Update developer's instructions (#1147) (@IsaiMaganTNO)
- Update docs for multi-year (#1148) (@gnawin)
Closed issues:
- Add option to use direct model in the JuMP model creation (#1031)
- Update formulation in the docs with power flow constraints (#1056)
- Add simple method for multi-year investments (#1064)
- Discounting operation costs for non-modeled years between milestone years (#1094)
- Add self-discharge parameter for the storage balance constraint (#1097)
- Validate consistency between
use_binary_storage_method
andinvestment_limit
(#1110) - Create a function that populates tables in a connection with defaults from the schema (#1129)
- Use or lose save_solution argument in solve_model (#1133)
- Fix linebreak rendering in docs (#1134)
- Improve
timeframe-data.csv
to includeresolution
(#1138) - Update documentation of multi-year investments (#1146)
v0.14.1
TulipaEnergyModel v0.14.1
Merged pull requests:
- 1036 friendly docs (#1045) (@clizbe)
- Remove asset_both and asset_milestone from unnecessary places in data-preparation.jl (#1118) (@abelsiqueira)
- Update CompareMPS to not make multiple comments and link to docs (#1119) (@abelsiqueira)
- Fix typo in create_model docstring (#1121) (@clizbe)
- [WIP] Fix CompareMPS for forks (#1127) (@abelsiqueira)
- Add docstring to create_merged_tables! (#1128) (@clizbe)
- Update error message when saving solution (#1132) (@datejada)
- Release 0.14.1 (#1135) (@clizbe)
Closed issues:
- [Bug] Tests fail due to permission error on Windows when running from released package (#990)
- Improve docs for new users (#1036)
- Fix docstring of
create_merged_tables!
(#1106) - Review whether we need asset_commission and asset_both in data-preparation and uc (#1117)
- Validate that
investment_limit
cannot be missing when use storage_binary_method
... (#1123) - [Bug] CompareMPS fails for forks (#1126)
v0.14.0
TulipaEnergyModel v0.14.0
Breaking changes
- Changes in the model schema due to the new parameter
flow_coefficient_in_capacity_constraint
in theflow_commission
table.
Merged pull requests:
- Test changes to MPS on CI (#1080) (@abelsiqueira)
- Implement data validation step with basic check for duplicate rows (#1088) (@abelsiqueira)
- Create connection inside benchmark run because tables exist (#1089) (@abelsiqueira)
- Fix docstrings of add_group_constraints (#1090) (@abelsiqueira)
- Add setup steps to benchmark to properly run from scratch (#1092) (@abelsiqueira)
- Add instructions to run comparative benchmarks locally (#1093) (@abelsiqueira)
- Validate schema's oneOf constraints (#1099) (@abelsiqueira)
- Validate that only transport flows can be investable (#1102) (@abelsiqueira)
- Validate group consistency in asset and group_asset tables (#1107) (@abelsiqueira)
- Add a coefficient parameter to multiply the flow variables in the capacity constraints (#1116) (@datejada)
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
TulipaEnergyModel v0.13.0
Breaking changes
- Update DuckDB version that fixes the windows build.
Merged pull requests:
- Always saving the solution when using run scenario (#1032) (@datejada)
- Improvements to creating expressions attached to constraints (#1033) (@abelsiqueira)
- Delete Cbc from the tests (#1034) (@datejada)
- Remove DataFrames completely (#1035) (@abelsiqueira)
- Change multi-year fixed and investment costs to help differentiate and fix objective fixed costs (#1048) (@abelsiqueira)
- Create model schema from a JSON file (#1054) (@datejada)
- Add type assertions in add_expression and attach_expression functions (#1055) (@abelsiqueira)
- docs(formulation): Update formatting of tip admonition blocks by indenting the content in the raw markdown (#1060) (@kdheepak)
- Rename index to id to prevent using sql keyword (#1061) (@abelsiqueira)
- Rename "from" and "to" to "from_asset" and "to_asset" uniformly. (#1062) (@abelsiqueira)
- Start moving sql queries to SQL files (#1063) (@abelsiqueira)
- Update DuckDB version to 1.2.1 (#1075) (@abelsiqueira)
- Update mathematical formulation with DC power flow constraints (#1078) (@datejada)
- Clean test printing (#1079) (@abelsiqueira)
- Fix Windows failure due to tests introduced in #1079 (#1083) (@abelsiqueira)
- Use absolute path to include json file (#1085) (@abelsiqueira)
Closed issues:
v0.12.0
TulipaEnergyModel v0.12.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
TulipaEnergyModel v0.11.0
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:
- Remove first row of input files (#993) (@datejada)
- Implement solution saving and exporting for refactored code (#1000) (@abelsiqueira)
- [docs]: prepare documentation for release 0.11.0 (#1002) (@abelsiqueira)
- Update EU benchmark case study (#1003) (@datejada)
- Update .all-contributorsrc and run generate changing some links (#1005) (@abelsiqueira)
- Bump actions/stale from 9.0.0 to 9.1.0 (#1006) (@dependabot[bot])
- Modify docs flow lower bound (#883) (@gnawin)
- Refactor some of the code related to model creation (#886) (@abelsiqueira)
- Create TulipaVariable struct and define variable tables (#887) (@datejada)
- Refactor content of create model into separate files (#888) (@abelsiqueira)
- Multi year docs (#889) (@gnawin)
- Various small fixes (#890) (@abelsiqueira)
- Unpack sets inside
add_*_constraints!
functions (#893) (@suvayu) - Fix index (#894) (@gnawin)
- Start transition from DataFrames to DuckDB (#896) (@abelsiqueira)
- Add how-to for multi-year investments (#899) (@gnawin)
- Create flow variables using the indices table (#900) (@datejada)
- Create units_on variables using the indices table (#902) (@datejada)
- Update storage variable creation using indices table (#904) (@datejada)
- [docs] Modify the description of the parameter discounting factor operation cost (#905) (@gnawin)
- Add uses of Tulipa to docs (#907) (@clizbe)
- Add new package section to dev docs (#910) (@clizbe)
- Add
highest_in
tocreate_constraints_indices
(#913) (@gnawin) - Move units_on from DF to DuckDB (#915) (@clizbe)
- Add
highest_out
tocreate_constraints_indices
(#917) (@gnawin) - Fix case where the there are no time blocks to determine in a constraint (#920) (@abelsiqueira)
- Fix: remove duplicate tmp_create_constraints_indices (#921) (@abelsiqueira)
- Fix 91-developer.md (#922) (@clizbe)
- Refactor variables to use TulipaVariable (#925) (@abelsiqueira)
- Create all variables directly from connection and independent of dataframes (#926) (@abelsiqueira)
- Create constraints with new TulipaConstraint object (#928) (@abelsiqueira)
- Bump codecov/codecov-action from 4 to 5 (#929) (@dependabot[bot])
- Split assets data to better reflect year dependency (#932) (@abelsiqueira)
- Option to disable name creation (#936) (@joaquimg)
- Remove *_partitions from graph object (#939) (@abelsiqueira)
- Remove graph dependency from src/constraints/consumer.jl (#944) (@abelsiqueira)
- Remove old code for compute_assets_partitions (#949) (@abelsiqueira)
- Store a table name inside TulipaVariable and TulipaConstraint (#950) (@abelsiqueira)
- Rename and split some constraints to reflect Miro (#951) (@abelsiqueira)
- Remove bad asset test (#952) (@clizbe)
- Add explicit return to JuliaFormatter and docs (#953) (@clizbe)
- Create investment bound from the variable definition (#954) (@datejada)
- Use
@timeit
on function calls (#956) (@gnawin) - Update TulipaConstraint to allow attaching more constraints to the same indices table (#959) (@abelsiqueira)
- Move some of the active checks earlier in the workflow (#962) (@abelsiqueira)
- Update capacity.jl to use the new attach functions and update tables (#963) (@abelsiqueira)
- Update ramping file with new attach_constraint and create new tables (#965) (@abelsiqueira)
- Use attach_constraint for src/constraints/storage.jl (#967) (@abelsiqueira)
- Use let block in capacity constraints (#968) (@abelsiqueira)
- Create transport table and update transport.jl (#970) (@abelsiqueira)
- Update constraint files hub.jl, conversion.jl and energy.jl to use attach_constraints (#971) (@abelsiqueira)
- Rename, split, create new constraints for group.jl (#972) (@datejada)
- Add docs for enables_names = false (#973) (@clizbe)
- Remove unnecessary expression and move lower bound of flow variable from src/constraints/capacity.jl (#976) (@abelsiqueira)
- Remove most of graph from src/constraints/capacity.jl (#978) (@abelsiqueira)
- Remove graph from src/constraints/energy.jl and transport.jl (#979) (@abelsiqueira)
- Remove graph from src/constraints/ramping-and-unit-commitment.jl (#980) (@abelsiqueira)
- Remove graph from src/constraints/storage.jl (#981) (@abelsiqueira)
- Replace all intra_rp by rep_period and inter_rp by over_clustered_year (#982) (@abelsiqueira)
- Remove data from graph object in src/constraints/group.jl (#985) (@datejada)
- Remove need for representative_periods and graph in add_expression_terms_rep_period_constraints (#987) (@abelsiqueira)
- Add explicit 'using' to tests (#995) (@clizbe)
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 theprofiles_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
andunits_on_and_outflows
(#918) - Refactor variables (#923)
- Define (balance) constraints tables (#927)
- Try using
@timeit to
on function calls, not onbegin ... end
blocks (#934) - Change the default of the
enable_names
option to false in thecreate_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
TulipaEnergyModel v0.10.4
Merged pull requests:
v0.10.3
TulipaEnergyModel v0.10.3
Merged pull requests: