UnitCommitmentInstance: add _by_name fields

This commit is contained in:
2021-08-19 07:07:25 -05:00
parent 7c907a6eb5
commit 5c3f7b15d3
3 changed files with 32 additions and 17 deletions

View File

@@ -266,15 +266,20 @@ function _from_json(json; repair = true)
end
instance = UnitCommitmentInstance(
T,
power_balance_penalty,
shortfall_penalty,
units,
buses,
lines,
reserves,
contingencies,
loads,
buses_by_name = Dict(b.name => b for b in buses),
buses = buses,
contingencies_by_name = Dict(c.name => c for c in contingencies),
contingencies = contingencies,
lines_by_name = Dict(l.name => l for l in lines),
lines = lines,
power_balance_penalty = power_balance_penalty,
price_sensitive_loads_by_name = Dict(ps.name => ps for ps in loads),
price_sensitive_loads = loads,
reserves = reserves,
shortfall_penalty = shortfall_penalty,
time = T,
units_by_name = Dict(g.name => g for g in units),
units = units,
)
if repair
UnitCommitment.repair!(instance)

View File

@@ -69,17 +69,21 @@ mutable struct PriceSensitiveLoad
revenue::Vector{Float64}
end
mutable struct UnitCommitmentInstance
time::Int
power_balance_penalty::Vector{Float64}
"Penalty for failing to meet reserve requirement."
shortfall_penalty::Vector{Float64}
units::Vector{Unit}
Base.@kwdef mutable struct UnitCommitmentInstance
buses_by_name::Dict{AbstractString,Bus}
buses::Vector{Bus}
lines::Vector{TransmissionLine}
reserves::Reserves
contingencies_by_name::Dict{AbstractString,Contingency}
contingencies::Vector{Contingency}
lines_by_name::Dict{AbstractString,TransmissionLine}
lines::Vector{TransmissionLine}
power_balance_penalty::Vector{Float64}
price_sensitive_loads_by_name::Dict{AbstractString,PriceSensitiveLoad}
price_sensitive_loads::Vector{PriceSensitiveLoad}
reserves::Reserves
shortfall_penalty::Vector{Float64}
time::Int
units_by_name::Dict{AbstractString,Unit}
units::Vector{Unit}
end
function Base.show(io::IO, instance::UnitCommitmentInstance)