`ExaAdmm.AdmmEnv`

— Type`AdmmEnv{T,TD,TI}`

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

`ExaAdmm.ModelAcopf`

— Type`Model{T,TD,TI}`

This contains the parameters specific to ACOPF model instance.

`ExaAdmm.ModelQpsub`

— Type`Solution Structure:`

- solution.u contain variables for generator and branch kernel
- solution.v contains variables for bus kernel
- Summary Table:

dimension | ngen | ngen | nline | nline | nline | nline | nline | nline | nline | nline |
---|---|---|---|---|---|---|---|---|---|---|

structure for u | pg | qg | p_ij | q_ij | p_ji | q_ji | wi(ij) | wj(ji) | thetai(ij) | thetaj(ji) |

structure for v | pg(i) | qg(i) | p_ij(i) | q_ij(i) | p_ji(j) | q_ji(j) | wi | wj | thetai | thetaj |

structure for l and ρ is wrt all element of [x - xbar + z] with same dimension

structure for sqp

*line: 6*nline |w*ijR | 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 t
*ij and t*ji (see internal branch structure for Exatron)

- |λ

`ExaAdmm.Parameters`

— Type`Parameters`

This contains the parameters used in ADMM algorithm.

`ExaAdmm.Solution`

— Type`Solution{T,TD}`

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

`Base.copy`

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

`Base.copy`

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

`Base.copy`

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

`ExaAdmm.admm_increment_inner`

— FunctionIncrement inner iteration counter by one.

`ExaAdmm.admm_increment_outer`

— FunctionIncrement outer iteration counter by one.

`ExaAdmm.admm_increment_reset_inner`

— FunctionReset inner iteration counter to zero.

`ExaAdmm.admm_inner_prestep`

— FunctionImplement any algorithmic steps required before each inner iteration.

`ExaAdmm.admm_outer_prestep`

— FunctionImplement any algorithmic steps required before each outer iteration.

`ExaAdmm.admm_poststep`

— FunctionImplement any steps required after the algorithm terminates.

`ExaAdmm.admm_update_l`

— FunctionUpdate multipliers λ for consensus constraints, `x - xbar + z = 0`

.

`ExaAdmm.admm_update_lz`

— FunctionCompute and update multipliers `λ_z`

for the augmented Lagrangian wit respect to `z=0`

constraint.

`ExaAdmm.admm_update_residual`

— FunctionCompute 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_x`

— FunctionUpdate variable `x`

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

`ExaAdmm.admm_update_xbar`

— FunctionUpdate variable `xbar`

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

`ExaAdmm.admm_update_z`

— FunctionUpdate variable `z`

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

`ExaAdmm.tron_generator_kernel`

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

`ExaAdmm.tron_gpu_test`

— MethodDriver 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 eval
*f*kernel(), eval*g*kernel(), and eval*h*kernel

`ExaAdmm.tron_linelimit_kernel`

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

`ExaAdmm.tron_linelimit_kernel`

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