You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We aim at integrating ExaTron in the ProxAL decomposition solver. That would require to define a new AbstractBlockModel in ProxAL, named for instance ExaTronBlockModel. The generic interface of block models is defined in Proxal.
The main issue is to develop an API for the batch ExaTron solver (which currently uses a hand-coded optimization problem for the OPF). If we follow the future ExaTronBlockModel interface in ProxAL, we would need:
ProxAL.init!: definition of the optimization problem, with the active and reactive loads specified by ProxAL.
In admm_rect_gpu, replace the data object in this line by a OPFData structure defined directly inside ProxAL (I think ProxAL's format is closed to the format used by ExaTron, anyway).
Modify the object OPFData in src/admm/opfdata.jl to take into account the multipliers, the penalty and the ramping reference used by ProxAL (could be Nothing as it is not needed by default)
ProxAL.set_objective!: update the objective function with a new multiplier mul::Vector{Float64}, a new penalty tau::Float64 and a new ramping reference pg_ramp::Vector{Float64}
I think here, we don't need to store the ExaTron structure between two optimization solves. This function will just create a new OPFData with the new values.
ProxAL.set_start_values!: set an initial point to the optimization problem
if we don't store the structure between two optimization solves, this function can remain empty.
ProxAL.optimize!: solve the optimization problem
Call the ExaTron algorithm
ProxAL.get_solution: return the optimal solution found by the solver
This function will require some works in ExaTron. ExaTron is working with two arrays v_curr and u_curr, specifying all optimization variables in the problem. Once the problem solved, we should return the physical values corresponding to the solution (voltage magnitudes, power generations ...). Maybe we could define a new structure OPFSolution to do so?
The text was updated successfully, but these errors were encountered:
In admm_rect_gpu, replace the data object in this line by a OPFData structure defined directly inside ProxAL (I think ProxAL's format is closed to the format used by ExaTron, anyway).
Modify the object OPFData in src/admm/opfdata.jl to take into account the multipliers, the penalty and the ramping reference used by ProxAL (could be Nothing as it is not needed by default)
@frapac Can you clarify this? Are you suggesting replacing OPFData with the one in ProxAL and then also modifying the one in ExaTron? But, I sort of got what we need.
We aim at integrating ExaTron in the ProxAL decomposition solver. That would require to define a new
AbstractBlockModel
in ProxAL, named for instanceExaTronBlockModel
. The generic interface of block models is defined in Proxal.The main issue is to develop an API for the batch ExaTron solver (which currently uses a hand-coded optimization problem for the OPF). If we follow the future
ExaTronBlockModel
interface in ProxAL, we would need:ProxAL.init!
: definition of the optimization problem, with the active and reactive loads specified by ProxAL.admm_rect_gpu
, replace thedata
object in this line by aOPFData
structure defined directly inside ProxAL (I think ProxAL's format is closed to the format used by ExaTron, anyway).OPFData
insrc/admm/opfdata.jl
to take into account the multipliers, the penalty and the ramping reference used by ProxAL (could beNothing
as it is not needed by default)ProxAL.set_objective!
: update the objective function with a new multipliermul::Vector{Float64}
, a new penaltytau::Float64
and a new ramping referencepg_ramp::Vector{Float64}
OPFData
with the new values.ProxAL.set_start_values!
: set an initial point to the optimization problemProxAL.optimize!
: solve the optimization problemProxAL.get_solution
: return the optimal solution found by the solverv_curr
andu_curr
, specifying all optimization variables in the problem. Once the problem solved, we should return the physical values corresponding to the solution (voltage magnitudes, power generations ...). Maybe we could define a new structureOPFSolution
to do so?The text was updated successfully, but these errors were encountered: