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}