Library

PowerModelsADA.calc_dual_residual!Method
calc_dual_residual!(data::Dict{String, <:Any}; central::Bool=false)

calculate the dual redidual as seen by the area. Set central=true if the algorithm uses the optimality condition of a central coordinator.

source
PowerModelsADA.calc_mismatch!Method
calc_mismatch!(data::Dict{String, <:Any}; central::Bool=false)

calculate the mismatch and return the area data dictionary with the mismatch as seen by the area. Set central=true if the algorithm uses the optimality condition of a central coordinator.

source
PowerModelsADA.solve_dopfMethod
solve_dopf(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, multiprocessors::Bool=false, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using fully distributed algorithm.

Arguments:

  • data::Dict{String, <:Any} : dictionary contains case in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method::Function : initialize the algorithm parameters and shared variables
    • update_method::Function : update the algorithm after each iteration
    • build_method::Function : problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • multiprocessors::Bool=false : enable multiprocessors using available workers. Multiprocessors feature requires loading the PowerModelsADA and the optimizer packages on all the processors using @everywhere using <package_name>.
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previoussolution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.solve_dopf_coordinatedMethod
solve_dopf_coordinated(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, multiprocessors::Bool=false, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using distributed algorithm with central coordinator.

Arguments:

  • data::Dict{String, <:Any} : dictionary contains case in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method_local::Function : initialize the local algorithm parameters and shared variables
    • initialize_method_coordinator::Function : initialize the coordinator algorithm parameters and shared variables
    • update_method_local::Function : update the local data after each iteration
    • update_method_coordinator::Function : update the coordinator data after each iteration
    • build_method_local::Function : local problem formulation
    • build_method_coordinator::Function : coordinator problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • multiprocessors::Bool=false : enable multiprocessors using available workers. Multiprocessors feature requires loading the PowerModelsADA and the optimizer packages on all the processors using @everywhere using <package_name>.
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previous\solution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.solve_dopf_coordinated_mpMethod
solve_dopf_coordinated_mp(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, multiprocessors::Bool=false, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using distributed algorithm with central coordinator on multiprocessors. Multiprocessors feature requires loading the PowerModelsADA and the optimizer packages on all the processors using @everywhere using <package_name>.

Arguments:

  • data::Dict{String, <:Any} : dictionary contains case in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method_local::Function : initialize the local algorithm parameters and shared variables
    • initialize_method_coordinator::Function : initialize the coordinator algorithm parameters and shared variables
    • update_method_local::Function : update the local data after each iteration
    • update_method_coordinator::Function : update the coordinator data after each iteration
    • build_method_local::Function : local problem formulation
    • build_method_coordinator::Function : coordinator problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previous\solution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.solve_dopf_coordinated_spMethod
solve_dopf_coordinated_sp(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, multiprocessors::Bool=false, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using distributed algorithm with central coordinator on single-processors.

Arguments:

  • data::Dict{String, <:Any} : dictionary contains case in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method_local::Function : initialize the local algorithm parameters and shared variables
    • initialize_method_coordinator::Function : initialize the coordinator algorithm parameters and shared variables
    • update_method_local::Function : update the local data after each iteration
    • update_method_coordinator::Function : update the coordinator data after each iteration
    • build_method_local::Function : local problem formulation
    • build_method_coordinator::Function : coordinator problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previous\solution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.solve_dopf_mpMethod
solve_dopf_mp(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using fully distributed algorithm on multiprocessors. Multiprocessors feature requires loading the PowerModelsADA and the optimizer packages on all the processors using @everywhere using <package_name>.

Arguments:

  • data::Dict{Int64, <:Any} : dictionary contains area data in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method::Function : initialize the algorithm parameters and shared variables
    • update_method::Function : update the algorithm after each iteration
    • build_method::Function : problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previoussolution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.solve_dopf_spMethod
solve_dopf_sp(data::Dict{String, <:Any}, model_type::DataType, optimizer, dopf_method::Module; print_level::Int64=1, mismatch_method::String="norm", tol::Float64=1e-4, max_iteration::Int64=1000, save_data::Vector{String}=[], kwargs...)

Solve OPF problem using fully distributed algorithm on single-processor.

Arguments:

  • data::Dict{Int64, <:Any} : dictionary contains area data in PowerModel format
  • model_type::DataType : power flow formulation (PowerModel type)
  • optimizer : optimizer JuMP initiation object
  • dopf_method::Module : module contains the distributed algorithm methods as follows:
    • initialize_method::Function : initialize the algorithm parameters and shared variables
    • update_method::Function : update the algorithm after each iteration
    • build_method::Function : problem formulation
  • print_level::Int64=1 : 0 - no print, 1 - print mismatch after each iteration and result summary, 2 - print optimizer output
  • mismatch_method::String="norm" : mismatch calculation method (norm, max)
  • tol::Float64=1e-4 : mismatch tolerance
  • max_iteration::Int64=1000 : maximum number of iteration
  • savedata::Vector{String}=[] : vector contains the keys of the dictionaries to be saved at each iteration in "previoussolution". For example, savedata=["solution", "sharedvariable", "mismatch"]
  • kwargs = includes algorithm-specific and initialization parameters
source
PowerModelsADA.initial_valueFunction
initial_value(variable::String, initialization_method::String="flat", value::Float64=0.0)

assign initial value based on initialization method

Arguments:

  • variable::String : variable names
  • initializationmethod::String="flat" : ("flat", "previoussolution", "constant")
  • value::Float64=0.0 : return value if initialization_method = "constant"
source
PowerModelsADA.initialize_all_variableFunction
initialize_all_variable(data::Dict{String, <:Any}, model_type::DataType, dics_name::String="solution", initialization_method::String="flat")

return a dictionary contains all the problem variables. can be used to store the solutions.

Arguments:

  • data::Dict{String, <:Any} : area data
  • model_type::DataType : power flow formulation (PowerModel type)
  • dics_name::String="solution" : location of existing dicrionary to be used to worm start the output
  • initialization_method::String="flat" : "flat" or "worm" initialization
source