Network Formulations

Network Formulations

Type Hierarchy

We begin with the top of the hierarchy, where we can distinguish between AC and DC power flow models.

AbstractACPForm <: AbstractPowerFormulation
AbstractDCPForm <: AbstractPowerFormulation
AbstractWRForm <: AbstractPowerFormulation
AbstractWForm <: AbstractPowerFormulation

From there, different forms for ACP and DCP are possible:

StandardACPForm <: AbstractACPForm
APIACPForm <: AbstractACPForm

StandardDCPForm <: AbstractDCPForm

SOCWRForm <: AbstractWRForm
QCWRForm <: AbstractWRForm

SOCDFForm <: AbstractWForm

Power Models

Each of these forms can be used as the type parameter for a PowerModel:

ACPPowerModel = GenericPowerModel{StandardACPForm}
APIACPPowerModel = GenericPowerModel{APIACPForm}

DCPPowerModel = GenericPowerModel{StandardDCPForm}

SOCWRPowerModel = GenericPowerModel{SOCWRForm}
QCWRPowerModel = GenericPowerModel{QCWRForm}

SOCDFPowerModel = GenericPowerModel{SOCDFForm}

For details on GenericPowerModel, see the section on Power Model.

User-Defined Abstractions

Consider the class of conic formulations for power flow models. One way of modelling them in this package is through the following type hierarchy:

AbstractConicPowerFormulation <: AbstractPowerFormulation
AbstractWRMForm <: AbstractConicPowerFormulation

SDPWRMForm <: AbstractWRMForm
SDPWRMPowerModel = GenericPowerModel{SDPWRMForm}

The user-defined abstractions do not have to begin from the root AbstractPowerFormulation abstract type, and can begin from an intermediate abstract type. For example, in the following snippet:

AbstractDCPLLForm <: AbstractDCPForm

StandardDCPLLForm <: AbstractDCPLLForm
DCPLLPowerModel = GenericPowerModel{StandardDCPLLForm}