ExaTron.jl icon indicating copy to clipboard operation
ExaTron.jl copied to clipboard

Integration with ProxAL

Open frapac opened this issue 3 years ago • 1 comments

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?

frapac avatar May 07 '21 16:05 frapac