Release v0.7.0.dev4
Pre-release|fixed| Decision variable domain in math docs to use
|fixed| Clarity of flow_cap_min
description in documentation (#653).
|changed| API/schema documentation is de-ranked in documentation search bar results (#670).
|new| Math component cross-references in both directions ("uses" and "used in") in Markdown math documentation (#643).
|fixed| Duplicated links in math documentation (#651).
|changed| node_groups
and tech_groups
changed to a general top-level templates
key,
accessed via the template
key (replacing inherit
) in nodes
and techs
(#600).
|fixed| Contribution of cost_om_annual_investment_fraction
to total investment costs, to not apply to depreciated costs (#645).
|fixed| Math for multi-carrier variable export costs (#663).
|new| Piecewise constraints added to the YAML math with its own unique syntax (#107).
These constraints will be added to the optimisation problem using Special Ordered Sets of Type 2 (SOS2) variables.
|new| Direct interface to the Gurobi Python API using !#yaml config.build.backend: gurobi
or !#python model.build(backend="gurobi")
.
Tests show that using the gurobi solver via the Python API reduces peak memory consumption and runtime by at least 30% for the combined model build and solve steps.
This requires the gurobipy
package which can be installed with mamba
: mamba install gurobi::gurobi
.
|fixed| Force a header row in tabular data loaded from CSV to (#596).
Fixes issue where unexpected index levels can end up in the loaded data (#573).
|fixed| Single element lists/sets in the model Dataset attribute dictionary are restored to lists/sets on loading from NetCDF (#614).
|new| Decision variables and global expressions can have a title
defined, which will be available in the model results as attributes of those components and can be used for e.g. visualisation (#582).
Parameter titles from the model definition schema will also propagate to the model inputs.
|fixed| Backend parameter updates propagate correctly through global expressions in the order those expressions were defined (#616).
|fixed| If setting model.backend.verbose_strings()
, rebuilt model components from making backend parameter updates will automatically have verbose strings (#623).
|fixed| Erroneous use of dimensions:
in docs example of an indexed parameter (#612).
|changed| add_dimensions
to add_dims
in data_sources
definition to align with dims
in indexed parameter definition (#621).
|new| Allow extracting shadow prices into results by listing constraints in config.solve.shadow_prices
, e.g. config.solve.shadow_prices: ["system_balance"]
Shadow prices will be added as variables to the model results as shadow_price_{constraintname}
, e.g. shadow_price_system_balance
.
|new| Model stores key timestamps as attributes:
timestamp_model_creation
: at the start ofModel.__init__()
timestamp_build_started
: at the start ofModel.build()
timestamp_build_complete
: at the end ofModel.build()
timestamp_solve_started
: at the start ofModel.solve()
timestamp_solve_complete
: at the end ofModel.solve()