Skip to content

v4.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 21:24
d834ac5

Changes

Major update of the Julia version that brings both GAMS parity for a few features (errorchecking, rounding of non-crossover results) as well as some nice improvements, e.g. duckdb support. 🚀

  • Feature: added the option to not only write, but also read a reduced timeseries file (e.g. for bugfixing the timeseries reduction script)
  • Performance: faster dataload due to more efficient operations
  • Feature: added errorchecks (as in GAMS version, but with even more checks 👍 ). User-determined switch to either disable them completely, have them force-quit as in GAMS, or just log to a .txt file (logging when errors occur always happens, as with the IIS file)
  • Feature: rounding of processed results to 4 digits after the comma (equal to how GAMS does it) - this de-clutters results when crossover is disabled
  • Feature [and a big one]: adding DuckDB support (https://duckdb.org/), which can be called with the switch_results_db switch. Off by default, but if enabled, all input data and results can be written into a single database (currently split into one for inputs, one for results) that can contain multiple runs, separated by extr_str_results. Essentially tries to replicate .gdx file behavior. DuckDB can be directly integrated in Tableau and has data compression (advantage to csv files that tend to get pretty big).
  • Feature: add a user choice for SpecifiedDemand forecasting. This had been added as a default in GAMS and ported over to Julia, but forces the user to define growth rates for demand instead of just plugging SpecifiedAnnualDemand numbers for each year (those would get overwritten). So now, there is simply a switch for that to choose between endogenous forecasting or exogenous data.
  • Fix: related to the DuckDB commit - there was a double use of the "Scenario" name in columns, so that was changed
  • Fix: The test data Excel actually had some missing TradeRoutes etc. which caused it to fail with the new errorchecks enabled, so this has been updated accordingly. Only changes the optimal value by 0.006%.
  • Two more fixes due to failing tests with the dispatch runs: a) do not run errorchecks on these, as the timeseries are not meant to sum up to one here; b) read in investments properly (did not fully read in the investment run capacities)

🚀 Features

  • Major PR: performance, duckdb, errorchecks @loeffko (#46)