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)