Adding investments

Investment options are added through loading the package EnergyModelsInvestments. EnergyModelsInvestments was previously seen as extension package to EnergyModelsBase, that it was dependent on EnergyModelsBase and only allowed investment options in EnergyModelsBase. This approach was reversed from version 0.7 onwards and EnergyModelsInvestments is now a standalone package and provides an extension to EnergyModelsBase.

As a consequence, it was not also necessary to move the EnergyModelsGeography extension of EnergyModelsInvestments to an EnergyModelsInvestments extension of EnergyModelsGeography.

General concept

Investment options are added separately to each individual transmission mode through the field data. This is similar to the approach used in Hence, it is possible to use different prices for the same technology in different regions or allow investments only in a limited subset of technologies.

Transmission mode investments utilize the same data type SingleInvData as the majority of the node investments. This type inludes as fields AbstractInvData which can be either in the form of StartInvData or NoStartInvData. The exact description of the individual investment data and their fields can be found in the public library of EnergyModelsInvestments.

Investments require the application of an InvestmentModel instead of an OperationalModel. This allows us to provide two core functions with new methods, constraints_capacity_installed (as described on Constraint functions), variables_trans_capex, a function previously not declaring any variables, and the update to the objective functoin update_objective.

Added variables

Investment options increase the number of variables. The individual variables are described in the documentation of EnergyModelsInvestments.

All transmission modes with investments use the prefix :trans.