Open frapac opened 3 years ago
- [ ] 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 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 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?