Internals

Index

Types

Methods

EnergyModelsInvestments.add_investment_constraintsMethod
add_investment_constraints(
    m,
    element,
    inv_data::AbstractInvData,
    cap,
    prefix,
    𝒯ᴵⁿᵛ::TS.StratPeriods,
    disc_rate::Float64,
)

Core function for introducing constraints on the investments. The constraints include introducing bounds on the available capacities as well as the calculation of the CAPEX.

The function calls two additional subroutines, set_capacity_installation and set_capacity_cost which are used for introducing bounds on the investment variables and calculating the CAPEX contribution of each investments. The utilization of subroutines allows the introduction of dispatch for the individual investment and lifetime options.

Arguments

  • m: the JuMP model instance.
  • element: the element for which investment constraints should be added. Any potential element can be used. In EnergyModelsBase, the individual element is either a Node or a TransmissionMode.
  • inv_data::AbstractInvData: the investment data for the node and capacity cap.
  • prefix: the prefix used for variables for this element. This argument is used for extracting the individual investment variables.
  • cap: the field that is used if several capacities are provided.
  • 𝒯ᴵⁿᵛ::TS.StratPeriods: the strategic periods structure.
  • disc_rate: the discount rate used in the lifetime calculation for reinvestment and end of life calculations.
source
EnergyModelsInvestments.max_addMethod
max_add(inv_data::AbstractInvData, t_inv)

Returns the maximum allowed added capacity of the investment data inv_data in investment period t_inv.

source
EnergyModelsInvestments.min_addMethod
min_add(inv_data::AbstractInvData, t_inv)

Returns the minimum allowed added capacity of the investment data inv_data in investment period t_inv.

source
EnergyModelsInvestments.min_addMethod
min_add(inv_mode::Investment, t_inv)

Returns the minimum allowed added capacity of the investment mode inv_mode in investment period t_inv.

source
EnergyModelsInvestments.set_capacity_costMethod
set_capacity_cost(m, element, inv_data, prefix, 𝒯ᴵⁿᵛ, disc_rate)

Set the capex_cost based on the technology investment cost, and strategic period length to include the needs for reinvestments and the rest value. It implements different versions of the lifetime implementation:

  • UnlimitedLife: The investment life is not limited. The investment costs do not consider any reinvestment or rest value.
  • StudyLife: The investment last for the whole study period with adequate reinvestments at end of lifetime and rest value.
  • PeriodLife: The investment is considered to last only for the strategic period. the excess lifetime is considered in the rest value.
  • RollingLife: The investment is rolling to the next strategic periods and it is retired at the end of its lifetime or the end of the previous sp if its lifetime ends between two sp.
source
EnergyModelsInvestments.set_capex_discounterMethod
set_capex_discounter(years, lifetime, disc_rate)

Calculate the discounted values used in the lifetime calculations, when the LifetimeMode is given by PeriodLife and StudyLife.

Arguments

  • years:: the remaining years for calculating the discounted value. The years are depending on the considered LifetimeMode, using remaining(t_inv, 𝒯) for StudyLife and duration(t_inv) for PeriodLife.
  • lifetime: the lifetime of the element.
  • disc_rate: the discount rate.
source
EnergyModelsInvestments.set_capex_valueMethod
set_capex_value(m, element, inv_data, prefix, 𝒯ᴵⁿᵛ)

Calculate the cost value for the different investment modes of the investment data inv_data for element element.

Arguments

  • m: the JuMP model instance.
  • element: the element type for which the absolute CAPEX should be calculated.
  • r: the discount rate.
  • inv_data: the investment data given as subtype of AbstractInvData.
  • prefix: the prefix used for variables for this element.
  • 𝒯ᴵⁿᵛ: the strategic periods structure.
source
EnergyModelsInvestments.set_capex_valueMethod
set_capex_value(m, element, inv_data, prefix, 𝒯ᴵⁿᵛ, ::Investment)

When no specialized method is defined for the investment mode, it calculates the capital cost based on the multiplication of the field capex in inv_data with the added capacity.

source
EnergyModelsInvestments.start_capMethod
start_cap(element, t_inv, inv_data::AbstractInvData, cap)

Returns the starting capacity of the type element in the first investment period. If NoStartInvData is used for the starting capacity, it requires the definition of a method for the corresponding element.

source