ExaAdmm.AdmmEnvType
AdmmEnv{T,TD,TI}

This structure carries everything required to run ADMM from a given solution.

ExaAdmm.ModelAcopfType
Model{T,TD,TI}

This contains the parameters specific to ACOPF model instance.

ExaAdmm.ModelQpsubType
Solution Structure:
  • solution.u contain variables for generator and branch kernel
  • solution.v contains variables for bus kernel
  • Summary Table:
dimensionngenngennlinenlinenlinenlinenlinenlinenlinenline
structure for upgqgp_ijq_ijp_jiq_jiwi(ij)wj(ji)thetai(ij)thetaj(ji)
structure for vpg(i)qg(i)p_ij(i)q_ij(i)p_ji(j)q_ji(j)wiwjthetaithetaj
  • structure for l and ρ is wrt all element of [x - xbar + z] with same dimension

  • structure for sqpline: 6*nline |wijR | w_ijI | wi(ij) | wj(ji) | thetai(ij) | thetaj(ji)|

  • Note: line has shared nodes => xbar contain duplications. For example line(1,2) and line(2,3): w2 and theta2 exist twice in v.

  • qpsub_membuf structure (dim = 5, used in auglag):

    • 1h | λ1i | λ1j| λ1k | ρ_{1h,1i,1j,1k}|
    • For c(x) = 0, ALM = λ*c(x) + (ρ/2)c(x)^2
    • For 1j and 1k, introduce slack tij and tji (see internal branch structure for Exatron)
ExaAdmm.SolutionType
Solution{T,TD}

This contains the solutions of ACOPF model instance, including the ADMM parameter rho.

Base.copyMethod

This is to share grid data between models. Some fields that could be modified are deeply copied.

Base.copyMethod

This is to share power network data between models. Some fields that could be modified are deeply copied.

Base.copyMethod

This is to share power network data between models. Some fields that could be modified are deeply copied.

ExaAdmm.admm_update_lzFunction

Compute and update multipliers λ_z for the augmented Lagrangian wit respect to z=0 constraint.

ExaAdmm.admm_update_residualFunction

Compute and update the primal and dual residuals at current iteration.

Arguments

  • env::AdmmEnv – struct that defines the environment of ADMM
  • mod::ModelAcopf – struct that defines model

Notes

The primal and dual residuals are stored in mod.solution.rp and mod.solution.rd, respectively.

ExaAdmm.admm_update_xFunction

Update variable x, representing the variables for generators and lines in the component-based decomposition of ACOPF.

ExaAdmm.admm_update_xbarFunction

Update variable xbar, representing the variables for buses in the component-based decomposition of ACOPF.

ExaAdmm.admm_update_zFunction

Update variable z, representing the artificial variables that are driven to zero in the two-level ADMM.

ExaAdmm.tron_gpu_testMethod

Driver to run TRON on GPU. This should be called from a kernel.

tron_gpu_test()
  • solves bounded QP: 1/2 x^THx + b*x s.t xl <= x <= xu
  • includes evalfkernel(), evalgkernel(), and evalhkernel